`
sunbin
  • 浏览: 349768 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

HttpServlet详解

    博客分类:
  • jsp
阅读更多

 

 

Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类.在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类.

Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口 .在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的声明周期:

init方法,负责初始化Servlet对象
service方法,负责相应客户的请求
destory方法,当Servlet对象退出声明周期时,负责释放占有的资源

当Web容器接收到某个Servlet请求时,Servlet把请求封装成一个HttpServletRequest对象,然后把对象传给Servlet的对应的服务方法.

     HTTP的请求方式包括DELETE,GET,OPTIONS,POST,PUT和TRACE,在HttpServlet类中分别提供了相应的服务方法, 它们是,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace().  

HttpServlet的功能    

HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对象,并把 Http请求直接封装到HttpServlet对象中,大大简化了HttpServlet解析请求数据的工作量。HttpServlet容器响应Web客户请求流程如下:

1)Web客户向Servlet容器发出Http请求;

2)Servlet容器解析Web客户的Http请求;

3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;

4)Servlet容器创建一个HttpResponse对象;

5)Servlet容器调用HttpServlet的service方法,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;

6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;

7)HttpServlet调用HttpResponse的有关方法,生成响应数据;

8)Servlet容器把HttpServlet的响应结果传给Web客户。

二、创建HttpServlet的步骤——“四部曲”

1)扩展HttpServlet抽象类;

2)覆盖HttpServlet的部分方法,如覆盖doGet()或doPost()方法;

3)获取HTTP请求信息。通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串;

4)生成HTTP响应结果。通过HttpServletResponse对象生成响应结果,它有一个getWriter()方法,该方法返回一个PrintWriter对象。

举个例子如下:

package mypack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloServlet extends HttpServlet//第一步:扩展HttpServlet抽象类
{
 //第二步:覆盖doGet()方法
 public void doGet(HttpServletRequest request,
  HttpServletResponse response)throws IOException,ServletException{
  //第三步:获取HTTP请求中的参数信息
  String clientName=request.getParameter("clientName");
  if(clientName!=null)
   clientName=new String(clientName.getBytes("ISO-8859-1"),"GB2312");
  else
   clientName="我的朋友";

  //第四步:生成HTTP响应结果
  PrintWriter out;
  String title="HelloServlet";
  String heading1="HelloServlet的doGet方法的输出:";
  //set content type
  response.setContentType("text/html;charset=GB2312");
  //write html page
  out=response.getWriter();
  out.print("<HTML><HEAD><TITLE>"+title+"</TITLE>");
  out.print("</HEAD><BODY>");
  out.print(heading1);
  out.println("<h1><p>"+clientName+":您好</h1>");
  out.print("</BODY></HTML>");

  out.close();
 }
}

在web.xml中添加

<servlet>
   <servlet-name>HelloServlet</servlet-name>
   <servlet-class>mypack.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>HelloServlet</servlet-name>
   <url-pattern>/hello</url-pattern>
</servlet-mapping>

通过URL访问HelloServlet:

注意:

实现service方法。 

    Servlet 的主要功能是接受从浏览器发送过来的HTTP请求(request),并返回HTTP响应(response)。这个工作是在service方法中完成的。service方法包括从request对象获得客户端数据和向response对象创建输出。 

    如果一个 Servlet从javax.servlet.http.HttpServlet继承,实现了doPost或doGet方法,那么这个Servlet只能对POST或GET做出响应。如果开发人员想处理所有类型的请求(request),只要简单地实现service方法即可(但假如选择实现 service方法,则不必实现doPost或doGet方法,除非在service方法的开始调用super.service())。

分享到:
评论

相关推荐

    HttpServlet 的Servlet的详解

    ### HttpServlet 详解 #### 1. 绪言 本文档主要介绍了Java Servlet API 2.1版本的相关内容,特别关注于`HttpServlet`类及其在实际应用中的作用。`HttpServlet`是Java Servlet API中一个重要的类,它为HTTP协议提供...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.9 HttpServlet详解 1.10 Ant使用入门 1.11 Maven Ant之间的比较 1.12 详解MANIFEST.MF文件 1.13 Maven入门--概念与实例 1.14 Subversion 1.15 jar war ear区别 1.16 如何在Eclipse中调试JBoss应用 1.17 ...

    JavaWeb程序设计入门课件HttpServlet共4页

    二、HttpServlet详解 1. HttpServlet生命周期:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或第一次接收到对Servlet的请求时,Servlet会被加载和初始化。然后在后续的请求中,Servlet会...

    JavaWeb期末考试A卷.docx

    6. **HttpServlet详解**:`HttpServlet`位于`javax.servlet.http`包中,是一个抽象类,它扩展了`GenericServlet`,但并非要求子类重写`service()`方法,而是通常重写`doGet()`或`doPost()`,所以d) `HttpServlet 类...

    servlet 入门教程

    #### 四、HTTPServlet详解 `HttpServlet`类是`javax.servlet.http`包中的一个抽象类,它为HTTP请求提供了一个默认的服务实现。在实际开发中,通常会继承`HttpServlet`类来实现自己的Servlet,并覆盖`doGet()`和`...

    HttpServlet实现的资料,帮助初学者使用HttpServlet

    【HttpServlet实现详解】 在Java Web开发中,HttpServlet是一个重要的组成部分,它是Java Servlet API的一部分,主要用于处理HTTP协议的请求。下面将详细讲解HttpServlet、Servlet的生命周期以及它们与Tomcat服务器...

    详解 问题:HttpServlet cannot be resolved to a type

    在开发Java Web应用程序时,你可能会遇到一个常见的错误:“HttpServlet cannot be resolved to a type”。这个错误通常发生在尝试使用`HttpServlet`类时,而Eclipse IDE无法找到对应的类定义。`HttpServlet`是Java ...

    [Tomcat与Java.Web开发技术详解][第一版][孙卫琴][PDF清晰版]+APK

    读者将学习到如何编写Servlet,理解Servlet生命周期,并掌握Servlet API的关键类和接口,如`HttpServlet`和`ServletConfig`。 此外,JavaServer Pages(JSP)是另一种重要的Web开发技术,它允许开发者将HTML代码与...

    Servlet详解与配置

    Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。

    Java 文件上传的实例详解

    "Java 文件上传的实例详解" Java 文件上传是指在 Java 应用程序中实现文件上传功能的过程。文件上传是 Web 应用程序中非常常见的功能,例如上传头像、上传附件、上传图片等。Java 文件上传可以使用多种方法实现,...

    Servlet详解.pdf

    ### Servlet详解 #### 1. Servlet工作原理 Servlet是一种服务器端的小程序,主要用来处理HTTP请求并返回HTTP响应。Servlet由Servlet容器(如Tomcat、Jetty等)管理其生命周期,这种容器通常作为Web服务器的一部分...

    servlet/jsp深入详解 基于tomcat的web开发

    通过实现`javax.servlet.Servlet`接口或继承`javax.servlet.GenericServlet`或`javax.servlet.http.HttpServlet`抽象类,我们可以创建自己的Servlet。 **JSP基础** JSP(JavaServer Pages)是一种视图技术,它将...

    ServletAPI详解

    ServletAPI详解 Servlet技术是JavaWeb开发中的基石,它提供了处理客户端请求并返回响应的核心机制。Servlet主要功能包括动态生成HTML文档、转发请求到其他Servlet、读取和写入Cookie,以及访问各种服务器资源,如...

    jsp上传文件的实例注释详解

    - 在后台,创建一个Servlet继承自`HttpServlet`,重写`doPost()`方法。 - 在`doPost()`方法中,使用FileUpload库解析请求。 - 检查上传文件的大小和类型,如果符合要求,将文件保存到服务器。 6. **示例代码注释...

    servlet+filter+listener 详解

    Servlet、Filter、Listener 详解 Servlet 是运行在服务器上的小程序,它可以使任何 Java 应用程序、浏览器或任何设备。Servlet 的客户端可以提出请求并获得该请求的响应。Servlet 在初始化后即驻留内存中,因此每次...

    spring MVC配置详解

    Spring MVC 配置详解 Spring MVC 是一个基于 DispatcherServlet 的 MVC 框架,它是当前主流的 Web 框架之一。要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC ...

    Servlet JSP深入详解 基于Tomcat的Web开发

    1. **编写Servlet**:创建Servlet类,实现Servlet接口或继承HttpServlet抽象类,重写doGet/doPost方法。 2. **配置Servlet**:在web.xml文件中定义Servlet,指定URL映射和初始化参数。 3. **处理请求**:Servlet接收...

    java文件上传详解

    ### Java文件上传详解 在Java Web开发中,文件上传是一个常见的需求,特别是在处理用户上传图片、文档等场景时。本文将深入探讨如何使用Java实现文件上传功能,包括使用`commons-fileupload`和`commons-io`库的具体...

Global site tag (gtag.js) - Google Analytics