Spring MVC

Spring MVC

开发架构

  • C/S = 客户端/服务器
  • B/S = 浏览器/服务器

三层架构

  • 表现层-web层 与客户端进行交互
  • 业务层-service层 负责业务的逻辑处理
  • 持久层-dao层 负责数据持久化
浏览器 表现层 Spring MVC 业务层 Spring 框架 持久层 MyBatis 请求参数 相应结果

MVC

  • Model
  • View
  • Controller

Spring MVC 的 优势

1.清晰的角色划分
Spring MVC 的分工

  • 前端控制器(DispatcherServlet)
  • 处理器映射(HandlerMapping)
  • 处理器适配器(HandlerAdapter)
  • 视图解析器(ViewResolver)
  • 处理器或页面控制器(Handler 或 Controller)
  • 验证器( Validator)
  • 命令对象(Command )
  • 表单对象(Form Object )
  • 视图(View)
    2.分工明确 拓展灵活
    3.无需继承框架特定API (命令对象是POJO)
    4.和Spring其他框架无缝衔接
    5.可适配
    6.可定制

Spring MVC 的入门案例

1.创建maven的web模块
2.修改pom.xml配置
3.配置核心控制器Servlet类

<!-- 配置SpringMVC核心控制器类-->
 <servlet>
    <servlet-name>dispatcherServlet</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>
  </servlet>
  <!-- 请求 入口的映射-->
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

4.创建 spring mvc 的配置文件

<!-- 配置创建 spring 容器要扫描的包 -->
<context:component-scan base-package="com.yunhui"></context:component-scan>
<!-- 配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/pages/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置spring开启注解mvc的支持 -->
<mvc:annotation-driven></mvc:annotation-driven>
</beans>

5.编写控制器并使用注解配置

@Controller
public class HelloController {
@RequestMapping("/hello")
public String sayHello() {
System.out.println("HelloController 的 sayHello 方法执行了。。。。");
return "success";
}
}

6.测试和结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SpringMVC 的请求响应流程

1.Requset请求
11.response响应
2.收到请求调用
3.返回一个执行链
4.调用
7.返回ModelAndView对象
5.执行
6.返回ModelAndView对象
8.请求视图解析
9.解析后返回具体View
10.根据View进行渲染视图
用户
前端控制器DispatcherServlet
HandlerMapping处理器映射器
HandlerAdapter处理器适配器
Controller后端控制器
ViewReslover视图解析器
视图

具体的开发内容为视图Handler(也称Controller后端控制器)

RequestMapping 注解属性

用于建立请求 URL 和处理请求方法之间的对应关系。

请求参数的绑定

1.绑定的机制
SpringMVC 绑定请求参数的过程是通过把表单(基于 key=value )提交请求参数,作为控制器中方法参数进行绑定的。
2.支持的数据类型:
基本类型参数:基本类型和String 类型
POJO 类型参数:
包括实体类,以及关联的实体类数组和集合类型参数
包括 List 结构和 Map 结构的集合(包括数组)
3.请求参数乱码问题
POST请求方式:
在 web.xml 中配置一个过滤器

<!-- 配置 springMVC 编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class> org.springframework.web.filter.CharacterEncodingFilter</filterclass>
<!-- 设置过滤器中的属性值 -->
<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>

GET请求方式:
将tomcat 文件夹下conf文件夹中server.xml 中
useBodyEncodingForURI="true"改为 URIEncoding=“UTF-8”

REST 风格 URL
REST(英文:Representational State Transfer) 描述了一个架构样式的网络系统, 比如web 应用程序。在目前主流的三种 Web 服务交互方案中,REST 相比于 SOAP(Simple Object Access protocol,简单对象访问协议)以及 XML-RPC 更加简单明了,无论是对 URL 的处理还是对 Payload 的编码,REST 都倾向于用更加简单轻量的方法设计和实现。值得注意的是 REST 并没有一个明确的标准,而更像是一种设计的风格。
restful 的优点:结构清晰、符合标准、易于理解、扩展方便


ModelAttribute 用于修饰方法和参数
应用场景:
当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数据。数据初始化。
SessionAttribute
用于多次执行控制器方法间的参数共享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值