Java面试拔高知识点

一、
  1. Java Servlet API中引用Session机制来追踪客户的状态。Servlet API中定义了javax.servlet.http.HttpSession接口,Servlet容器必须实现这个接口。
  2. 当一个Session 开始时,Servlet 容器将创建一个HttpSession 对象,Servlet 容器为HttpSession 分配一个唯一标识符,称为Session ID。Servlet 容器将Session ID 作为Cookie 保存在客户的浏览器中。每次客户发出HTTP 请求时,Servlet 容器可以从HttpRequest 对象中读取Session ID,然后根据Session ID 找到相应的HttpSession 对象,从而获取客户的状态信息。
  3. 当客户端浏览器中禁止Cookie,Servlet 容器无法从客户端浏览器中取得作为Cookie 的Session ID,也就无法跟踪客户状态。
    Java Servlet API 中提出了跟踪Session 的另一种机制,如果客户端浏览器不支持Cookie,Servlet 容器可以重写客户请求的URL,把Session ID 添加到URL 信息中。
  4. HttpServletResponse接口提供了重写URL的方法:public java.lang.String encodeURL(java.lang.String url)
    该方法的实现机制为: ●先判断当前的Web组件是否启用Session,如果没有启用Session,直接返回参数url。●再判断客户端浏览器是否支持Cookie,如果支持Cookie,直接返回参数url;如果不支持Cookie,就在参数url中加入Session ID信息,然后返回修改后的url。

我们可以对网页中的链接稍作修改,解决以上问题:
修改前:
修改后:
<a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>

二、

spring的scope作用域
在这里插入图片描述

三、

Spring2.0:
Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。(建议尽量使用JDK的动态代理)

如果被代理的目标对象实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理。

如果你希望强制使用CGLIB代理,(例如:希望代理目标对象的所有方法,而不只是实现自接口的方法)那也可以。但是需要考虑以下问题:

无法通知(advise)Final 方法,因为他们不能被覆写。
你需要将CGLIB 2二进制发行包放在classpath下面,与之相较JDK本身就提供了动态代理
强制使用CGLIB代理需要将 |aop:config| 的 proxy-target-class 属性设为true:

|aop:config proxy-target-class=“true”|

四、

单一职责原则: 应该有且仅有一个原因引起类的变更(一个接口或一个类只有一个原则,它就只负责一件事)
里式替换原则: 子类型必须能替换掉它们的基类型
依赖倒置原则:
高层模块不应该依赖低层模块,两者都应该依赖其抽象
抽象不应该依赖细节
细节应该依赖抽象
接口隔离原则:
客户端不应该依赖它不需要的接口
类间的依赖关系应该建立在最小的接口上

五、

SpringMVC的原理:
SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。
DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值