An easy application by using jsp and servlet to control user login and logout

The whole program layout in the eclipse
The front end including index.jsp, login.jsp, memberArea.jsp and the back end including two servlet to handle login and logout function

index.jsp
This page will has one Login button, click it will direct user to the page to enter the username and password

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Home</title>
</head>
<body>
<a href="<%= request.getContextPath()%>/SiteController?action=login">Login</a>
</body>
</html>

login.jsp
This page will get the input from user and login the member page

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>

	<form action="<%= request.getContextPath()%>/SiteController" method="post">
		Username: <input type="text" name="username" ><br/>
		Password: <input type="password" name="password"><br/>
		<input type="submit" value="submit">
	</form>

</body>
</html>

memberArea.jsp page

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Member Area</title>
</head>
<body>
	<%
		String username = null, sessionID = null;
	    if(request.getSession().getAttribute("username") == null){
	    	response.sendRedirect("login.jsp");
	    }else{
	    	username = request.getSession().getAttribute("username").toString();
	    	sessionID = request.getSession().getId();
	    }
	 

	%>
	Username:
	<%=username%><br /> Current session:
	<%=sessionID%><br /> memberArea!!
    <form action="<%= request.getContextPath()%>/MemberAreaController" method="get">
    <input type="hidden" name="action" value="destroy">
    <input type="submit" value="logout">
    </form>
</body>
</html>

Servlet SiteController
This servlet is used to control login at the start of the program and after user enter their usernames and passwords

package org.studyeasy.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class SiteController
 */
@WebServlet("/SiteController")
public class SiteController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public SiteController() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getParameter("action");
		switch (action) {
		case "login":
			request.getRequestDispatcher("login.jsp").forward(request, response);
			break;
		default:
			break;
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		if(username.equals("studyeasy") && password.equals("Love")) {
			//Invalidating session if any
			request.getSession().invalidate();
			HttpSession newSession = request.getSession(true);
		    newSession.setMaxInactiveInterval(300);
		    newSession.setAttribute("username", username);
		    response.sendRedirect("memberArea.jsp");
			
		}else {
			response.sendRedirect("login.jsp");
		}
	}
}

Servlet MemberAreaController
This servlet is used to logout

package org.studyeasy.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class MemberAreaController
 */
@WebServlet("/MemberAreaController")
public class MemberAreaController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public MemberAreaController() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getParameter("action");
		switch (action) {
		case "destroy":
			request.getSession().invalidate();		
			response.sendRedirect("login.jsp");
			break;

		default:
			response.sendRedirect("google.com");
			break;
		}
	}
}

The following is the whole program from start to end
Welcome page
在这里插入图片描述
Login page
MemberArea page

这里提供一个基本的登录注册页面的实现,其中使用JSP作为前端页面,Servlet作为后台处理程序。 1. 创建一个名为 "login.jsp" 的文件,编写登录页面的HTML代码。 ```html <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h1>Login</h1> <form action="loginServlet" method="POST"> <label>Username: </label> <input type="text" name="username"><br><br> <label>Password: </label> <input type="password" name="password"><br><br> <input type="submit" value="Login"> </form> <p>New User? <a href="register.jsp">Register here</a></p> </body> </html> ``` 2. 创建一个名为 "register.jsp" 的文件,编写注册页面的HTML代码。 ```html <!DOCTYPE html> <html> <head> <title>Registration Page</title> </head> <body> <h1>Registration</h1> <form action="registerServlet" method="POST"> <label>Username: </label> <input type="text" name="username"><br><br> <label>Password: </label> <input type="password" name="password"><br><br> <label>Confirm Password: </label> <input type="password" name="confirmPassword"><br><br> <input type="submit" value="Register"> </form> <p>Already registered? <a href="login.jsp">Login here</a></p> </body> </html> ``` 3. 创建一个名为 "LoginServlet.java" 的Servlet文件,用于处理登录请求。 ```java import java.io.IOException; import java.io.PrintWriter; 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 LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String username = request.getParameter("username"); String password = request.getParameter("password"); if(username.equals("admin") && password.equals("1234")) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); } else { out.println("Incorrect username or password."); } } } ``` 4. 创建一个名为 "RegisterServlet.java" 的Servlet文件,用于处理注册请求。 ```java import java.io.IOException; import java.io.PrintWriter; 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 RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String username = request.getParameter("username"); String password = request.getParameter("password"); String confirmPassword = request.getParameter("confirmPassword"); if(password.equals(confirmPassword)) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); } else { out.println("Passwords do not match."); } } } ``` 5. 创建一个名为 "welcome.jsp" 的文件,用于显示欢迎信息。 ```html <!DOCTYPE html> <html> <head> <title>Welcome Page</title> </head> <body> <h1>Welcome <%= session.getAttribute("username") %>!</h1> <p>You have successfully logged in.</p> <a href="logoutServlet">Logout</a> </body> </html> ``` 6. 创建一个名为 "LogoutServlet.java" 的Servlet文件,用于处理注销请求。 ```java import java.io.IOException; 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 LogoutServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.invalidate(); response.sendRedirect("login.jsp"); } } ``` 以上就是一个基本的登录注册页面的实现。需要注意的是,这里只是提供了一个简单的示例,实际的应用中还需要加入更多的安全性和验证机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值