JSP教程-登录和注销示例在JSP中
在这个示例中,我们将展示如何使用JSP创建一个登录和注销功能。我们将使用DAO(数据访问对象)、工厂方法和DTO(数据传输对象)设计模式。此示例涉及多个文件,其中包括index.jsp提供登录、注销和个人资料的链接,login.jsp用于获取用户输入的值,loginprocess.jsp处理登录请求,并通过LoginDao类的方法来验证用户。
我们使用Oracle10g数据库来匹配emailId和密码。我们假设已在数据库中创建了名为user432的表,并包含多条记录,你可以使用以下查询来创建这张表:
CREATE TABLE "USER432"
( "NAME" VARCHAR2(4000),
"EMAIL" VARCHAR2(4000),
"PASS" VARCHAR2(4000)
);
index.jsp
该文件简单提供三个链接:登录、注销和个人资料。
<!DOCTYPE html>
<html>
<head>
<title>Login Example</title>
</head>
<body>
<a href="login.jsp">login</a> |
<a href="logout.jsp">logout</a> |
<a href="profile.jsp">profile</a>
</body>
</html>
login.jsp
这个文件创建一个登录表单,有两个输入字段:邮箱和密码。
<!DOCTYPE html>
<html>
<head>
<title>Login Form</title>
</head>
<body>
<h3>Login Form</h3>
<form action="loginprocess.jsp" method="post">
Email: <input type="text" name="email"/><br/><br/>
Password: <input type="password" name="password"/><br/><br/>
<input type="submit" value="login"/>
</form>
</body>
</html>
loginprocess.jsp
这个JSP文件接收传入的值,并将其传递给bean类,然后调用LoginDao类的方法。如果email和密码正确,它会显示成功登录的消息,并维持会话以识别用户。
<%@page import="bean.LoginDao, bean.LoginBean"%>
<jsp:useBean id="obj" class="bean.LoginBean"/>
<jsp:setProperty property="*" name="obj"/>
<%
boolean status = LoginDao.validate(obj);
if(status){
out.println("You are successfully logged in");
session.setAttribute("session","TRUE");
response.sendRedirect("profile.jsp");
} else {
out.print("Sorry, email or password error");
request.getRequestDispatcher("login.jsp").include(request, response);
}
%>
Logout.jsp
这个文件使会话无效。
<%@page session="false"%>
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
Profile.jsp
这个文件显示用户已经登录的简单消息,如果未登录,则转发请求到login.jsp页面。
<%
String sessionCheck = (String) session.getAttribute("session");
if(sessionCheck == null){
request.setAttribute("login_msg", "Please login first");
request.getRequestDispatcher("login.jsp").forward(request, response);
} else {
out.println("<h1>Welcome to Profile</h1>");
}
%>