1、新建Web项目。 2、加入前端登录界面 3、创建LoginServlet程序。 4、创建LoginFilter程序。全部代码及步骤代码及步骤
时间: 2023-12-30 14:02:15 浏览: 72
好的,以下是新建Web项目并加入前端登录界面的步骤:
1. 在Eclipse中创建一个新的Dynamic Web Project,命名为LoginDemo。
2. 在项目目录下创建一个名为WebContent的文件夹,作为Web项目的Web根目录。
3. 在WebContent目录下创建login.jsp文件,用于用户登录。
4. 在login.jsp文件中添加如下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">Password:</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Login">
</form>
</body>
</html>
```
5. 创建LoginServlet程序来处理用户登录请求,在src目录下创建一个名为LoginServlet的Java类,添加如下代码:
```java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
// 进行登录验证,此处省略
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h3>Login Successful!</h3>");
out.println("</body></html>");
}
}
```
6. 创建LoginFilter程序来过滤未登录用户的请求,在src目录下创建一个名为LoginFilter的Java类,添加如下代码:
```java
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
@WebFilter("/secured/*")
public class LoginFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String uri = req.getRequestURI();
if (req.getSession().getAttribute("username") == null && !uri.endsWith("login.jsp")) {
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
public void destroy() {
}
}
```
7. 在WebContent目录下创建一个名为secured的文件夹,用于存放需要登录才能访问的页面。
8. 在secured文件夹下创建一个名为home.jsp的文件,添加如下代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h3>Welcome <%= session.getAttribute("username") %>!</h3>
<a href="logout">Logout</a>
</body>
</html>
```
9. 创建LogoutServlet程序来处理用户登出请求,在src目录下创建一个名为LogoutServlet的Java类,添加如下代码:
```java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().invalidate();
response.sendRedirect("login.jsp");
}
}
```
现在,您可以运行Web项目并访问login.jsp页面,输入正确的用户名和密码进行登录,然后访问secured/home.jsp页面查看登录成功后的欢迎页面。如果您尝试访问其他需要登录才能访问的页面,系统会自动重定向到登录页面。
阅读全文