持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情
SpringMVC框架的细节 - 处理器中的方法可以定义的参数
处理器中的方法可以定义的参数
(1)和web开发相关的对象
可以在控制器方法中直接接受web开发相关的对象,来完成web开发相关的功能
- HttpServletRequest
- HttpServletResponse
- HttpSession
- WebRequest
WebRequest对象相当于是HttpServletRequest和HttpSession对象的合体,同时提供了HttpServletRequest和HttpSession对象中所具有的方法。
(2)和模型对象相关的
- ModelAndView对象
- Model对象
- Map对象
- ModelMap对象
(3)请求参数相关的
- A 处理器方法可以通过定义HttpServletRequest对象来获取请求参数
- B 处理器方法可以定义方法的参数名和请求参数名一致的方式,用来获取请求参数。
- C 处理器方法定义的参数名和请求参数名不一致的情况,可以使用 @RequestParam注解来获取请求参数传递过来的值。
- D 请求参数中有多个同名的参数的情况,既可以使用字符串数组的方式接收,也可以使用字符串的方式接收。
- E 处理器的方法可以接收参数,并自动封装到javabean中。
- F 处理器的方法接收参数,javabean包含其它javabean的情况
(4)请求参数中中文乱码问题
- 方法1:
request.setCharacterEncoding(“utf-8”)此方法必须用在获取任何请求参数之前 此方法只针对Post提交有效 - 方法2:修改tomcat服务器的server.xml中的配置
<Connection port=”8080”... URIEncoding=”UTF-8”/>
此方法只针对于Get提交有效
- 方法3:手动编码解决乱码问题
byte[] data=str.getByte(“iso8859-1”);
str=new String(data,”utf-8”)
此方法对Get和Post都有效,每个参数都需要手动编码处理太麻烦
- 方法4;Spring框架提供了过滤器处理乱码,只针对Post提交有效
SpringMVC框架的细节 – 作用域属性
@RequestAttribute
用在处理器方法参数中 用来从request域中获取指定名称属性的属性值
@SessionAttribute
用在处理器方法参数中 用来从session域中获取指定名称属性的属性值
SpringMVC框架的细节 – Cookie技术
@CookieValue
用在处理器方法参数中 用来从Cookie中获取指定名称的Cookie值
SpringMVC框架的细节 - 处理器方法的返回值类型
(1)ModelAndView返回值类型
返回一个ModelAndView对象,在其中封装Model和View信息
(2)字符串返回值类型
A 普通字符串类型:返回的字符串将作为视图名来使用 B forward组成的字符串类型:通过返回forward:/xxx格式的字符串表明要转发的指 定地址 C redirect组成的字符串类型:通过返回redirect:/xxx格式的字符串表示要重定向 的地址
(3)void返回值类型
如果返回值类型是void,则SpringMVC框架会采用默认视图名来作为当前请求视图名称来使用。 默认路径:/WEB-INF/jsp/处理器上的@RequestMapping映射地址/处理器方法上的@RequestMapping的映射地址.jsp的页面地址
(4)其它返回值类型
除以上之外返回的任何内容都会被存入模型对象中供后续使用; 值为返回的数据,键为返回类型首字母转小写; 而返回的视图名是默认视图名,即等同于返回值为void时的视图名