servlet的生命周期
1、初始化调用init方法 只会执行一次 自动执行。
public void init() throws ServletException {
System.out.println("我被创建了,只会执行一次");
}
2、执行 调用service方法,调用几次执行几次 需要手动调用。
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("进来了");
}
3、消亡调用destory方法 只会执行一次 自动执行 没啥用,一般是项目停止自动执行。
public void destroy() {
System.out.println("我停了");
}
servlet的跳转
1.可以从servlet跳转到另外一个servlet(删除数据之后返回到刷新查询servlet)
2.可以从servlet跳转到前台页面(注册成功返回登录页面
转发跳转:
只需1次请求即可完成,效率高,URL地址不会改变,例如从B转发到A,URL地址依然是
req.getRequestDispatcher("AServlet").forward(req,resp);
req.getRequestDispatcher("index.html").forward(req,resp);
总结:能用转发就用转发。但是以下情况不推荐:涉及到敏感操作一定不能使用转发,涉及到注册操作.涉及到增删改都推荐使用重定向
备注:超链接本质就是重定向跳转
Servlet的四大作用域
有些情况下:我们需要实现后台servlet的数据共享
四大作用域:pageContext < request < session < application
pageContext作用域:
仅在当前页面有效,只要页面发生了跳转就失效。 所以不用
request作用域:
重点掌握:作用域一次请求有效。超过一次请求就失效,所以切忌使用重定向跳转
如何存储数据 注意key要保证唯一,否则会被覆盖
session作用域:
重点掌握:作用域一次会话有效。(浏览器打开到关闭为一次会话)
如何存储数据 注意key要保证唯一,否则会被覆盖
1.获取session对象
HttpSession session = req.getSession();
2.存值
session.setAttribute("username","李四");
application作用域:
了解即可:作用域全局有效。只要项目不关,就一直生效,例如网站访问量
如何存储数据 注意key要保证唯一,否则会被覆盖