基于SpringMVC实现网页登录拦截
本文将详细讲解如何使用SpringMVC实现网页登录拦截,并提供两个示例说明。
环境准备
在开始实现网页登录拦截之前,我们需要准备以下环境:
- JDK 18或以上版本
- Maven 3.6.3或以上版本
- Tomcat 9.0或以上版本
实现步骤
下面是实现网页登录拦截的详细步骤:
步骤一:创建Maven项目
首先,我们需要创建一个Maven项目。可以通过以下方式创建:
mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
在上面的命令中,我们使用maven-archetype-webapp模板来创建一个名为myproject的Maven项目。
步骤二:添加依赖
在Maven项目中,我们需要添加SpringMVC的依赖。可以通过以下方式添加:
<dependencies>
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
</dependencies>
在上面的依赖中,我们添加了SpringMVC的依赖。
步骤三:配置web.xml
在Maven项目中,我们需要配置web.xml文件。可以通过以下方式配置:
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
在上面的配置中,我们定义了一个名为dispatcher的Servlet,并使用DispatcherServlet类来处理请求。我们还定义了一个名为dispatcher-servlet.xml的Spring配置文件,并将其作为参数传递给DispatcherServlet。
步骤四:配置dispatcher-servlet.xml
在Maven项目中,我们需要配置dispatcher-servlet.xml文件。可以通过以下方式配置:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.example"/>
<mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
在上面的配置中,我们使用
步骤五:编写代码
在Maven项目中,我们需要编写代码来实现网页登录拦截。下面是一个示例:
@Controller
public class LoginController {
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/login")
public String doLogin(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("username");
String password = request.getParameter("password");
if ("admin".equals(username) && "admin".equals(password)) {
HttpSession session = request.getSession();
session.setAttribute("username", username);
return "redirect:/home";
} else {
return "login";
}
}
@GetMapping("/home")
public String home(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
String username = (String) session.getAttribute("username");
if (username != null) {
return "home";
} else {
return "redirect:/login";
}
}
@GetMapping("/logout")
public String logout(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
session.removeAttribute("username");
return "redirect:/login";
}
}
在上面的示例中,我们定义了一个名为LoginController的控制器类,并使用@Controller注将其标记为SpringMVC的控制器。我们使用@GetMapping和@PostMapping注解来处理GET和POST请求。在doLogin方法中,我们检查用户名和密码是否正确,如果正确则将用户名存储在HttpSession中,并重定向到home页面。在home方法中,我们检查用户是否已经登录,如果已经登录则返回home页面,否则重定向到login页面。在logout方法中,我们从HttpSession中删除用户名,并重定向到login页面。
示例
以下是两个示例演示如何使用SpringMVC实现网页登录拦截:
示例一
-
创建一个名为myproject的Maven项目。
-
添加SpringMVC的依赖。
-
配置web.xml和dispatcher-servlet.xml文件。
-
创建一个名为LoginController的控制器类,并添加login、doLogin、home和logout方法。
-
创建login.jsp、home.jsp和logout.jsp视图文件。
-
打包项目并部署到Tomcat服务器上。
-
使用浏览器访问http://localhost:8080/myproject/login,输入用户名和密码,查看是否能够成功登录。
示例二
-
创建一个名为myproject的Maven项目。
-
添加SpringMVC的依赖。
-
配置web.xml和dispatcher-servlet.xml文件。
-
创建一个名为LoginController的控制器类,并添加login、doLogin、home和logout方法。
-
创建login.jsp、home.jsp和logout.jsp视图文件。
-
使用Spring Boot打包项目。
-
将打包后的jar包上传到服务器。
-
在服务器上运行jar包。
-
使用浏览器访问http://localhost:8080/login,输入用户名和密码,查看是否能够成功登录。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于SpringMVC实现网页登录拦截 - Python技术站