HttpServlet的工作机制

HttpServlet的工作机制

参考
http://www.cnblogs.com/johnny/articles/19688.aspx
http://www.donews.net/accpssh/archive/2004/08/03/58736.aspx
http://blog.csdn.net/chenyun2000/archive/2004/07/08/36817.aspx


HttpServlet类的功能
提供一个抽象类,扩展该类可以创建一个适合http servlet的网站。

工作流程
1、接收客户端的请求
2、处理请求
3、向客户端发送响应

1、接收客户端的请求
1.1 从form中接收请求:
<form action="helloWebWorld.action" method="post">
<p><input type="submit" value="Hello!" /></p>
</form>


1.2 在web.xml文件中进行配置:

    <servlet>
        <servlet-name>webwork</servlet-name>
        <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>webwork</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

2、处理请求
2.1 进行初始化工作
初始化工作由init方法进行

2.2 处理请求
这里由service方法处理,service方法根据请求的类型,调用相应的方法进行处理。下面是一个例子:
 public void service( ServletRequest req, ServletResponse res )
  throws ServletException, IOException{
   HttpServletRequest request;
  HttpServletResponse response;
  try{
   request = (HttpServletRequest)req;
   response = (HttpServletResponse)res;
   String m = request.getMethod();
   if(m.equals("POST")){
    doPost(request,response);
   } else if(m.equals("GET")){
    doGet(request,response);
   }
  }catch( ClassCastException e ){
   //不是http请求。
  }
 }

 public void doGet( HttpServletRequest req, HttpServletResponse resp )
  throws ServletException, IOException{
   resp.getWriter().write("您使用 Get 方法请求该 servlet。");
 }

 public void doPost( HttpServletRequest req, HttpServletResponse resp )
  throws ServletException, IOException{
   resp.getWriter().write("您使用 Post 方法请求该 servlet。");
 }

2.3 收尾工作
此工作由destroy完成。一般不必重写


3、向客户端发送响应
对客户端响应一般由doGet,doPost等方法进行,参考2.2的代码。

posted on 2005-03-11 12:00  Na57  阅读(4375)  评论(2编辑  收藏  举报