Spring MVC基础(一):HelloWorld案例
-
构建1个maven项目
-
pom.xml
<packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> </dependency> </dependencies>
-
新建webapp目录
-
新建web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
- webapp目录下新建jsp目录,新建hello.jsp
<%-- Created by IntelliJ IDEA. User: sang Date: 2021/2/5 Time: 21:23 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> hello ${name}! </body> </html>
- spring-servlet.xml
<?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"> <!--首先配置一个 MyController 的实例--> <bean class="com.ychen.mvc.controller.MyController" name="/hello"/> <!--配置处理器映射器,将前端请求和后段的接口关联起来--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" id="handlerMapping"> <property name="beanName" value="/hello"/> </bean> <!--处理器适配器--> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" id="handlerAdapter"/> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver"> <property name="prefix" value="/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
- MyController
public class MyController implements Controller { /** * 这个方法用来处理请求 * @param request 这个就是前端发送来的请求 * @param response 这个就是服务端给前端的响应 * @return 返回 ModelAndView,Model 就相当于我们的 数据模型,View 则是视图 * @throws Exception */ @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // 创建1个视图hello,并添加数据,最后返回 ModelAndView mv = new ModelAndView("hello"); mv.addObject("name", "javaboy"); return mv; } }
-
配置tomcat
-
启动测试
-
工作流程如下
# 前端访问url,去找对应的bean <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" id="handlerMapping"> <property name="beanName" value="/hello"/> </bean> # 找到对应的bean <bean class="org.javaboy.springmvc01.controller.MyController" name="/hello"/> # 在对应的bean中创建视图模式 @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // 创建1个视图hello,并添加数据,最后返回 ModelAndView mv = new ModelAndView("hello"); mv.addObject("name", "javaboy"); return mv; } # 解析前后缀 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver"> <property name="prefix" value="/jsp/"/> <property name="suffix" value=".jsp"/> </bean> # 找到对应的jsp页面
分类:
后端
标签:
Spring MVC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?