SpringMVC

《解释一下tomcat服务器中Application Context与thymeleaf在解析路径时的问题》

《关于tomcat》

在我们将项目部署到tomcat服务器上的时候,经常要配置如下的:

 

 我们知道服务器可以部署多个项目(其就像一个箱子一样可以装多个项目),那么服务器在访问的时候如何区分多个项目呢?

答案是通过我们设置Application Context

 

 

 

 比如SpringMVC项目就在:http://localhost:8080/(SpringMVC/)

Spring项目就在http://localhost:8080/(Spring/)

()部分里面是要我们自己设置Application Context决定的

《关于thymeleaf》

 

 像这样写访问路径是有区别的

第一个是通过服务器解析路径自动加上我们配置的Application Context,路径为:http://localhost:8080/SpringMVC/hello

而第二个:http://localhost:8080/hello

其余在服务器中解析路径与thymeleaf同理

《SpringMVC的基本使用流程》

这个博客有相关完整代码:https://blog.csdn.net/qq_42148002/article/details/125283167

1.

新建maven项目,在pom.xml文件中,将打包方式写为war,自动引入web项目:

 

 

 然后在pom.xml中加入相关jar包

2.

 

 

 加入web配置文件,路径为:xx/src/main/webapp/WEB-INF/web.xml

在web.xml中配置前端控制器:DispatcherServlet其是管理控制层的组件

配置路径映射关系

 

 

 3.

因为DispatcherServlet需要Controller组件,所以我们需要一个配置文件来管理Controller Bean

 

 

 

 

 4.

写Controller组件

 

 

 前端地址-->@RequestMapping(),根据()中的value值去匹配----------->匹配成功则找到响应方法------->响应方法返回逻辑视图-------->自动拼接地址(

前缀视图+逻辑视图+后缀视图)------>实现转发,到达相应物理页面

《@RequestMapping注解的具体使用》

 

 

 

《如何得到请求参数》

 1.

 

 2.

 

 3.

 

 拓展:

 

《在域对象中共享数据》

在request域中实现共享数据:

方法一:传统的用ServletAPI来实现

 方法二:使用ModelAndView来共享数据

 

 在Session域中和Application域中实现共享数据

均用老方法:

 

 视图

 

1.

 

 

 2.

 

 3.

 

 4.视图控制器

在SpringMVC.xml中配置:即与thymeleaf和注解扫描器等配置在一起

 《SpringMVC处理ajax请求》

对pom.xml的配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>com.cilinmengye</groupId>
 8     <artifactId>SpringMVC_ajax</artifactId>
 9     <version>1.0-SNAPSHOT</version>
10     <packaging>war</packaging>
11     <properties>
12         <maven.compiler.source>8</maven.compiler.source>
13         <maven.compiler.target>8</maven.compiler.target>
14     </properties>
15     <dependencies>
16         <!-- SpringMVC -->
17         <dependency>
18             <groupId>org.springframework</groupId>
19             <artifactId>spring-webmvc</artifactId>
20             <version>5.3.1</version>
21         </dependency>
22         <!-- 日志 -->
23         <dependency>
24             <groupId>ch.qos.logback</groupId>
25             <artifactId>logback-classic</artifactId>
26             <version>1.2.3</version>
27         </dependency>
28         <!-- ServletAPI -->
29         <dependency>
30             <groupId>javax.servlet</groupId>
31             <artifactId>javax.servlet-api</artifactId>
32             <version>3.1.0</version>
33             <scope>provided</scope>
34         </dependency>
35         <!-- Spring5和Thymeleaf整合包 -->
36         <dependency>
37             <groupId>org.thymeleaf</groupId>
38             <artifactId>thymeleaf-spring5</artifactId>
39             <version>3.0.12.RELEASE</version>
40         </dependency>
41         <dependency>
42             <groupId>com.fasterxml.jackson.core</groupId>
43             <artifactId>jackson-databind</artifactId>
44             <version>2.12.1</version>
45         </dependency>
46     </dependencies>
47 
48 </project>

对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">
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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:springmvc.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>

 

对DispatchServlet.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:mvc="http://www.springframework.org/schema/mvc" 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/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--1 开启组件扫描--> <context:component-scan base-package="com.cilinmengye"/> <!--2 配置Thymeleaf视图解析器--> <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver"> <property name="order" value="1"/> <property name="characterEncoding" value="UTF-8"/> <property name="templateEngine"> <bean class="org.thymeleaf.spring5.SpringTemplateEngine"> <property name="templateResolver"> <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"> <!-- 视图前缀 --> <property name="prefix" value="/WEB-INF/templates/"/> <!-- 视图后缀 --> <property name="suffix" value=".html"/> <property name="templateMode" value="HTML5"/> <property name="characterEncoding" value="UTF-8"/> </bean> </property> </bean> </property> </bean> <mvc:default-servlet-handler/> <!-- 开启mvc注解驱动 --> <mvc:annotation-driven/> <mvc:view-controller path="/" view-name="index"/> </beans>

 

 

 对于其中的json数据:

我们可以用java对象接受,也可以用map来接受

 

 

 如果我们要在后端给前端发送json数据,可以用

 

 

 

 

 

 

 

 

 要做到上面的必要配置:

 

 

 《SpringMVC实现文件下载和文件上传》

posted @ 2022-11-04 23:00  次林梦叶  阅读(24)  评论(0)    收藏  举报