1.session的使用
取值:
CustUseruser = (CustUser)session.getAttribute(Constants.USER);
赋值:
//存储的信息被全局共享,从Tomcat启动的时候开始记录,从Tomcat结束的时候终止。
session.getServletContext().setAttribute(custUser.getUserName(),loginTime);
//简单Session的增删改查
session.setAttribute(Constants.USER,custUser);
查找的资料:
上下文即ServletContext,是一个全局的储存信息的空间,服务器启动,其就存在,服务器关闭,其才释放。所有用户共用一个ServletContext。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的 一些信息。
所谓上下文,它是用来存储系统的一些初始化信息。
2.ModelMap和request.setAttribute
作用:用于传递控制方法处理数据到结果页面,用于一个请求过程中传递处理的数据。
区别优先级:Model和ModelMap是同一个东西,谁最后赋值的就取谁的,然后是request,最后是从session中获取
3.forward和redirect的区别
Servlet:
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request,response);
redirect方式:response.sendRedirect("/somePage.jsp");
SpringMVC:
return "redirect:/hello";
return "forward:/hello";
forward |
浏览器地址栏中不会显示出转向后的地址,不会改变Request的值,如果需要再下一个页面中能获取新的信息,可以通过Reuqest.setAttribute()放置一些信息,从下一个页面获取。 个人理解:服务器内部重定向,页面去一个别的地方了,但是却显示给你的地址没有变。共享上一个页面数据。 优势:效率高,发一次request,隐藏真实地址 |
redirect |
浏览器会跳转到相应的地址,并重写发送请求连接。 个人理解:重写开启一个新页面,表里如一。不能共享数据。 优势:Redirect能够防止某些情况下客户端Refresh造成的一些未知后果(未验证) |