初识SpringMVC--利用SpringMVC实现请求和响应的原理

2022年05月15日 阅读数:6
这篇文章主要向大家介绍初识SpringMVC--利用SpringMVC实现请求和响应的原理,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

特色:
1. 轻量级、简单易学
2. 高效、基于请求响应的MVC框架
3. 与Spring兼容性好
4. 约定大于配置
5. 功能强大
6. 简洁灵活java

底层基于DispatcherServlet
下面用一个SpringMVC程序来讲明SpringMVC原理web

首先在父项目中导入依赖:spring

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>

建立子项目api

首先配置web.xml文件:DispatcherServlet
关联SpringMVC配置文件springmvc-servlet.xml并设置启动级别
服务器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">

<!--注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:【servlet name】-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别:1-->
<load-on-startup>1</load-on-startup>
</servlet>

<!--“\” 匹配全部的请求(不包括.jsp)-->
<!--"\*" 匹配全部的请求(包括.jsp)-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

在resources文件夹内建立文件:springmvc-servlet.xml
添加bean:处理映射器、处理适配器、视图解析器mvc

<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">

<!--处理映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--处理适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>

</beans>

建立Controller类:处理请求和响应app

package Controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
   
   

@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception{
   
   
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();

//封装对象
mv.addObject("msg","HelloSpringMVC!");

//封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello");//WEB-INF/jsp/hello.jsp

return mv;
}
}

而后将本身的类交给SpringIOC容器,注册bean,在springmvc-servlet.xml中添加:框架

<!--Handler-->
<bean id="/hello" class="Controller.HelloController"/>

开启Tomcat:
在这里插入图片描述
出现了404错误:jsp

解决方法: 在项目结构中:

在这里插入图片描述

发现WEB-INF文件夹下没有lib文件夹,因此要手动建立并导入库文件:
ide

在这里插入图片描述
再次启动Tomcat服务器:

在这里插入图片描述
页面跳转成功

发现只用到了一个Controller类来控制请求和响应,不须要配置Servlet