我是靠谱客的博主 花痴柜子,最近开发中收集的这篇文章主要介绍java servlet 特点_Java Web servlet理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:按照习惯,首先上个demo。

一个servlet例子:

第一步:java代码:

package com.zhoum.intelligentler.servlet;

public class DownloadServlet extends HttpServlet{

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

String queryString = req.getQueryString();

Map map = QueryStringUtil.createQueryMap(queryString);

String src = map.get("src");

String dst = map.get("dst");

String md5 = map.get("md5");

System.out.println("传入的src为:" + src);

System.out.println("传入的dst为:" + dst);

System.out.println("传入的md5为:" + md5);

PrintWriter pw = resp.getWriter();

pw.println("传入的src为:" + src);

pw.println("传入的dst为:" + dst);

pw.println("传入的md5为:" + md5);

pw.flush();

pw.close();

}

}

第二步:web.xml文件:在web.xml文件中配置写好的servlet即服务器端的代码。

intelligentler

downloadservlet

com.zhoum.intelligentler.servlet.DownloadServlet

downloadservlet

/servlet/download

从以上的demo可以看出,用户通过输入url(url-pattern)来定位到对应的servlet-name,然后再从servlet-name对应到servlet-name的绝对路径servlet-class,来执行服务器段代码DownloadServlet.

一、有两种应用程序

1、桌面应用程序:需要下载,安装,更新等。如QQ,office等

2、web应用程序:就是我们开发的web项目,这不需要用户下载,只需要用户客户端联网,访问相应的互联网资源。

二、Http协议

HTTP是一个属于应用层的面向对象的超文本传输协议,基于TCP/IP协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。HTTP特点:

(1)无连接:分为4个阶段:建立连接、发送请求、等待响应、关闭连接

优点:快速、简单、不占用网络服务器资源

缺点:速度由网络来决定,每次传输数据量不能太大

(2)无状态:HTTP 协议只负责传输数据,不负责保管所传递的数据.

Http访问服务器资源的方式

1、URL:(Uniform/Universal Resource Locator)统一资源定位符,请求的是服务器上的资源。资源是一个抽象的概念,指存放在服务器上的能够被客户端访问到的所有类型的文件(比如:文本、图片、音频、视频等)。

2、表单提交

get和post方法的区别

⑴get方法通过URL传递参数,用户在客户端地址栏可见,如果是传递密码的话,不安全;post方法通过请求的body传递参数,用户在客户端不可见,更安全。

⑵get方法通过地址栏URL传递请求,而URL本身有长度限制,一般不超过255个字符;post方法通过请求body传递参数,没有长度限制。

三、Servlet

1、Servlet概念:

首先Servlet是一个java应用程序----->服务器端的java应用程序----->具有独立于平台和协议的特性----->可生成动态的Web页面。

Servlet担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。客户请求Servlet服务器响应

2、Servlet生命周期

指Servlet对象在服务器内存中从创建到调用,到销毁的整个过程。

(1)实例化:当客户端通过URL请求的时候,web容器根据web.xml配置自动调用该Servlet的构造方法,实例化对象。

(2)初始化:通过该servlet对象调用init()方法,读取web.xml中该servlet的配置信息,为service方法提供相关数据。

(3)服务:通过该对象调用service()方法,如果是继承HttpServlet,则根据请求头信息中的请求方法,调用对应的doGet()/doPost()

(4)销毁:不是在service()方法调用完后,立即调用,而是由JVM来决定。当JVM需要销毁一些对象、释放内存空间的时候,才会去调用该实例的destroy()方法。

3、HttpServletRequest(interface)

公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。

4、HttpServletResponse(interface)

代表服务器向浏览器返回的响应直接输出内容到浏览器,使用Servlet输出HTML页面

PrintWriter out = response.getWriter();

out.print("Hello :");

设置响应的内容类型:

response.setContentType("text/html; charset=UTF-8");

注意:使用response对象跳转,可以跳到项目外的一个URL资源上

如:response.sendRedirect(“http://www.baidu.com”);

使用request对象跳转,只能在本项目资源中跳转

如:request.getRequestDispatcher(“url”).forward(request,response);

5、javax.servlet.RequestDispatcher(interface)

对请求响应进行补充的一个接口,主要负责两个功能

RequestDispatcher disp = request.getRequestDispatcher("login_ok.jsp");

(1)跳转

disp.forward(ServletRequest,ServletResponse);

(2)包含

disp.include(ServletRequest,ServletResponse);

程序中一般连写:

request.getRequestDispatcher("login_ok.jsp").forward(request,response);

6、HttpSession(interface)

是在服务器端保存数据最常见的方式

Session:会话,(进行某活动连续的)一段时间,使用该对象可以完成一定的操作。会话信息的范围仅限于当前Web应用程序(

ServletContext

),因此存储在一个上下文中的信息在另一个上下文中不是直接可见的。

Ⅰ.Hibernate中Session和Servlet中HttpSession的区别

Hibernate中Session对象:主要作用是数据库连接、数据库操作

Servlet中HttpSession对象:

(1)帮助服务器,识别不同的浏览器

(2)帮助服务器传递数据到不同的Servlet或JSP页面

(3)能够人工控制连续的时间段的长短。

Ⅱ.HttpSession 对象的常用方法:

(1)创建

HttpSession session = request.getSession(true);

要求服务器端重新创建一个session对象

HttpSession session = request.getSession(false);

不需要服务器端新建session对象,只需要从已有的session中取一个

HttpSession session = request.getSession();

没有要求,由服务器自动分配

(2)识别浏览器

//随机生成一个不重复的id,随着响应发送给浏览器,绑定在浏览器中,每次浏览器请求,都会把该id返回并与服务器端的id对比

String id = session.getId();

(3)传递数据

//把数据存入session中

session.setAttribute("name",object);

//在其他Servlet或jsp页面中取出数据

Object obj = session.getAttribute("name");

一般情况下,需要先判断是否为空,再取值

(4)设置有效时间

一个session对象默认有30分钟的有效时间

//设置单个session对象的最长有效时间

session.setMaxInactiveInterval(60*60*24秒);

//设置整个工程中所有session的有效时间

20000

(5)清除数据

session.removeAttribute("name");

(6)设置Session失效或钝化

session.invalidate();

例如:

Session类似储物柜,最主要作用就是存取数据

寝室的储物柜:

(1)一人一个

(2)能够存取东西

(3)一般的一个柜子一把钥匙

(4)特殊情况,可以给柜子贴封条

(5)有时候柜子可能两个人或N个人共用

最后

以上就是花痴柜子为你收集整理的java servlet 特点_Java Web servlet理解的全部内容,希望文章能够帮你解决java servlet 特点_Java Web servlet理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部