检查用户是否已登录或会话是否已在jsp中启动
我正在尝试使用jsp设计一个简单的登录系统。在登录页面中,用户输入其用户名和密码,在验证时执行为检查用户是否已登录或会话是否已在jsp中启动,jsp,Jsp,我正在尝试使用jsp设计一个简单的登录系统。在登录页面中,用户输入其用户名和密码,在验证时执行为 现在在“home.jsp”中,如何检查会话是否已经创建 *我需要检查会话是否已经在配置文件的每个页面上启动。所以我想创建一些函数,我可以在每个jsp页面的顶部调用它们* 我该怎么办?不要在Jsp中添加/编写Java代码。您应该设计一个过滤器来验证用户 编辑: 看看教程-首先创建一个类似这样的类。。设置用户bean属性的步骤 为了简单起见,本例假设一个用户 public class Users
现在在“home.jsp”中,如何检查会话是否已经创建
*我需要检查会话是否已经在配置文件的每个页面上启动。所以我想创建一些函数,我可以在每个jsp页面的顶部调用它们*
我该怎么办?不要在
Jsp
中添加/编写Java代码。您应该设计一个过滤器
来验证用户
编辑:
看看教程-首先创建一个类似这样的类。。设置用户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");
}
}
<input type="hidden" name="user" id="user" value="${sessionScope['userLogin'].user}">
上面的代码并不是没有错误的,但是由于您提供了一个缺少的代码,所以这是我对您的案例的最接近的集,您可以像这样在每个jsp上访问这个变量
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");
}
}
<input type="hidden" name="user" id="user" value="${sessionScope['userLogin'].user}">
我希望这会有所帮助,最重要的是,您从中学到了一些东西使用JSP
Prelude
,它将JSP添加到所有JSP的开头。并检查sesion是否已经存在
参考文献: