`
遛遛遛
  • 浏览: 52471 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

关于httpServlet.service()方法

    博客分类:
  • web
 
阅读更多

 

转载地址:http://hi.baidu.com/clisdena/blog/item/5d185a959aa1230d7bf4809a.html

 

 

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()方法标识出来!!
(我得要请教一下~~)


Servlet的响应可以是:
一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释;
一个HTTP错误响应, 重定向到另一个URL,servlet,JSP。

分享到:
评论

相关推荐

    request.setAttribute 语句前总显示红色感叹号解决办法 HTTP Status 500 -

    type Exception report message description The server encountered an internal error () that prevented it from fulfilling this ... javax.servlet.http.HttpServlet.service(HttpServlet.java:717)解决办法:

    apache-tomcat-7.0.69.zip

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807) at javax.servlet.http.HttpServlet.service...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案, ... at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter

    COS——R.log

    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost...

    commons-beanutils-1.7.0

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter...

    严重: Servlet.service() for servlet jsp threw exception java.lang.UnsupportedClassVersionError: com/ut

    严重: Servlet.service() for servlet jsp threw exception java.lang.UnsupportedClassVersionError: com/util/PostUtil  at org.apache.jsp.shouye.index_jsp._jspService(index_jsp.java:84)  at org.apache....

    java head space.txt

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) at javax.servlet.http.HttpServlet.service...

    微信支付学习笔记之调用com.github.binarywang.wxpay.service接口

    使用步骤: 将HttpServletRequest转成 ip /** * 获得请求地址ip * @param httpservletrequest * @return */ public static String getClientIP(HttpServletRequest ... String s = httpservlet

    jaxrs-api,javax.ws.rs.Path;

    com.test.app.service.UcService <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap <servlet-name>Resteasy <servlet-class>org.jboss.resteasy.plugins.server....

    Servlet学习

    提供了实现servlet接口的两种方法:子类化javax.servlet.GenericServlet(这种方法提供了读取servlet配置信息的例子)和子类化javax.servlet.http.HttpServlet类.还有用service方法完成的经典的Hello World程序

    新闻发布系统

    import org.news.service.impl.TopicServiceImpl; /** * 后台主题Servlet */ public class TopicServlet extends HttpServlet { private static final Logger logger = Logger.getLogger(TopicServlet.class); ...

    servlet temple

    1.Servlet 是什么?  Servlet是使用Java Servlet 应用程序设计接口(API...因为 HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。

    zhifuba-demo.rar

    import zhifubao.service.order.OrderController; /** * @author YXqiang */ @WebServlet(description = "支付宝测试支付功能", urlPatterns = { "/mydo" }) public class zhifubaoServlet extends HttpServlet {...

    北大青鸟超市管理系统

    import com.pb.supermanager.service.impl.UserServiceImpl; public class UserAdd extends HttpServlet { private static final long serialVersionUID = -6316960884845775373L; public UserAdd() { super...

    数据库的基本操作前端加后端.zip

    import service.UserServiceImpl; import vo.User; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet....

    servlet2.4doc

    Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. destroy() - Method in class javax.servlet.GenericServlet Called by the servlet container to ...

    servlet资源

    HttpServlet 类包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是继承的(HttpServlet扩展至GenericServlet)。所有用于HTTP的servlet编程都通过继承javax.servlet.http.HttpServlet ...

    JavaWeb核心之Servlet-源代码

    2)覆盖尚未实现的方法---service方法 3)在web.xml进行servlet的配置 但在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多, 我们一般创建类继承HttpServlet 实现步骤: 1)创建类继承...

    简单的servlet增,删,改,查

    import com.sshmvc.ljl.service.impl.UserServiceImpl; /** * Servlet implementation class ListUserServlet */ public class ListUserServlet extends HttpServlet { private static final long ...

    投票系统,基于mvc开发,jsp+servlet+mysql

    // 调用service层方法得到所有的 String temp = req.getParameter("page"); int page = 1; if (temp != null) { try { page = Integer.parseInt(temp); } catch ...

Global site tag (gtag.js) - Google Analytics