SpringMVC(二)

SpringMVC(二)

一、响应数据和结果视图

1、返回值分类
(1)字符串
controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址
(2)void

使用request转向页面:request.getRequestDispatcher("/WEB-INF/s.jsp").forward(request,response)
使用response页面重定向:response.sendRedirect("test")
通过response指定响应结果:response.setCharacterEncoding("utf-8"),response.setContentType("application/json;charset="utf-8"),response.getWriter().write("json串")

2、ModelAndView
(1)ModelAndView是SpringMVC提供的一个对象,也可用作控制器方法的返回值
(2)示例

ModelAndView mv=new ModelAndView()
mv.addObject("username","111“)
mv.setViewName("success")

3、转发与重定向
(1)forward转发
controller方法在提供了String类型的返回值后,默认是请求转发
如果用了forward,则路径必须写成实际视图url,不能写逻辑视图名

return "forward:/WEB-INF/pages/success.jsp"

(2)redirect重定向
controller提供一个String类型返回值之后,需要在返回值使用redirect
如果是重定向到jsp页面,则jsp页面不能写在WEB-INF目录中,否则无法找到

4、ResponseBody响应json数据
(1)作用
该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据:json、xml等,通过Response响应给客户端
(2)使用@ResponseBody注解实现将controller方法返回对象转换为json响应给客户端
(3)springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson包

二、文件上传

1、文件上传的必要前提
(1)form表单的enctype取值必须是multipart/form-data(默认值为application/x-www-form-urlencoded)
enctype:是表单请求正文的类型
(2)method属性取值必须是Post
(3)提供一个文件选择域<input type="file"/>

2、文件上传的原理
(1)当form表单的enctype取值不是默认值后,request.getParameter()将失效
enctype="application/x-www-form-urlencode"时,form表单的正文内容是key-value&key-value
(2)当form表单的enctype取值为Mutilpart/form-data时,请求正文就变成了每一部分都是MIME类型描述的正文

3、借助第三方组件实现文件上传
(1)使用Commons-fileupload组件实现文件上传,需要导入该组件相应的支撑jar包:Commons-fileupload和commons-io
(2)commons-io不属于文件上传组件的开发jar文件,但是Commons-fileupload组件从1.1版本开始,它工作时需要commons-io包的支持

三、拦截器

1、作用
(1)对处理器进行预处理和后处理
(2)拦截器只会拦截访问的控制器方法,如果访问的是jsp,html,css,image或者js是不会进行拦截的

2、实现流程
(1)编写一个普通类实现HandlerInterceptor接口
(2)配置拦截器

<mvc:interceptors>
	<mvc:interceptor>
		<mvc:mapping path="/**"/>
			<bean id="handlerInterceptorDemo1" class="web.interceptor"></bean>
		</mvc:interceptor>
</mvc:interceptors>

3、细节
(1)放行
如果有下一个拦截器就执行下一个,如果该拦截器处于拦截器链的最后一个,则执行控制器中的方法
(2)作用路径

<mvc:mapping path="/**"/><!--用于指定对拦截的url-->
<mvc:exclude-mapping path=""/><!--用于指定排除的url-->

4、配置文件
在web.xml中配置核心控制器DispatcherServlet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值