SSM系列学习笔记之Spring MVC

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44815052/article/details/96475128

Spring MVC入门

Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。

入门案例

第一步,相关jar包
在这里插入图片描述第二步,在web.xml中配置DispatcherServlet

<servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
 </servlet-mapping>

第三步:在WEB-INF目录下创建DispatcherServlet-servlet.xml
这是一个spring的配置文件

<?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"
	  xmlns:aop=http://www.springframework.org/schema/aop xmlns:tx="http://www.springframework.org/schema/tx"
	  xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

</beans>

第四步:配置DispatcherServlet-servlet.xml

<!-- 1. 配置处理器映射,springmvc默认的处理器映射器
		BeanNameUrlHandlerMapping:根据bean的name属性的url去找handlerController -->
		<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
		<!-- 2. 配置处理器适配置器执行Controller -->
		<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
		<!-- 3.配置一个控制器 -->
		<bean name="/user.do" class="com.gyf.backoffice.web.controller.UserController"/>
		<!-- 4.配置springmvc视图解析器
			视图解析器解析的视频路径为:前缀 + 后缀 -->
		<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="prefix" value="/WEB-INF/views"/>
			<property name="suffix" value=".jsp"/>
		</bean>

第五步:创建个Controller控制器
在这里插入图片描述第六步:创建一个userList.jsp页面
在这里插入图片描述第七步:运行项目。

Spring MVC的执行流程

在这里插入图片描述

URL处理器映射

BeanNameUrlHandlerMapping
功能:寻找Controller
根据url请求去匹配bean的name属性,从而获取Controller

SimpleUrlHandlerMapping
功能:寻找Controller
根据浏览器url匹配简单url的key,key就是Controller的id从而找到Controller
在这里插入图片描述ControllerClassNameHandlerMapping
功能:寻找Controller
根据类名(MyController)类名.do来访问,类名首字母小写
在这里插入图片描述

处理器适配器

SimpleControllerHandlerAdapter
功能:执行controller
调用controller里面方法,返回ModelAndView
在这里插入图片描述HttpRequestHandlerAdapter
功能:执行controller
负责调用实现HttpRequestHandler接口的控制器
在这里插入图片描述
在这里插入图片描述注意:两个处理器适配器可以共存。

命令控制器

提交页面:

<form action="${pageContext.request.contextPath}/command.do" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    性别:<input type="text" name="gender"><br>
    生日:<input type="text" name="birthday"><br>
    <input type="submit">
</form>

控制器:
在这里插入图片描述info页面获取数据:
在这里插入图片描述
DispatchServelt-sevlet配置文件:
在这里插入图片描述

##中文问题:过滤器解决

在web.xml中配置一个过滤器,使用utf-8编码

<!-- 配置编码过滤器  -->
  	<filter>
  		<filter-name>EncodingFilter</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>
  	</filter>
	
	<filter-mapping>
		<filter-name>EncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

日期类型转换

Spring MVC默认接收的日期格式为yyyy/MM/dd,如果添加其它格式,只要重写一个方法即可,如图:
在这里插入图片描述

Spring MVC注解开发

修改配置文件:
DispatchServlet-Servlet.xml

<!-- 1.配置注解扫描位置 -->
<context:component-scan base-package="com.gyf.backoffice.web.controller"/>
		
<!-- 2. 配置处理器映射,通过注解来查找 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!-- 3.配置注解处理适配器来执行控制器的方法 -->	
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
		
<!-- 配置springmvc视图解析器
			视图解析器解析的视频路径为:前缀 + 后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/views"/>
	<property name="suffix" value=".jsp"/>
</bean>

修改控制器:
在这里插入图片描述添加注解驱动:
在这里插入图片描述运行项目即可。

@RequestMapping

配置请求路径映射路径
有以下5种常见写法:

@RequestMapping(“list”)
@RequestMapping(“/list.do”)
@RequestMapping(value=”/list.do”)
@RequestMapping(value = "/list3",method=RequestMethod.POST)  //只能使用POST方法
@RequestMapping(value = "/list3",method=RequestMethod.Get)    // 只能使用GET方法 

也可以自定义根路径:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44815052/article/details/96475128
今日推荐