2012-06-28 47 views
1

我正在尝试使用jsp设计一个简单的登录系统。在登录页面,用户输入其核查被作为检查用户是否已经登录或会话在jsp中启动


if username and password combination exists, then 
{ 

    HttpSession session = request.getSession(false); 

    if (session == null) { 
      // Session not created yet. So we do it now. 
      session = request.getSession(); 
      session.setAttribute("id",idvariable); 
      response.sendRedirect("home.jsp"); 
      // I redirect them to their profile home pages 
    } 

    else { 
     // Session is already created. 
     response.sendRedirect("home.jsp"); 
     // So i again redirect them to their home page 
    } 
} 

现在,在“针对home.jsp”我怎么检查是否会话已经建立执行他的用户名和密码??


* 我需要检查是否会话已经在配置文件每一页开始。所以,我想建立某种形式的功能,我可以在每一个JSP页面*


我应该怎么做的顶部调用?

回答

1

请勿在Jsp中添加/编写Java代码。您应该必须设计一个filter来验证用户。

编辑:

看看教程 - info (servlet-filters)

+0

我知道我应该Java代码在JSP中,但可以ü请告诉我什么是法,如果我尝试要做到这一点.. –

+1

难道你没有在你的问题的代码?你可以把它放在过滤器中,然后每个请求都会检查会话。无需向JSP添加任何内容。 +1 – Sean

1

首先创建一个类这样的..设置用户bean的属性 这个例子假设一个用户对于简单

public class Users implements Serializable { 
    private String user; 

public String getUser() { 
     return user; 
    } 

    public void setUser(String user) { 
     this.user = user; 
    } 
} 

然后在这样的登录检查

String userName = request.getRequest().getParameter("txtid"); 
    String password = request.getRequest().getParameter("txtPassword"); 

Vector params = new Vector(); 

     params.add(null);//return result from procedure 
     params.add(Name); 
     params.add(password); 


Users mainUser = new Users(); 
Vector tempResults = callingDaoProcedure.executeGetPasswordogin(params);//finds the password in DB 

if (!tempResults.isEmpty()) { 

        mainUser = (MainUsers) tempResults.get(0); 
if (mainUser.getPassword().trim().equals(password.trim())) { 

    HttpSession session = request.getSession(false); 


     if (request.getSession().getAttribute("userLogin") == null) { 
       // Session not created yet. So we do it now. 
       session = request.getSession(); 
       requestgetRequest().setAttribute("status", "NO_ERRORS"); 
       request.getSession().setAttribute("userLogin", mainUser); 
       response.sendRedirect("home.jsp"); 
       // I redirect them to their profile home pages 
     } 

     else { 
      // Session is already created. 
      response.sendRedirect("home.jsp"); 
      // So i again redirect them to their home page 
     } 
} 
else 
{ 
       request.getRequest().setAttribute("status", "WRONG_PASSWORD"); 
       System.out.println("wrong password"); 
} 


} 

上面的代码不出现错误,但是因为你提供了一个丢失码这是closeset我得到你的情况下,任何方式,您可以在每个JSP访问这个变量这样

<input type="hidden" name="user" id="user" value="${sessionScope['userLogin'].user}"> 

我希望它能帮助并且最重要的是你从中学到了东西

相关问题