1.SpringMVC是什么?
答:springmvc是spring的一个子模块,是基于MVC模式的一个表现层框架,极大简化表现层代码开发。
2.SpringMVC的执行流程
1.用户向服务器发送请求,请求被Spring的前端控制器DispatcherServlet捕获,他会调用系统的其他模块处理用户请求。
2.DispatcherServlet接收到请求之后,根据请求的信息以及HandlerMappering的配置找到处理该请求的Handler。
3.DispatcherServlet根据Handler选择一个合适的HandlerAdapter,HandlerAdapter对该处理器进行封装。
4.HandlerAdapter是一个适配器,它用同一的接口对Handler中的方法进行调用。
5.Handler完成用户请求之后,返回一个ModelAndView对象给DispatcherServlet,ModelAndView包含数据模型和相应的视图信息。
6.DispatcherServlet获取到ModelAndView后,调用视图解析器ViewResolver进行视图解析,并返回视图对象给DispatcherServlet。
7.当得到视图对象后,DispatcherServlet会利用视图对象对模型数据进行渲染。
8.最后将渲染结果返回给客户端。
三.SpringMVC常用的注解有哪些?
答:
a.@Controller 定义一个SpringMVC控制器对象。@Conponent 生命bean。@Respository 声明dao层的bean。
b.@RequestMapping 处理请求地址映射
c.@Resource和@Autowired bean注入的时候使用。
d.@PathValiable 将请求URL的模板变量映射到功能处理方法的参数上。
f.@RequestParam 获取前端传递过来的参数。
g.@ResponseBody 用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换成指定格式后,写入到Response对象的body数据区中。
四.<mvc:annotation-driven>:用于开启注解处理器和适配器。
五.如何解决get和post乱码的问题?
答:解决post请求乱码:可以在web.xml里面配置一个CharecterEncodingFilter过滤器。设置为utf-8。
解决get乱码问题:
a.修改tomcat配置文件添加编码和工程编码一致。
b.另外一种方法对参数进行重新编码:String name = new String(Request.getParameter("userName").getBytes("ISO8859-1"),"utf-8")