GetSession(false)在JSP页面第一次访问为什么不是Null,按照Servlet Specification 2.4应该为Null。由于前两年在做业务网站后台程序时,为了防止刷新数据重复提交,导致数据库异常的问题时,我查阅资料,亲自实现了令牌机制。所以我对这个理解才有一个深刻理解。JSP页面会交给Tomcat容器编译成Servlet,Servlet会生成一个像 public void_jspService(HttpServletRequest req,HttpServletRespose res)的方法,在这个方法中用到了getSession()方法,这个方法相当于调用了getSession(true),就是当前会话不存在就创建,所以你在访问JSP页面时,在页面调用Scriplet时,得到的是非NULL值。如果你不信可以在JSP页面中分别用session.getSession(false),和session.getSession()得到两个变量,打印出他们的HashCode(),值是一样的。另外说明的是由于JSP面面中使用的session非JSP声明变量(其实就是隐含变量),所以用到的session就是void_jspService中的session,是同一个对象的引用。
但如果把getSession(flase)放在一个Servlet中,第一次访问这个Servlet得到的是Null值。
如有不妥之处,欢迎提出宝贵意见.
注:
有些东西,不要看网上的,自己弄出来才是真本事。请不要枉驾评论。我的这篇文章其实也没有深奥的道理,但可以给新手一些帮助。
不要乱评别人,我不算新手,也不算成手。至今用过Spring,Hibernate,Xfire,Lucene,Struts等技术做过开发,三年多。这是一天没事,突然想起前两年做的东东,想把过程记录下来。
以后有时间,打算每有心得就写篇文章。
分享到:
相关推荐
Servlet+Jsp实现简单的登陆,HttpSession session = request.getSession();
JSP request ---> service ...Servlet 问题 1 XXXViewServlet out.println("<html>"); out.println("</html>"); 不善于做显示页面 2 Java程序 java---> javac ---> 启动tomcat 修改繁琐
Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. DIGEST_AUTH - Static variable in interface javax.servlet.http.HttpServletRequest String ...
request.getSession(true).setAttribute("codes", vcode); for (int i = 0; i ; i++) { g2.setFont(new Font("Times New Roman", Font.HANGING_BASELINE, FontSize)); double rot = getRandomJiao(); // 旋转...
import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet....
一个Servlet只能运行在一个Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果Servlet引擎支持虚拟主机,每个虚拟主机有一个Servlet环境。一个Servlet环境不能在虚拟主机之间共享。 Servlet...
在网上经常看到有人对request.getSession(false)提出疑问,我第一次也很迷惑,看了一下J2EE1.3 API,看一下官网是怎么解释的。
*在创建项目的时候首先添加Tomcat7.x的支持,然后把apache-tomcat-7.0.27\conf\web.xml拷贝到项目WEB-INF目录下 *把之前的web.xml覆盖.. 配置留下 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app ...
2、在jsp页面,编写一个请求servlet的名称"> 3、编写一个servlet,在servlet中产生图形验证码 ------------------------------------------------------------ //1、给客户端作出的回应是以图片的方式来回应 ...
JSP100选择题 适合考前练习 1 J2EE 中,()类的()方法用于创建对话。(选择一项) a) HttpServletRequest、getSession b) HttpServletResponse、newSession c) HtttpSession、newInstance d) HttpSession、...
主要介绍了java 中 request.getSession(true/false/null)的区别的相关资料,需要的朋友可以参考下
jsp源码实例-网络交易系统 import="java.util.*,domain.*,struts.page.*" pageEncoding="GB2312" errorPage="error.jsp"%> <!DOCTYPE ...
request.getSession().doc
//得到书号和书本对象 int bookid =Integer.parseInt(request.getParameter("id")); Map, Book> books = (Map, Book>)request.getSession().getServletContext().getAttribute("books"); Book book = books....
2. JSP页面需要创建仅在本页面使用的JavaBean的示例,为了完成此功能必须使用jsp:useBean的哪两个属性进行设置?(选择两个选项) A. id B. type C. name D. class E. scope F. create 答案: A, D Scope 默认值为...
只需在执行完方法后,返回字符串:如return "login/main"就会跳转到指定视图,还可以在视图中用EL表单式访问modelview数据,例子如: SimpleModelView mv = new SimpleModelView("login/mainmv"); Map, String> m = ...
HttpSession session=request.getSession(); int itemCount=0; HashMap cart=(HashMap)session.getAttribute("cart"); if(cart!=null){ itemCount=cart.size(); } response.setContentType("text/...
Servlet:HttpSession会话= request.getSession()/ session.setAttribute() jsp:<%= session.getAttribute(“ message”)%> EL / JSTL EL:$ {}页,请求,会话,应用程序 JSTL:“条件表达式”>〜 ...
//response.sendRedirect("/myservlet2/admin/success.jsp"); //response.sendRedirect(request.getContextPath()+"/admin/success.jsp"); //http://192.168.58.250:8080/myservlet2/servlet/LoginServlet //...