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的代码。