`
sunbin
  • 浏览: 354538 次
  • 性别: 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 请求。

    commons-fileupload详解

    ### commons-fileupload详解 #### 一、概述 `commons-fileupload`是Apache Commons项目下的一个子项目,主要用于处理HTTP请求中的文件上传。该组件提供了一种简单高效的方式来处理客户端发送的`multipart/form-...

    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`库的具体...

    Java Web_HTTP协议详解第四讲

    通过实现Servlet接口或继承HttpServlet类,我们可以编写代码来响应HTTP请求。 HTTP协议定义了多种请求方法,如GET、POST、PUT、DELETE等。在Java Web中,这些方法对应于Servlet的doGet、doPost等方法。GET方法通常...

Global site tag (gtag.js) - Google Analytics