SpringMVC面试题总结

一、简单说下SpringMVC的工程流程或者原理图



流程 
1、用户发送请求至前端控制器DispatcherServlet 
2
DispatcherServlet收到请求调用HandlerMapping处理器映射器。 
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet 
4DispatcherServlet调用HandlerAdapter处理器适配器 
5HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器) 
6Controller执行完成返回ModelAndView 
7
HandlerAdaptercontroller执行结果ModelAndView返回给DispatcherServlet 
8
DispatcherServletModelAndView传给ViewReslover视图解析器 
9ViewReslover解析后返回具体View 
10
DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 
11DispatcherServlet
响应用户


二、在WEB开发中,如何解决post 和 get 请求乱码问题。

POST乱码处理方式:

大家都知道WEB项目中请求时候都会经过web.xml文件,所以post请求中乱码问题一般都在这处理,处理方式如下:

<filter>
    <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>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

GET乱码解决方式有两种处理方式:

第一种:在tomcat中conf文件中server,xm目录中中添加编码与工程编码一致,

<ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

第二种:tomcat默认编码是ISO8859-1,如果你项目中编码是UTF-8的话,需要将编码后的内容按UTF-8编码

String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")

三、SpringMVC与struts的区别

1、SpringMVC 的入口是servlet前端控制器(DispacherServlet),而struts的入口是一个filter过滤器。

2、SpringMV基于方法开发,传参数形式是以方法形参传参,struts基于类开发,传递参数通过类的属性。

3、Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成ModelAndView对象,最后又将模型数据通过request对象传输到页面。 Jsp视图解析器默认使用jstl


四、SpringMVC核心入口是什么?Struts1 和Struts2分别是什么?

答案:SpringMVC入口是前端控制器,Struts1是ActionServlet,struts2是一个filter过滤器。


五、SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代

答:一般是都是使用注解@Controller,表示是表现层,不能用别的注解代替。

六、@RequestMapping注解用在类上面有什么作用?

答:用于类上,表示类的所有响应请求得方法都是以该地址作为父路径

七、在请求拦截中,我想拦截get请求的方法,怎么配置?

答:

第一种;可以在注解@RequestMapping中添加mehthod = Requestmethod.GET属性。

第二种,可以在代码中request,getMethod()获取请求方式,在坐响应的判断。


八、我想在拦截的方法里面得到我从前台传进来的参数,我应该怎么得到?

答:直接在形参里面声明这个参数就可以了,名字必须和前端传进来的名字一直。

如果传来的参数都是在同一个对象里面的,我们直接在形参转给你定义一个对象就可以拿到。

八、怎么样在方法里面得到Request,或者Session

答;直接带方法形参中定义request,SpringMVC自动将request对象传入。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值