servlet的生命周期:
1.当第一次打开浏览器访问servlet的时候,servlet的构造方法被调用,创建servlet对象。在servlet没被销毁时,只创建一个servlet。
2.然后servletConfig对象被创建,init方法调用。
3.创建request和response对象,调用service方法。客户的每一次请求都会调用一次service方法。
4.service方法执行后,tomcat返回修改后的response对象。
5.如果tomcat服务器停止,则调用destory方法。
HttpServletRequest对象。
HttpServletResponse对象。
servletConfig对象:servlet的配置对象。会在servlet对象创建之后、init方法调用之前创建。用来加载servlet的初始化参数。
servletContext对象:servlet上下文对象。它代表当前的web应用环境,一个web应用中只有一个servletContext对象。
域对象:有4个域对象,可以用来保存数据,传递数据,获得数据。
PageContext, HttpServletRequest, HttpSession, ServletContext
ServletContext对象:作用范围是整个web应用。
转发和重定向。
转发:
1,地址栏不会变化。
2,转发只能转发到当前web应用之内。
3,转发的时候可以将数据保存到request域对象中。(转发的时候,服务器将客户端发来的request发给转发对象,因此没变)
重定向:
1,地址栏会发生变化。
2,重定向可以到当前web应用之外。
3,重定向不能保存request域中的数据。(重定向的时候,服务器两次收到的request不是同一个)
关于HttpServletRequest的getAttribute和getParameter方法
1.返回的类型不一样。getAttriubte方法是在web容器类传递数据,返回的是Object类型。而getParameter方法是返回的String类型。
2.用途不同。getAttribute方法必须先通过request.setAttribute才能拿到数据,是在request域中传递数据,而getParameter用于接收表单传递过来的参数,url重写传递的参数(xxxx?id=1)