1.SpringMVC 常用注解都有哪些?
@requestMapping:用于请求 url 映射。
@RequestBody: 注解实现接收 http 请求的 json 数据,将 json 数据转换为 java 对象。
@ResponseBody :注解实现将 controller 方法返回对象转化为 json 响应给客户。
@Conntroller:控制器的注解,表示是表现层,不能用用别的注解代替
2、如何开启注解处理器和适配器?
在配置文件中(一般命名为springmvc.xml )通过开启 <mvc:annotation-driven>来实现注解处理器和适配器的开启。
3.如何解决 get 和 post 乱码问题?
解决 post 请求乱码:在 web.xml 里边配置一个 CharacterEncodingFilter 过滤器并设置编码为 utf-8即可。
4.解决 get 请求乱码:
修改 tomcat 配置文件添加编码与工程编码一致。
对参数进行重新编码
String userName = New String(Request.getParameter(“userName”).getBytes(“ISO8859-1”), “ utf-8”);
–ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码。
5.SpringMVC怎么样设置重定向和转发?
在返回值前面加"forward:"就可以让结果转发
如"forward:user.do?name=method4"
在返回值前面加"redirect:"就可以让返回值重定向
如"redirect:http://www.baidu.com"
6.springMVC和struts2的区别有哪些?
A.springmvc的入口是一个servlet即前端控制器(DispatchServlet)
struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
B.springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例)
struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
C.springmvc通过参数解析器将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又 将ModelAndView中的模型数据通过reques域传输到页面,Jsp视图解析器默认使用jstl
Struts采用值栈存储请求和响应的数据,通过OGNL存取数据。
7.讲下SpringMvc的核心入口类是什么,Struts1,Struts2的分别是什么?
SpringMvc的是DispatchServlet,Struts1的是ActionServlet,Struts2的是StrutsPrepareAndExecuteFilter
8.怎么样把某个请求映射到特定的方法上面
直接在方法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截的路径
9.如果在拦截请求中,我想拦截get方式提交的方法,怎么配置?
可以在@RequestMapping注解里面加上method=RequestMethod.GET
10,如果在拦截请求中,我想拦截提交参数中包含"type=test"字符串,怎么配置
可以在@RequestMapping注解里面加上params="type=test"
11:我想在拦截的方法里面得到从前台传入的参数,怎么得到
直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样
怎么样在方法里面得到Request,或者Session
直接在方法的形参中声明request,SpringMvc就自动把request对象传入
12.SpringMvc怎么和AJAX相互调用的
通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象 具体步骤如下 1.加入Jackson.jar 2.在配置文件中配 置json的映射 3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解
13当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理?
要加上@ResponseBody注解
**
14.SpringMVC执行流程?
**
1.用户发起请求到前端控制器(Controller)
2.前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查 3.找Handler对象(Model)。
4.HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组
5.前端处理器通过处理器适配器包装后执行Handler对象。
6.处理业务逻辑。
7.Handler处理完业务逻辑,返回ModelAndView对象,其中view是视图名称,不是真正的视图对象。
8.将ModelAndView返回给前端控制器。
视图解析器(ViewResolver)返回真正的视图对象(View)。
9.(此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据和视图对象,进行视图渲染。
返回渲染后的视图 (html/json/xml)返回。
10.给用户产生响应。