SpringMVC之HelloWorld搭建
SpringMvc之HelloWorld搭建步骤:
一、导包
spring-context-5.2.8.RELEASE.jar
spring-aop-5.2.8.RELEASE.jar
spring-beans-5.2.8.RELEASE.jar
spring-context-5.2.8.RELEASE.jar
spring-core-5.2.8.RELEASE.jar
spring-expression-5.2.8.RELEASE.jar
commons-logging-1.2.jar
spring-web-5.2.8.RELEASE.jar
spring-webmvc-5.2.8.RELEASE.jar
如果你是Maven工程的话,只需要导入以下依赖就可以了
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 | <properties> <project.build.sourceEncoding>UTF- 8 </project.build.sourceEncoding> <maven.compiler.source> 1.7 </maven.compiler.source> <maven.compiler.target> 1.7 </maven.compiler.target> // 统一定义Spring相关组件的版本 <spring-version> 5.2 . 8 .RELEASE</spring-version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> // spring.context中依赖了,beans、core、expression、aop等jar包,所以只需要导入一个context就可以了 <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> // spring-webmvc中依赖了spring-web,所以也只需要导入一个webmvc就可以了 <artifactId>spring-webmvc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>commons-logging</groupId> // spring的日志包,一定要导入 <artifactId>commons-logging</artifactId> <version> 1.2 </version> </dependency> </dependencies> |
二、配置web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?xml version= "1.0" encoding= "UTF-8" ?> <web-app xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns= "http://java.sun.com/xml/ns/javaee" xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id= "WebApp_ID" version= "3.0" > <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>SpringMVC</servlet-name> // 配置SpringMVC的核心处理器(前端处理器) <servlet- class >org.springframework.web.servlet.DispatcherServlet</servlet- class > <load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> // 常见配置为 / *.do *.action等 <url-pattern>/</url-pattern> </servlet-mapping> </web-app> |
加载web.xml配置文件,如果我们没有指定去哪里加载SpringMVC的配置文件,那么它会有默认的配置文件,配置文件的路径以及名称有如下规则:/WEB-INF/servlet-name标签中的值-servlet.xml例如:
servlet-name标签的值 | 加载SpringMVC配置文件的位置和名称 |
SpringMVC | /WEB-INF/Springmvc-servlet.xml |
test | /WEB-INF/test-servlet.xml |
aaa | /WEB-INF/aaa-servlet.xml |
当然你也可以去加载指定位置的配置文件,例如:
1 2 3 4 5 6 7 8 9 10 11 | <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet- class >org.springframework.web.servlet.DispatcherServlet</servlet- class > <init-param> // 参数名称为contextConfigLocation,固定写法 <param-name>contextConfigLocation</param-name> // 这里就是加载类路径下的名称为springmvc.xml的配置文件 <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup> 1 </load-on-startup> </servlet> |
三、配置SpringMVC-servlet.xml
由于我这里没有指定web.xml中去什么位置加载SpringMVC的配置文件,那么它会加载默认位置、默认名称的配置文件,而我这里<servlet-name>标签配置的是SpringMVC,所以默认的配置文件是 /WEB-INF/SpringMVC-servlet.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?xml version= "1.0" encoding= "UTF-8" ?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:context= "http://www.springframework.org/schema/context" xsi:schemaLocation="http: //www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http: //www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--配置包扫描--> <context:component-scan base- package = "com.springmvc" ></context:component-scan> <!--配置视图解析器--> <bean id= "internalResourceViewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver" > <!--配置视图解析的前缀--> <property name= "prefix" value= "/WEB-INF/" ></property> <!--配置视图解析器的后缀--> <property name= "suffix" value= ".jsp" ></property> </bean> </beans> |
四、POJO类
1 2 3 4 5 6 7 8 9 10 | // 加上@Controller注解之后,Spring会将该类当做是控制器 @Controller public class SpringmvcDemo { @RequestMapping (value= "/test" ) public String testSpringMVC(){ System.out.println( "搭建SpringMVC样例...." ); // 视图返回的页面就是 prefix+test+suffix return "test" ; } } |
return的返回值是要和SpringMVC配置文件中的视图解析器的前缀和后缀拼接出一个完整的路径,规则如下:视图解析器前缀+return返回值+视图解析器后缀例如:
前缀 | 后缀 | return的返回值 | 实际返回的视图的路径和名称 |
/WEB-INF | *.jsp | test | /WEB-INF/test.jsp |
/ | .jsp | aaa | /aaa.jsp |
/jsp | .jsp | resolverIndex | /jsp/resolcerIndex.jsp |
@RequestMapping注解中的值:例如浏览器发起请求http://localhost:8080/SpringMVC/test,@RequestMapping中的值就必须是/test(test也可以)例如:
浏览器请求 | @RequestMapping注解中的值 |
http://localhost:8080/SpringMVC/test | @RequestMapping(Value="/test") |
http://localhost:8080/SpringMVC/innerNetLogin/login | @RequestMapping(Value="/innerNetLogin/login") |
五、测试
浏览器发起请求http://localhost:8080/SpringMVC/test
1 | 搭建SpringMVC样例.... |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?