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()方法标识出来!!
分享到:
相关推荐
采用Service+Service+DAO实现用户注册登陆 数据库:SQLite 代码:JSP 目的要求 (1)掌握Servlet使用技术; (2)掌握开发平台的分层技术;...(1)Servlet+Service+DAO开发模式的理解; (2)DAO的封装。
在这个项目中,Servlet作为Controller的角色,接收用户的请求,调用Service层的方法处理业务,然后将结果转发给JSP页面展示。 5. **JSP(JavaServer Pages)**: JSP是动态网页技术,用于生成HTML或XML等格式的Web...
在这个项目中,Servlet充当了控制器的角色,接收前端发送的HTTP请求,调用相应的Service层方法处理业务逻辑,然后将结果返回给前端。例如,`AddServlet`用于处理添加记录的请求,`DeleteServlet`则处理删除操作。 2...
Servlet在这里扮演了控制器的角色,接收HTTP请求,解析请求参数,调用相应的Service方法处理业务逻辑,然后将结果传递给视图进行展示。例如,对于添加用户请求,Servlet会解析请求参数,创建`User`对象,调用`...
例如,用户提交一个更新数据的请求,Servlet会接收到这个请求,然后调用相应的Service方法来处理。 2. **JSP(JavaServer Pages)**:JSP是一种动态网页技术,它允许开发者在HTML中嵌入Java代码。在响应Servlet的...
- **Servlet处理请求**:Servlet接收用户请求,调用Service层方法,然后返回结果。 - **使用AJAX发送异步请求**:在JSP页面中,使用JavaScript(如jQuery的$.ajax)发送异步请求,获取Service层处理后的数据。 - **...
当你选择直接实现Servlet接口时,你需要覆盖`service()`方法来处理HTTP请求。`service()`方法会自动根据请求类型调用`doGet()`或`doPost()`方法。这种方式适合于自定义更灵活的请求处理逻辑,但代码量相对较多,因为...
### 关于servlet+jsp+service+Oracle实现简单的数据库交互 #### 一、概述 本文将详细介绍如何使用servlet、jsp、service层以及Oracle数据库来实现一个简单的用户登录注册功能。这种架构通常用于Web应用程序开发中...
这是一个基于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实例化之后、首次调用`service`方法之前被调用一次。 **注意事项:** - 如果此方法抛出了`ServletException`,则Servlet不会被置入服务中。 - 如果在规定时间内未完成初始化,则认为Servlet无法正常...
Servlet通过`doGet`和`doPost`等方法处理HTTP请求,与JSP配合实现MVC(Model-View-Controller)架构中的Controller角色。 3. Service层:Service层是业务逻辑的实现层,它封装了DAO(Data Access Object)操作,...
2. **service()**:这是Servlet的主要工作方法,用于处理所有类型的HTTP请求。当客户端发送请求到Servlet时,容器会根据请求类型(GET、POST等)选择合适的方法调用,如doGet()或doPost()。service()方法内部会判断...
3. Servlet容器创建一个Servlet实例,并调用`service`方法来处理请求,然后将处理结果返回给Web服务器。 4. Web服务器再将结果发送回客户端。 #### 四、Servlet API包 Servlet API主要由两个Java包组成:`javax....
由于HTTP请求是无状态的,Servlet容器通常为每个请求创建一个新的线程来调用Servlet的`service()`方法,以提高并发性能。这意味着Servlet必须是线程安全的,避免在多个线程间共享数据。 总的来说,Servlet基础知识...
在用户信息管理中,Servlet接收HTTP请求,进行业务逻辑处理,并调用服务层的方法。 3. **Service(服务层)**:这一层主要负责业务逻辑的实现,比如用户注册、登录验证、用户信息的增删改查等。它封装了DAO层的操作...
例如,可能有一个`AddOrUpdateServlet`用于处理添加或修改数据的请求,它会解析请求参数,调用Service层的方法,最后将结果封装成HTTP响应返回给客户端。 **Service层**: Service层是业务逻辑的载体,通常包含多个...
- `HttpServlet`: 继承自GenericServlet,专门用于处理HTTP请求,提供了处理GET、POST等HTTP方法的抽象方法。 - `ServletConfig`: 代表Servlet的配置信息,包含在web.xml中定义的Servlet特定的初始化参数。 - `...
在实际开发中,我们通常不会直接实现`Servlet`接口,而是继承`HttpServlet`类,因为它已经为我们提供了一些基础的HTTP方法实现。例如,`doGet()`和`doPost()`方法默认都会抛出`NotImplementedException`,所以我们只...