在这个示例中,我们将展示如何使用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>");
}
%>

标签: JSP, JSP教程, JSP技术, JSP快速入门, JSP简单用法, JSP编程, JSP下载, JSP基本语法, JSP安装教程, JSP库, JSP指南, JSP基础教程, JSP初级教程, JSP进阶教程