登录信息保存到SESSION后显示在首页的问题  现在在登陆一次后,不需要输入用户名密码直接提交在首页就可以显示。
这是SERVLET中的代码package com.weibo.servlets;import java.io.*;
import java.sql.*;
import com.weibo.*;
import com.weibo.biz.UserAccountBiz;
import com.weibo.biz.impl.UserAccountBizImpl;
import com.weibo.dao.UserAccountDao;
import com.weibo.dao.impl.UserAccountDaoImpl;import javax.jms.Session;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class LoginPass extends HttpServlet { public LoginPass() {
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { // doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean pass = false;
String email = request.getParameter("email");
String password = request.getParameter("password"); // response.setContentType("text/html");
// PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
UserAccountBiz userBiz = new UserAccountBizImpl();
boolean t = userBiz.isPassUser(email, password);
if(t){
System.out.println("t true");
}
if(t==false){
System.out.println("t false");
}
if (t) {
pass = true; session.setAttribute("pass", pass);
session.setAttribute("email", email);
session.setAttribute("pwd", password); // response.sendRedirect("pLogin2.jsp");
// RequestDispatcher requestDispatcher = request
// .getRequestDispatcher("pLogin2.jsp");
// requestDispatcher.forward(request, response);
request.getRequestDispatcher("index.jsp")
.forward(request, response);
} else {
pass = false;
session.setAttribute("email", email);
request.getRequestDispatcher("Login.jsp")
.forward(request, response);
// response.sendRedirect("pLogin2.jsp");
} // out
// .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
// out.println("<HTML>");
// out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
// out.println("  <BODY>");
// out.print("    This is ");
// out.print(this.getClass());
// out.println(", using the POST method");
// out.println("  </BODY>");
// out.println("</HTML>");
// out.flush();
// out.close();
} public void init() throws ServletException {
// Put your code here
}}
这是登陆页jsp<center>
<div class="middleCt">
<form action="LoginPass" method="post">
<div class="middleLText">
  <input name="email" type="text" style="color:teal;" onblur="if(!value){value=defaultValue};isEmail(this.value)" onfocus="if(this.value==defaultValue) {this.value='';this.type='text'}"value="Your E-mail here..." size="50"  />
</div>

<div class="middleRText">
<input name="password" type="password" style="color:teal;" onfocus="if(this.value==defaultValue) {this.value='';this.type='password'}" onblur="if(!value) {value=defaultValue; this.type='text';}"  size="50" />
</div>

<div class="middleButton"><input name="loginSubmit" type="submit" value="OK" /></div>
</form>

</div>
</center>


<c:if test="${pass==false}">
alert("你是输入的Email或者password有误!");
</c:if>
这是主页显示登录用户信息的代码<div class="topUser">
<c:if test="${pass==true}">
您好,尊敬的${email }用户
</c:if>

<c:if test="${pass==false}">
请登录
</c:if>

</div>

解决方案 »

  1.   

    你登录了一次了session里面就有值了,第二次你当然可以直接登录的如果你要他第二次进来要登录的话,应该在他退出的时候清空你的seession 
      

  2.   

    你这应该是一个系统的一部分吧,放在session里的东西不清空会保持在整个会话过程中的,所以注销时要清空的,你可以再写个退出的功能就行了,具体代码可以看我的博客,关于session的注销问题,希望能帮到你
      

  3.   

    在关闭页面的时候清空SESSION怎么做
      

  4.   

    在你的主页上面加上这个函数。
    这个函数会在你点击浏览器的关闭按钮时,自动触发的。window.onbeforeunload = function(){
        //在这里发送一个ajax请求至服务器,清空session里面的用户信息,或者是直接销毁session。
    }
      

  5.   

    HttpSession session = request.getSession(false);  
    session.invalidate();  
    response.setHeader("Pragma", "No-cache");  
    response.setHeader("Cache-Control", "no-cache");  
    response.setDateHeader("Expires", 0);  
    // 跳转到初始登录界面   
    response.sendRedirect("login.jsp");   
      

  6.   

    你如果想让系统类似保存七天的话,要把信息保存到cookie中
      

  7.   

    我同意他的,在我面试的过程中,曾经被问到过这样的题,我也说是session,但是后来人家就直接告诉我了,就说的是cookie,用它便可