当前位置:文档之家› 2021年JAVA框架面试题汇总

2021年JAVA框架面试题汇总

1.SpringMVC Framework理解:1、它是基于组件技术.所有应用对象,无论控制器和视图,还是业务对象之类都是java组件。

并且和Spring提供其她基本构造紧密集成2、不依赖于Servlet API(目的虽是如此,但是在实现时候的确是依赖于Servlet)3、可以任意使用各种视图技术,而不但仅局限于JSP4、支持各种祈求资源映射方略5、它应是易于扩展2.简朴谈一下SpringMVC工作流程?流程1、顾客发送祈求至前端控制器DispatcherServlet2、DispatcherServlet收到祈求调用HandlerMapping解决器映射器。

3、解决器映射器找到详细解决器,生成解决器对象及解决器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet调用HandlerAdapter解决器适配器5、HandlerAdapter通过适配调用品体解决器(Controller,也叫后端控制器)。

6、Controller执行完毕返回ModelAndView7、HandlerAdapter将controller执行成果ModelAndView返回给DispatcherServlet8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器9、ViewReslover解析后返回详细View10、DispatcherServlet依照View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应顾客3.如何解决POST祈求中文乱码问题,GET又如何解决呢?在web.xml中加入:.<filter>.<filter-name>CharacterEncodingFilter</filter-name>.<filter-class>org.springframework.web.filter.CharacterEncodingF ilter</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>以上可以解决post祈求乱码问题。

对于get祈求中文参数浮现乱码解决办法有两个:修改tomcat配备文献添加编码与工程编码一致,如下:<ConnectorURIEncoding="utf-8"connectionTimeout="0"port="8080"protocol="HTTP/1.1"redirectPort="8443"/>此外一种办法对参数进行重新编码:String userName = new String(request.getParamter("userName").getBytes("ISO8859-1 "),"utf-8")ISO8859-1是tomcat默认编码,需要将tomcat编码后内容按utf-8编码4.SpringMVC与Struts2重要区别?1、springmvc入口是一种servlet即前端控制器,而struts2入口是一种filter 过虑器。

2、springmvc是基于办法开发,传递参数是通过办法形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类属性,只能设计为多例。

3、Struts采用值栈存储祈求和响应数据,通过OGNL存取数据,springmvc通过参数解析器是将request对象内容进行解析成办法形参,将响应数据和页面封装成ModelAndView对象,最后又将模型数据通过request对象传播到页面。

Jsp 视图解析器默认使用jstl。

5.SpringMVC接受Form表单参数几种形式?1、使用HttpServletRequest获取2、Spring会自动将表单参数注入到办法参数,和表单name属性保持一致。

3、自动注入Bean属性6.SpringMVCController向页面传值几种方式?1、使用HttpServletRequest 和 HttpSession 调用setAttribute(),就和Servlet中同样2、使用ModelAndView对象3、使用ModelMap对象4、使用@ModelAttribute注解7.Spring MVC contorller跳转到另一种controller并传值1、forward 祈求转发2、redirect 重定向 RedirectAttributes 类似于超链接传参---------------------------------------------------------------------1、讲下SpringMvc核心入口类是什么,Struts1,Struts2分别是什么SpringMvc是DispatchServletStruts1是ActionServletStruts2是StrutsPrepareAndExecuteFilter2、SpringMvc控制器是不是单例模式,如果是,有什么问题,怎么解决?是单例模式,因此在多线程访问时候有线程安全问题,不要用同步,会影响性能,1.不要在controller中定义成员变量。

2.万一必要要定义一种非静态成员变量时候,则通过注解@Scope("prototype"),将其设立为多例模式。

参照:3、SpingMvc中控制器注解普通用那个,有无别注解可以代替普通用@Conntroller注解,表达是体现层,不能用用别注解代替。

4、@RequestMapping注解用在类上面有什么作用用于类上,表达类中所有响应祈求办法都是以该地址作为父途径。

5、怎么样把某个祈求映射到特定办法上面直接在办法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截途径6、如果在拦截祈求中,我想拦截get方式提交办法,怎么配备可以在@RequestMapping注解里面加上method=RequestMethod.GET7、如果在拦截祈求中,我想拦截提交参数中包括”type=test”字符串,怎么配备可以在@RequestMapping注解里面加上params=”type=test”8、我想在拦截办法里面得到从前台传入参数,怎么得到直接在形参里面声明这个参数就可以,但必要名字和传过来参数同样9、如果前台有诸各种参数传入,并且这些参数都是一种对象,那么怎么样迅速得到这个对象直接在办法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面10、怎么样在办法里面得到Request,或者Session直接在办法形参中声明request,SpringMvc就自动把request对象传入11、SpringMvc中函数返回值是什么.返回值可以有诸多类型,有String,ModelAndView,当普通用String比较好12、SpringMvc怎么解决返回值SpringMvc依照配备文献中InternalResourceViewResolver前缀和后缀,用前缀+返回值+后缀构成完整返回值13、SpringMVC怎么样设定重定向和转发在返回值前面加”forward:”就可以让成果转发,譬如”forward:user.do?name=method4”在返回值前面加”redirect:”就可以让返回值重定向,譬如”redirect:”14、SpringMvc用什么对象从后台向前台传递数据通过ModelMap对象,可以在这个对象里面用put办法,把对象加到里面,前台就可以通过el表达式拿到15、SpringMvc中有个类把视图和数据都合并一起,叫什么叫ModelAndView16、怎么样把ModelMap里面数据放入Session里面可以在类上面加上@SessionAttributes注解,里面包括字符串就是要放入session里面key17、SpringMvc怎么和AJAX互相调用通过Jackson框架就可以把Java里面对象直接转化成Js可以辨认Json对象,详细环节如下1.加入Jackson.jar2.在配备文献中配备json映射3.在接受Ajax办法里面可以直接返回Object,List等,但办法前面要加上@ResponseBody注解18、当一种办法向AJAX返回特殊对象,譬如Object,List等,需要做什么解决要加上@ResponseBody注解----------------------------------Spring-------------------------------------- 1、SpringFramwork理解?Spring重要专注于如何运用classes、对象和服务去构成一种公司级应用,通过规范方式,将各种不同控件整合成一种完整应用。

Spring中使用了诸多被实践证明最佳实践和设计模式,并且进行了编码实现。

在Spring Framework之上可以构建出先进、可维护应用。

Spring框架涉及许多特性,六个模块可以概括Spring功能:Core封装包是框架最基本某些,提供IoC和依赖注入特性。

这里基本概念是BeanFactory,它提供对Factory模式典型实现来消除对程序性单例模式需要,并真正地容许你从程序逻辑中分离出依赖关系和配备。

DAO 提供了JDBC抽象层,它可消除冗长JDBC编码和解析数据库厂商特有错误代码。

并且,JDBC 封装包还提供了一种比编程性更好声明性事务管理办法,不但仅是实现了特定接口,并且对所有POJOs(plain old Java objects)都合用。

ORM 封装包提供了惯用“对象/关系”映射APIs集成层。

其中涉及JPA、JDO、Hibernate 和MyBatis 。

相关主题