`
java-admin
  • 浏览: 1384560 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

HTTP Servlet 的service() 方法

阅读更多

1、HTTP Servlet 使用一个 HTML 表格来发送和接收数据。要创建一个 HTTP Servlet,就需要扩展 HttpServlet 类,该类是用专门的方法来处理 HTML 表格的 GenericServlet 的一个子类。当表单信息被提交时,会指定服务器应执行哪一个Servlet(或其它的程序)。HttpServlet 类包含 init()、destroy()、service() 等方法,其中 init() 和 destroy() 方法是继承的.

2、HTTP Servlet 的service() 方法

service() 方法是 Servlet 的核心。

每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。

在 HttpServlet 中已存在 service()方法.缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。
例如,如果 HTTP 请求方法为 GET,则缺省情况下就调用 doGet()。

service方法是接口中的方法,servlet容器把所有请求发送到该方法,该方法默认行为是转发http请求到doXXX方法中,如果你重载了该方法,默认操作被覆盖,不再进行转发操作!
service()是在javax.servlet.Servlet接口中定义的, 在 javax.servlet.GenericServlet中实现了这个接口, 而 doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的, javax.servlet.http.HttpServlet 是javax.servlet.GenericServlet 的子类.

Servlet 应该为 Servlet 支持的 HTTP 方法覆盖 do 功能.因为HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。

当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。
当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。

我们也需要把Servlet做成既能处理GET请求,也能够处理POST请求(eg:Servlet要处理GET和POST两种请求)这只需要在doPost方法中调用doGet方法,或者覆盖 service方法(service方法调用doGet、doPost、doHead等方法)在实际编程中这是一种标准的方法,因为它只需要很少的额外工作,却能够增加客户端编码的灵活性。
注意:一般会在service()中实现对父类方法的同参数表重载,即写上super.service(req, resp);
         即使有了service()方法,也要把doGet()和doPost()方法标识出来!!

分享到:
评论

相关推荐

    采用Java Servlet +Service+DAO实现用户登陆注册

    采用Service+Service+DAO实现用户注册登陆 数据库:SQLite 代码:JSP 目的要求 (1)掌握Servlet使用技术; (2)掌握开发平台的分层技术;...(1)Servlet+Service+DAO开发模式的理解; (2)DAO的封装。

    dao+service+servlet+jsp实现留言板(添加、查看)

    在这个项目中,Servlet作为Controller的角色,接收用户的请求,调用Service层的方法处理业务,然后将结果转发给JSP页面展示。 5. **JSP(JavaServer Pages)**: JSP是动态网页技术,用于生成HTML或XML等格式的Web...

    servlet+service+mybatis实践

    在这个项目中,Servlet充当了控制器的角色,接收前端发送的HTTP请求,调用相应的Service层方法处理业务逻辑,然后将结果返回给前端。例如,`AddServlet`用于处理添加记录的请求,`DeleteServlet`则处理删除操作。 2...

    Servlet使用MVC模式(Dao\Service\Servlet)增删查改

    Servlet在这里扮演了控制器的角色,接收HTTP请求,解析请求参数,调用相应的Service方法处理业务逻辑,然后将结果传递给视图进行展示。例如,对于添加用户请求,Servlet会解析请求参数,创建`User`对象,调用`...

    jsp、servlet进行增删改查,dao层和service层分开

    例如,用户提交一个更新数据的请求,Servlet会接收到这个请求,然后调用相应的Service方法来处理。 2. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许开发者在HTML中嵌入Java代码。在响应Servlet的...

    JSP+Servlet+AJAX的dao设计模式

    - **Servlet处理请求**:Servlet接收用户请求,调用Service层方法,然后返回结果。 - **使用AJAX发送异步请求**:在JSP页面中,使用JavaScript(如jQuery的$.ajax)发送异步请求,获取Service层处理后的数据。 - **...

    servlet的三种方法的实现

    当你选择直接实现Servlet接口时,你需要覆盖`service()`方法来处理HTTP请求。`service()`方法会自动根据请求类型调用`doGet()`或`doPost()`方法。这种方式适合于自定义更灵活的请求处理逻辑,但代码量相对较多,因为...

    servlet+jsp+service+Oracle实现简单的数据库交互

    ### 关于servlet+jsp+service+Oracle实现简单的数据库交互 #### 一、概述 本文将详细介绍如何使用servlet、jsp、service层以及Oracle数据库来实现一个简单的用户登录注册功能。这种架构通常用于Web应用程序开发中...

    博客系统(dao+servlet+service+vo+mysql)

    这是一个基于Web的博客系统,它集成了DAO(数据访问对象)、Servlet、Service和VO(值对象)等核心组件,用于实现完整的CRUD(创建、读取、更新、删除)操作。该系统使用MySQL作为后端数据库,提供了方便的数据存储...

    开发基于JSP Servlet JavaBean的网上交易系统(JSP Servlet JavaBean Web Service)

    开发基于JSP Servlet JavaBean的网上交易系统毕业设计毕业设计毕业设计毕业设计(JSP Servlet JavaBean Web Service)开发基于JSP Servlet JavaBean的网上交易系统(JSP Servlet JavaBean Web Service)开发基于JSP ...

    Servlet接口及方法

    该方法在Servlet实例化之后、首次调用`service`方法之前被调用一次。 **注意事项:** - 如果此方法抛出了`ServletException`,则Servlet不会被置入服务中。 - 如果在规定时间内未完成初始化,则认为Servlet无法正常...

    crm项目jsp+servlet+service+dao

    Servlet通过`doGet`和`doPost`等方法处理HTTP请求,与JSP配合实现MVC(Model-View-Controller)架构中的Controller角色。 3. Service层:Service层是业务逻辑的实现层,它封装了DAO(Data Access Object)操作,...

    servlet中方法执行次序及API简介(init,service,doservice,doget等)

    2. **service()**:这是Servlet的主要工作方法,用于处理所有类型的HTTP请求。当客户端发送请求到Servlet时,容器会根据请求类型(GET、POST等)选择合适的方法调用,如doGet()或doPost()。service()方法内部会判断...

    Servlet中文内部教程

    3. Servlet容器创建一个Servlet实例,并调用`service`方法来处理请求,然后将处理结果返回给Web服务器。 4. Web服务器再将结果发送回客户端。 #### 四、Servlet API包 Servlet API主要由两个Java包组成:`javax....

    servlet基础与servlet容器模型

    由于HTTP请求是无状态的,Servlet容器通常为每个请求创建一个新的线程来调用Servlet的`service()`方法,以提高并发性能。这意味着Servlet必须是线程安全的,避免在多个线程间共享数据。 总的来说,Servlet基础知识...

    使用jsp-servlet-service-dao四层结构完成用户信息的增删改查操作

    在用户信息管理中,Servlet接收HTTP请求,进行业务逻辑处理,并调用服务层的方法。 3. **Service(服务层)**:这一层主要负责业务逻辑的实现,比如用户注册、登录验证、用户信息的增删改查等。它封装了DAO层的操作...

    servlet+service+mybatis实践2

    例如,可能有一个`AddOrUpdateServlet`用于处理添加或修改数据的请求,它会解析请求参数,调用Service层的方法,最后将结果封装成HTTP响应返回给客户端。 **Service层**: Service层是业务逻辑的载体,通常包含多个...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    - `HttpServlet`: 继承自GenericServlet,专门用于处理HTTP请求,提供了处理GET、POST等HTTP方法的抽象方法。 - `ServletConfig`: 代表Servlet的配置信息,包含在web.xml中定义的Servlet特定的初始化参数。 - `...

    servlet源码 servlet-api-src javax.servlet.Servlet源码

    在实际开发中,我们通常不会直接实现`Servlet`接口,而是继承`HttpServlet`类,因为它已经为我们提供了一些基础的HTTP方法实现。例如,`doGet()`和`doPost()`方法默认都会抛出`NotImplementedException`,所以我们只...

Global site tag (gtag.js) - Google Analytics