面试题总结

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:01   130   0
<p>本文摘取了很多其他博客里的内容,同时又融入了一些自己的理解,希望对大家找工作之前的面试准备有所帮助;</p>
<p>一、Spring与SpringMVC<br> SpringMVC</p>
<p>1.1 简单介绍你所理解的SpringMVC<br> Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合</p>
<p>1.2 SpringMVC具体流程<br> 用户发送请求至前端控制器DispatcherServlet;<br> DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;<br> 处理器映射器根据请求url找到具体的处理器(Controoller),生成处理器对象及处理器拦截器(如果有则生成)一起返回给DispatcherServlet;<br> DispatcherServlet 调用 HandlerAdapter处理器适配器,经过适配找到并调用具体处理器(Handler,也叫后端控制器,即Controller里的具体方法);<br> Handler执行完成返回ModelAndView视图;<br> HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;<br> DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;<br> ViewResolver解析后返回具体View;<br> DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)10. DispatcherServlet响应用户。<br> 1.3 SpringMVC优点<br> 可以支持各种视图技术,而不仅仅局限于JSP;</p>
<p>与Spring框架集成(如IoC容器、AOP等);</p>
<p>清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。</p>
<p>支持各种请求资源的映射策略。</p>
<p>1.4 主要组件<br> 前端控制器 DispatcherServlet(不需要程序员开发)<br>  作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。</p>
<p>处理器映射器HandlerMapping(不需要程序员开发)<br>  作用:根据请求的URL来查找Handler</p>
<p>处理器适配器HandlerAdapter<br> 注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。</p>
<p>处理器Handler(需要程序员开发)</p>
<p>视图解析器 ViewResolver(不需要程序员开发)</p>
<p>作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view)</p>
<p>视图View(需要程序员开发jsp)<br> View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)</p>
<p>1.5 SpringMVC与struts2的区别<br> springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。</p>
<p>springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。</p>
<p>Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。</p>
<p>1.6 怎么样设定重定向和转发的<br> 转发:在返回值前面加&#34;forward:&#34;,譬如&#34;forward:user.do?name&#61;method4&#34;</p>
<p>重定向:在返回值前面加&#34;redirect:&#34;,譬如&#34;redirect:http://www.baidu.com&#34;</p>
<p>1.7 怎么和AJAX相互调用<br> 通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。具体步骤如下 :</p>
<p>加入Jackson.jar</p>
<p>在配置文件中配置json的映射</p>
<p>在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上&#64;ResponseBody注解。</p>
<p>1.8 解决POST与GET请求中文乱码<br> 1.8.1 post乱码<br> 在web.xml中配置一个CharacterEncodingFilter过滤器,设置成utf-8;</p>
<p>&lt;filter&gt;</p>
<p>    &lt;filter-name&gt;CharacterEncodingFilter&lt;/filter-name&gt;</p>
<p>    &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;</p>
<p>    &lt;init-param&gt;</p>
<p>        &lt;param-name&gt;encoding&lt;/param-name&gt;</p>
<p>        &lt;param-value&gt;utf-8&lt;/param-value&gt;</p>
<p>    &lt;/init-param&gt;</p>
<p>&lt;/filter&gt;</p>
<p>&lt;filter-mapping&gt;</p>
<p>    &lt;filter-name&gt;CharacterEncodingFilter&lt;/filter-name&gt;</p>
<p>    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;</p>
<p>&lt;/filter-mapping&gt;<br> 1<br> 2<br> 3<br> 4<br> 5<br> 6<br> 7<br>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP