一、配置(使用)流程
1、新建maven工程,在pom.xml中导入相关包,重要的是springmvc包,servlet包,jstl包
<dependencies>
<!--springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--javax.servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!-- 注意provided -->
<scope>provided</scope>
</dependency>
<!-- jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<!-- 注意runtime -->
<scope>runtime</scope>
</dependency>
2、在web.xml中配置前端控制器
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
初始化参数,加载相应的springmvc配置文件
springmvc配置文件默认名称为
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3、在resource文件夹中增加mvc.xml,开启springmvc注解配置和包扫描
<!-- 启用springmvc注解配置 -->
<mvc:annotation-driven/>
<!-- 配置注解扫描包 -->
<context:component-scan base-package="com.tz.springmvc.controller"></context:component-scan>
<!-- 配置视图渲染器(非必须) -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 设置视图模板(默认是jsp,所以可以省略) -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<!-- 结果视图前缀和后缀 -->
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
4、在控制器中加上注解就可以使用springmvc了
//控制器
@Controller
//表示当前控制器是以/应用路径/mvc/xxx 窄化处理
@RequestMapping("/mvc")
public class MvcController {
@RequestMapping(value="/hello2",method=RequestMethod.GET)
public String method2(Model model){
//向请求范围添加数据向请求范围添加数据
model.addAttribute("message","Hello SpringMVC2");
//跳转页面
//转发
return "/WEB-INF/jsp/hello.jsp";
//如果配置视图渲染器,可以简化
//return "hello";
}
}
二、此外可以在web.xml中设置字符集过滤器,来解决中文参数乱码的问题
请求中的乱码可以在pom.xml中设置,如下:
<!--tomcat插件-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8888</port>
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
页面响应的乱码在web.xml中可直接设置:
<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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)