关于JSP的session

遇到的问题

之前在敲书上的代码的时候,遇到一个问题就是我只创建了一个Session对象,但是结果却显示我创建了两个Session对象

一 程序源代码

Login:
在这里插入图片描述

Welcome:
在这里插入图片描述

监听器:
在这里插入图片描述

<当创建一个Session对象的时候就要counter++>

但是当我登录的时候却显示:
在这里插入图片描述

二 找出问题

当初苦苦找寻没有找出来(就打算问别人,结果忘了),昨天lt问我当时写这个的时候有遇到吗,然后我们两个一起没有找到,咨询了zxx,问题就解决了!(膜拜!)

原因是因为

在默认的情况下,在对一个JSP页面发出请求的时候,如果Session还没有建立,JSP页面会自动为请求建立一个Session对象

那我怎样可以去掉呢?
在这里插入图片描述

三 为什么已请求JSP就会自动创建session呢?
  • session对象是一个JSP内置对象(在访问JSP页面的时候自动创建)

  • JSP有9个隐含对象
    在这里插入图片描述

    对象所属的类说明
    requestjavax.servlet.http.HttpServletRequest客户端的请求信息
    responsejavax.servlet.http.HttpServletResponse网页传回客户端的响应
    outjavax.servlet.jsp.JSPWriter向客户端浏览器输出数据的数据流
    sessionjavax.servlet.http.HttpSession与请求有关的会话
    applicationjavax.servlet.ServletContext提供全局的数据,一旦创建就保持到服务器关闭
    configjavax.servlet.servletConfigServlet的配置对象
    pageContextjavax.servlet.jsp.PageContextJSP页面的上下文,用于访问页面属性
    pagejava.lang.Object同Java中的this,即JSP页面本身
    Exceptionjava.lang.Throwable针对错误网页,捕捉一般网页中未捕捉的异常
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
<br>JSP Login.jsp <br><br><br><br><%@ page contentType="text/html;charset=GB2312" %><br><br><html><br><head><br><title>CH5 - Login.jsp</title><br></head><br><body><br><br><h2>javax.servlet.http.HttpSession - session 对象</h2> <br><form action=Login.jsp method="POST" ><br>Login Name: <input type="text" name="Name"><br><br>Login Password: <input type="text" name="Password" ><br><br><input type="submit" value="Send"><br><br><form><br><br><% if (request.getParameter("Name") != null &&<br> request.getParameter("Password") != null) { <br>String Name = request.getParameter("Name");<br>String Password = request.getParameter("Password");<br><br>if (Name.equals("mike") && Password.equals("1234")) { <br>session.setAttribute("Login", "OK");<br>response.sendRedirect("Member.jsp");<br>}<br>else { <br>out.println("登录错误,请输入正确名称"); <br>} <br>}<br>%><br><br></body><br></html> <br><br><br>JSP Member.jsp <br><br><br><br><%@ page contentType="text/html;charset=GB2312" %><br><br><html><br><head><br><title>CH5 - Member.jsp</title><br></head><br><body><br><br><h2>javax.servlet.http.HttpSession - session 对象</h2> <br><% <br>String Login = (String)session.getAttribute("Login");<br><br>if (Login != null && Login.equals("OK")) { <br>out.println("欢迎进入");<br>session.invalidate(); <br>} <br>else { <br>out.println("请先登录,谢谢") ;<br>out.println("<br>经过五秒之后,网页会自动返回Login.jsp");<br><br>response.setHeader("Refresh","5;URL=Login.jsp"); <br>}<br>%><br><br></body><br></html> <br>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值