SpringMVC

SpringMVC,spring的模型-视图-控制器框架是围绕这一个**DispatcherServlet(前端控制器)**来设计的。这个servlet可以把请求分发到各个处理器上面,并支持可配置的处理器映射,视图渲染,本地化,时区与主题渲染等,甚至还支持文件上传。

流程

在这里插入图片描述

1、浏览器http请求到DispatcherServlet
2、HandlerMapping寻找处理器
由DispatcherServlet(前端控制器)查询一个或者多个HandlerMapping(处理器映射),找到处理请求的Controller。
3、调用Controller
DispatcherServlet将请求提交到Controller。Controller调用业务逻辑处理后,返回ModelAndView。
4、DispatcherServlet查询ModelAndView,处理视图映射并返回模型。
DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
5、ModelAndView反馈浏览器HTTP
http相应,视图负责将结果显示到客户端。

常用注解

@requestMapping:用于处理请求地址映射的注解,可用于方法或者类上。用于类上,表示此类的所有相应请求的方法都是以改路径作为父路径。
@controller:用于标注控制层组件,用于标记在一个类上,标明此类是一个SpringMVC的controller对象。分发处理器将会扫描使用了该注解的类的方法,并且检测此方法是否用@requestMapping标注,可以把request请求的header部分值绑定到方法的参数上。
@responseBody:异步请求,用于将controller方法返回的对象,通过适当的httpMessageConverter转换为指定格式,写入到response对象的body数据区。返回的数据不是html标签的页面,而是其他某种格式的数据时(json,xml)使用
@restController:相当于@controller和@resposeBody的组合效果。
@service:用于标注业务组件层。
@requestParam:主要用于在springMVC后台控制层获取参数,类似一种是request.getParameter(“name”)。
@requestHeader:可以吧request请求的header部分的值绑定到方法的参数上。

springMVC设定重定向和转发

重定向:在返回值前加"redirect",例如:“redirect:http://baidu.com
转发:在返回值前加"forward",例如:“forward:user.do?name=method4”

如何解决post请求中文乱码,get乱码

1、解决post请求乱码问题。
在web.xml文件中设置一个CharacterEncodingFilter过滤器,设置为utf-8。

<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>    
<filter-name>CharacterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

2、get请求中文乱码解决方案。
01、修改tomcat配置文件添加编码与工程编码相同
<ConnectorURIEncoding=“utf-8” connectionTimeout=“20000” port=“8080” protocol=“HTTP/1.1” redirectPort=“8443”/>
02、对参数进行重新编码
String username = new String(request.getParamter(“username”).getBytes(“ISO8859-1”),“utf-8”)

SpringMVC想拦截get方式提交的方法如何配置

可以在@requestMapping注解中加上method=RequestMethod.GET,
@requestMapping注解中加上method=RequestMethod.POST
写了那个就能拦截到哪种提交请求

SpringMVC如何在方法里面得到request或者session

直接在方法的形参中进行声明即可。

前台很多参数传入,并且属于一个对象

直接在方法中声明这个对象,springMVC会自动把属性赋值到这个对象中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wmf_helloWorld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值