servlet深入介绍

来源:互联网 发布:lol皮肤试用软件 编辑:程序博客网 时间:2024/06/07 07:45

在上一篇中我们对servlet做了一个简单的介绍,在这一篇中我们将对servlet做一个深入介绍

深入剖析Servlet

Servlet 与三个类有密切关系,它们是:Servlet类、GenericServlet类、HttpServlet类Servlet类是创建和使用Servlet的基类,它负责创建request和response对象,同时控制一个Servlet使用 Servlet接口中声明的生命周期相关方法。GenericServlet类实现了Servlet接口和ServletConfonfig接口中除Service()方法外的所有的方法。HttpServlet是一个抽象类,它扩展了GenericServlet类并加入了处理HTTP请求的系列方法的定义。由于它是抽象类,Servlet开发者必须重载这些方法,实现响应,否则这个类没有任何有用的功能

HTTP通信协议

在介绍servlet的请求和响应之前不得不介绍一下通信协议HTTP。HTTP(Hypertext Transfer Protocol)是目前在Internet上应用最广泛的通信协议之一HTTP通信协议允许用户提出HTTP“请求”(request),然后由服务器视实际处理结果传回HTTP“回应”(response),用户向web应用程序发出HTTP请求前与web服务器建立连接成功连接后发送请求,web服务器接收到请求后解析并处理HTTP请求,作出处理后产生HTTP响应,最后web服务器向用户发出HTTP回应,最后关闭连接。HTTP通信协议无连接、无状态的通信协议,,用户的执行状态不会被保存。HTTP有两种请求形式:    1.POST:所传递的参数信息将会隐藏起来,不会显示于浏览器的“地址”栏,安全,但是效率低,参数传递的大小没有限制。    2.GET:此为默认的HTTP请求形式。当用户在浏览器内输入特定URL或点击某个超链接时,浏览器就会以GET形式送出HTTP请求。所传递的参数信息将显示于浏览器的“地址”栏, 不安全,单效率高,参数传递的大小有限制,大约2kb。

HttpServletRequest

ServletRequest接口提供一些访问方法,通过这些方法可以获取到这样一些信息,如由客户端传送的阐述名称,客户端正在使用的协议,产生请求并且接收请求的服务器远端主机名。它也提供获取数据流的ServletInputStream, 这些数据是客户端引用中使用HTTP POST 和 PUT 方法递交的。一个ServletRequest的子类可以让Servlet获取更多的协议特性数据。例如:HttpServletRequest 包含获取 HTTP-specific头部信息的方法读取servlet请求内容的三种方法:getParameter(String name); --获取特定参数的值getParameterNames(); --获取所有请求参数的名称getParameterValues(String name); --获取所有参数的值

HttpServletResponse

同样HttpServletResponse接口是ServletResponse接口的扩展。ServletResponse接口给出相应客户端的Servlet方法。它允许Servlet设置内容长度和回应的MIME类型,并且提供输出流ServletOutputStream,通过编写者可以发回相应的数据。ServletResponse子类可以给出更多protocol-specific内容的信息。 例如:HttpServletResponse 包含允许Servlet 操作HTTP-specific头部信息的方法servlet作出响应的方法:setContentType(String type); --设定HTTP 回应的“内容类型”(content type)getWriter(); --针对HTTP 回应产生字符串数据信息流(text stream)getOutputStream(); --针对HTTP 回应产生二进位数据流(binary stream)
原创粉丝点击