面试官常问的 web后台 问题 41-52
- 41、如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
- 42、怎样在方法里面得到 Request 或者 Session?
- 43、如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
- 44、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
- 45、SpringMvc 中函数的返回值是什么?
- 46、SpringMvc 用什么对象从后台向前台传递数据的?
- 47、怎么样把 ModelMap 里面的数据放入 Session 里面?
- 48、#{}和${}区别是什么
- 49、讲一下 MyBatis 的缓存机制
- 50、Springmvc 与 struts2 区别
- 51、Hibernate 与 mybatis 区别
- 52、SSH 与 SSM 有什么区别?
41、如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
可以在 @RequestMapping 注解里面加上 method=。
@RequestMapping(method=)
- 1
42、怎样在方法里面得到 Request 或者 Session?
直接在方法的形参中声明 request,SpringMvc 就自动把 request 对象传入。
43、如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样。
44、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
直接在方法中声明这个对象,SpringMvc 就自动会把属性赋值到这个对象里面。
45、SpringMvc 中函数的返回值是什么?
返回值可以有很多类型,有 String、 ModelAndView。ModelAndView 类把视图和数据都合并的一起的,但一般用 String 比较好。
46、SpringMvc 用什么对象从后台向前台传递数据的?
通过 ModelMap 对象,可以在这个对象里面调用 put 方法,把对象加到里面,前台就可以通过 el 表达式拿到。
47、怎么样把 ModelMap 里面的数据放入 Session 里面?
可以在类上面加上@SessionAttributes 注解,里面包含的字符串就是要放入 session 里面的 key。
48、#{}和${}区别是什么
#{}:参数占位符,Mybatis 会将 sql 中的#{}替换为占位符 ?
${}:变量占位符,也可以理解为取值符。
49、讲一下 MyBatis 的缓存机制
MyBatis 提供了查询缓存来缓存数据,以提高查询的性能,MyBatis 的缓存分为一级缓存和二级缓存。
一级缓存:SqlSession 级别的缓存,基于 HashMap 本地缓存,当同一个 sqlSession 执行两次相同的 SQL 语句时,第一次执行完后会将数据库中查询到的结果写到缓存,第二次查询时直接从缓冲中读取不经过数据库了。一级缓存默认时开启的。
二级缓存:mapper 级别的缓存,也是基于 hashmap 本地缓存,不同的 sqlSession 两次执行相同的 namespace 下的 sql 语句,第二次查询就不会进行数据库了。
50、Springmvc 与 struts2 区别
①、SpringMVC 入口是 Servlet;基于方法设计,比 Struts2 快些;使用更加简洁,开发效率比 Struts2 高,支持 JSR303,处理 ajax 请求更加方便;
②、Struts2 入口是 Filter,基于类,每次发一次请求都会实例一个 Action;OGNL 表达式使页面的开发效率相比 SpringMVC 更高些
51、Hibernate 与 mybatis 区别
①. hibernate 封装了sql 语句,提高程序员开发效率(大项目不适用),会多消耗一些性能;完整的 ORM 框架,开发过程中,只需要管理对象即可;
②. Mybatis 属于半自动化,手动编写 SQL,可避免不需要的查询,提高系统性能;需要自行管理映射关系。
52、SSH 与 SSM 有什么区别?
SSH 指的是:Struts+Spring+hibernate
SSM 指的是:Spring+SpringMVC+MyBatis
所以只需要回答 Struts 和 SpringMVC 的区别以及 Hibernate 和 MyBatis 的区别
Springmvc 与 struts2 区别 :
①、SpringMVC 入口是 Servlet;基于方法设计,比 Struts2 快些;使用更加简洁,开发效率比 Struts2 高,支持 JSR303,处理 ajax 请求更加方便;
②、Struts2 入口是 Filter,基于类,每次发一次请求都会实例一个 Action;OGNL 表达式使页面的开发效率相比 SpringMVC 更高些
Hibernate 与 mybatis 区别 :
①. hibernate 封装了sql 语句,提高程序员开发效率(大项目不适用),会多消耗一些性能;完整的 ORM 框架,开发过程中,只需要管理对象即可;
②. Mybatis 属于半自动化,手动编写 SQL,可避免不需要的查询,提高系统性能;需要自行管理映射关系。