1、新建Web项目。 2、加入前端登录界面 3、创建LoginServlet程序。 4、创建LoginFilter程序。全部代码及步骤
时间: 2023-12-30 10:02:15 浏览: 40
好的,以下是创建一个简单的Web项目并加入前端登录界面的步骤:
1. 新建Web项目
首先,你需要在你的开发环境中创建一个新的Web项目。对于Java开发者来说,可以使用Eclipse、IntelliJ IDEA、NetBeans等工具创建Web项目,也可以通过手动创建目录结构和配置文件的方式来创建项目。
2. 加入前端登录界面
在Web项目中,前端的登录界面通常是一个HTML页面。你可以在项目中创建一个名为login.html的文件,并在其中编写登录界面的HTML代码。
例如,以下是一个简单的登录界面HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login</h1>
<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>
```
在这个HTML页面中,我们使用一个表单来接收用户的输入,表单的action属性指定了登录请求提交的目标地址,这里是login,这个地址将在后面的步骤中被使用。
3. 创建LoginServlet程序
在Java Web项目中,登录请求通常由一个Servlet程序来处理。你可以创建一个名为LoginServlet的Java类,并继承HttpServlet类,实现doGet和doPost方法来处理登录请求。
以下是一个简单的LoginServlet实现:
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class LoginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username.equals("admin") && password.equals("admin123")) {
HttpSession session = request.getSession();
session.setAttribute("username", username);
response.sendRedirect("welcome");
} else {
response.sendRedirect("login.html");
}
}
}
```
在这个LoginServlet中,我们使用了request.getParameter方法来获取用户输入的用户名和密码,然后判断用户名和密码是否正确。如果正确,我们将用户名存储到HttpSession中,并使用response.sendRedirect方法将请求重定向到welcome页面;如果不正确,我们使用response.sendRedirect方法将请求重定向到login.html页面。
4. 创建LoginFilter程序
为了增加系统安全性,我们可以在登录请求前加入一个Filter过滤器来进行身份验证。Filter是Servlet规范中的一个组件,它可以拦截HTTP请求和响应,对它们进行处理,然后将它们传递给下一个组件。
以下是一个简单的LoginFilter实现:
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class LoginFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpSession session = httpRequest.getSession(false);
String loginURI = httpRequest.getContextPath() + "/login.html";
boolean loggedIn = session != null && session.getAttribute("username") != null;
boolean loginRequest = httpRequest.getRequestURI().equals(loginURI);
if (loggedIn || loginRequest) {
chain.doFilter(request, response);
} else {
httpResponse.sendRedirect(loginURI);
}
}
}
```
在这个LoginFilter中,我们首先获取HttpSession对象,判断用户是否已经登录。如果已经登录或者当前请求为登录请求,我们将请求传递给下一个组件;否则,我们使用response.sendRedirect方法将请求重定向到login.html页面。
5. 配置Web项目
最后,我们需要将LoginServlet和LoginFilter注册到Web项目中,并配置Servlet映射和Filter映射。
在Web项目的web.xml配置文件中,我们可以添加以下配置:
```xml
<web-app>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
```
在这个配置文件中,我们将LoginServlet注册为/login地址的Servlet,并将LoginFilter注册为所有地址的Filter。这样,所有的请求都会被LoginFilter拦截,进行身份验证,然后再将请求传递给下一个组件。
这样,一个简单的Web项目就创建完成了,并加入了前端登录界面和身份验证功能。