1.创建项目
1.1工具
idea2022+Maven
1.2创建静态网页
创建项目,选择maven项目:

这里选择手动创建的方式,直接一直点击下一步(也可以参考其他选择webapp的模板创建方式)

在创建后在src/main目录下创建webapp目录


在项目构建路径中添加web支持,会在路径中生成web目录,将其中的WEB-INF移动到我们创建的webapp文件夹中



在pom.xml中添加,以下代码并且重新加载maven,这是刚刚创建的webapp会出现一个小蓝点表示被扫描类扫描到了。
1
| <packaging>war</packaging>
|

在webapp下创建一个index.jsp(如果不存在则创建)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <%-- Created by IntelliJ IDEA. User: kd_13 Date: 2024/5/25 Time: 16:09 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>index</title> </head> <body> <h1>This is index.jsp</h1> </body> </html>
|

1.3启动项目
在编辑配置中添加tomcat




在添加成功后项目服务器中会出现如下的:

此时单击启动项目即可。
1.4项目启动结果

2.项目依赖
2.1pom.xml依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.22.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency>
|
添加后重新刷新项目结构后打开右侧maven资源中查看导入的包

2.2配置文件
按照图中的架构结果编写架构

web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Archetype Created Web Application</display-name>
<servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
</web-app>
|
springmvc-servlet.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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"> <context:component-scan base-package="com.example.springmvc.controller"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
|
2.3项目测试
在控制层编写loginController.java
1 2 3 4 5 6 7 8
| @Controller public class loginController { @RequestMapping("/login") public String To_Login(HttpServletRequest request, HttpServletResponse response) { System.out.println("login....."); return "Login"; } }
|
在webapp/WEB-INF/pages下编写Login.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <%-- Created by IntelliJ IDEA. User: kd_13 Date: 2024/5/25 Time: 0:12 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>login</h1> </body> </html>
|
启动项目

3.期间出现的问题
3.1项目添加后没有小蓝点
打开项目结构,选择模块,将webapp添加为资源文件,将右侧的错误的内容根删除。

3.2项目版本不正确
这里特别要注意,我使用的springframework版本是3.3.0,在使用spring-webmvc依赖时5.2.8等等的低版本时会出现版本无法适配的错误,这里要根据自己的架构版本去选择适合的版本选择对应的依赖版本,我选择的是6.1.8。

3.3除了index其他全部404
在controller控制层编写方法输出测试访问页面会发现,在访问对应的页面时无论怎样访问,控制层的代码始终不会被调用,这时候需要刚刚pom.xml中的spring版本,这里出现的版本的冲突。

将其中的spring-boot版本降低到2.X版本,这样就可以解决问题。
3.4项目500
可能和jdk版本有关系,尝试低版本JDK
4.关键点
对pom.xml中的版本要求很高,建议使用2.x的springboot版本,配合以下的web配置,3.x的springboot中spring-webmvc版本需要在6以上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.22.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.1</version> <scope>provided</scope> </dependency>
|