6、Servlet的会话机制?
因为http协议是无状态协议,又称为一次性连接,所以webapp必须有一种机制
能够记住用户的一系列操作,并且唯一标示一个用户。
Cookie: 又称为小饼干,实际就是使用一个短文本保存用户信息,
在页面加载完毕是通过响应写回客户端进行保存。
Session: 在服务器保存数据,Session就是单个客户的一块内存, 用以存储数据。
Tomcat的Session是HashMap的实现。
当request.getSession()时Session对象被服务器创建,并且产生一个唯一的SessionID。
SessionID会通过Cookie写回客户端进行保存。如果Cookie被客户端禁用,只能使用URL重写机制。
Session对象可以使用setAttribute(String name,Object o)将对象存储在Session作用范围域中。Session作用范围域是在浏览器打开到浏览器关闭。
7、Filter是什么?有什么作用?
Filter是过滤器,在请求到达Servlet之前或者响应到达客户端之前截获请求或者响应,对之进行相应的处理。Struts2的控制器就是使用一个Filter实现的。
8、Listener是什么?有什么作用?
Listener是指Servlet中的监听器。
Listener可以对ServletContext对象、HttpSession对象、ServletRequest对象进行监听。
9、你了解过Servlet3.0吗?
Servlet3.0相对于Servlet2.0来说最大的改变是引入了Annotation标注来取代xml配置,用于简化web应用的开发和部署。最主要几项特性:
1. 新增的注解支持:该版本新增了若干注解,用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。
2. 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高 并发处理速度。
3. 可插性支持:熟悉 Struts2 的开发者一定会对其通过插件的方式与包括 Spring 在内的各种常用框架的整合特性记忆犹新。将相应的插件封装成 JAR 包并放在类路径下,Struts2 运行时便能自动加载这些插件。现在 Servlet 3.0 提供了类似的特性,开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。
10、JSP是什么?有什么特点?
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。在Servlet当中开发嵌入html的脚本,会非常的繁琐。JSP支持在html中直接嵌入java脚本,JSP是Servlet的简化设计,通常在开发中用来做展示数据。在实际开发中,Servlet负责响应请求并处理请求产生数据,数据的显示由JSP负责。