用 jsp中的application和session做个用户注册
时间: 2023-10-06 12:08:28 浏览: 48
以下是一个基本的用户注册示例,使用JSP中的application和session:
register.jsp:
```
<html>
<head>
<title>User Registration</title>
</head>
<body>
<h1>User Registration</h1>
<%
String errorMessage = (String) request.getAttribute("errorMessage");
if (errorMessage != null) {
out.println("<p style=\"color:red\">" + errorMessage + "</p>");
}
%>
<form method="post" action="register.do">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br>
<input type="submit" value="Register">
</form>
</body>
</html>
```
register.do:
```
<%@ page import="java.util.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
// Validate input
if (username == null || username.trim().length() == 0 ||
password == null || password.trim().length() == 0) {
request.setAttribute("errorMessage", "Please enter a username and password");
request.getRequestDispatcher("register.jsp").forward(request, response);
return;
}
// Check if username already exists
ServletContext application = getServletContext();
Map<String, String> users = (Map<String, String>) application.getAttribute("users");
if (users == null) {
users = new HashMap<String, String>();
application.setAttribute("users", users);
}
if (users.containsKey(username)) {
request.setAttribute("errorMessage", "Username already exists");
request.getRequestDispatcher("register.jsp").forward(request, response);
return;
}
// Add user to application scope
users.put(username, password);
// Add user to session scope
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect("welcome.jsp");
%>
```
welcome.jsp:
```
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome <%= session.getAttribute("username") %></h1>
<p>You have successfully registered.</p>
<p><a href="logout.do">Logout</a></p>
</body>
</html>
```
logout.do:
```
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%
// Invalidate session
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
// Redirect to login page
response.sendRedirect("login.jsp");
%>
```