通常我们写的Servlet都是继承自HttpServlet,同时由IDE生成的往往还有doGet和doPost方法,init(),destroy方法,这也是一个Servlet的生命周期的体现,其中最重要的就是service()方法,虽然我们不用重写service()因为对于http协议来说,我们通常都只用重写doGet()或doPost(),分别对应的http请求方式是GET和POST,而还有另外5种方式都不怎么用,也就是HEAD,PUT,DELETE
如何取得http请求传递的参数
获取http请求头
HttpServletRequest接口中定义了如下方法:
设置Servlet回应的通常方法:
如何设定Servlet回应Http请求的回应内容
Servlet的生命周期
第一个方法是一个servlet实例化时调用的方法,如果需要给它传递初始化参数,则需要在web.xml文件中配置
可以配置多个标签。第二个service()方法,servlet会跟据http请求的方式调用适当的方法来处理http请求,通常使用的是get和 post方法,所以通常也只需要在servlet中重写这两个方法如:
- public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{………//do something} 对应如果使用post方法传递http请求,则重写doPost方法,声明方式和上面的doGet完全一样。
- destroy()方法,这个方法是servlet处理完请求后生命周期结束时调用的,通常都不用重写,也可以在其中释放资源之类的,但是通常都会有更好的方法。
请求转送(request dispatcher)
ServletRequest接口中声明 public RequestDispatcher getRequestDispatcher(String location);//location 为将要接受请求的 jsp或者是servlet的路径。 如
ServletContext接口中也声明了一个和上面一样的方法,也可以用来转发,但是必须先获得ServletContext 对象,如:
必须注意的是这个接口中的path必须以’/’开头,否则非法,而前面的location则没有限制。
ServletContext接口中还声明了一个方法
这个方法中的形参name接受的是在web.xml文件中定义的servlet实体的的值。