首页  ·  知识 ·  编程语言
J2EEServlet知识点
网友    Java  编辑:dezai   图片来源:网络
J2EE Servlet 知识点

1.如何获取RequestDispatcher
可以通过request或者web context获取RequestDispatcher对象,不过两个方法稍有不同。一个request可以采用相对的路径 
      (也就是不以"/"开头)作为参数,而web context需要的是绝对路径。
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/banner");
if (dispatcher != null)
   dispatcher.include(request, response);

2.Forward(dispatcher.forward(request, response)或<jsp:forward>)发生后,如何取得之前的url的相关部分
当一个请求被forward到另一个请求后,原始的URI和其组成部分被保存为请求属性:
      javax.servlet.forward.[request-uri|context-path|servlet-path|path-info|query-string]

3.Include(dispatcher.include(request, response)或<jsp:include>)发生后,如何获取被包含的页面的信息
当一个页面被包含到另个一页面中后,可以通过request.getRequestURL()获取原来的父URL,而对于被包含的页面的信息,可以通
      过获取request中的下列属性获取:
javax.servlet.include.[request-uri|context-path|servlet-path|path-info|query-string]

4.session.invalidate和session.reomveAttribute区别:
       removeAttribute就是从session删除指定名称的绑定对象,也就是说调用此方法后再调用getAttribute(Stringname)时,不能获取
       指定名称的绑定对象,调用getAttribute方法时返回值是null,但是session还存在。invalidate就是废止此 session对象,解除与
       此session对象绑定的所有对象,这个时候调用getAttribute方法会抛出“Session already invlidated!”异常。
       注:Session的销毁有两种情况:超时和手动销毁,(1)tomcat可以通过在web.xml中添加如下的配置设置超时的时间
       <session-config><session-timeout>30</session-timeout></session-config>;(2)手动销毁是指直接调用其invalidate方
       法,此方法实际上是调用expire方法来手动将其设置为超时invalidate是使此session对象失效,调用request.getSession(false)
       返回的是null;

5.HttpServletRequest.encodeURL在session跟踪中的应用
       encodeURL(url)方法主要用于通过url重写的机制来实现session跟踪,它实现的逻辑如下:
       (1)先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。
       (2)再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 
       Session ID 信息,然后返回修改后的 url。
       对于健壮的session跟踪,servlet中派发的所有的url都应该经过这个方法,否则的话,url重写机制对不支持cookie的浏览器将不能
       使用;例:
       如果浏览器的cookie禁用,encoded url类似:http://localhost:8080/bookstore1/cashier;jsessionid=c0o7fszeb1
       如果浏览器的cookie启用,encoded url类似:http://localhost:8080/bookstore1/cashier

6.终止Servlet(TBD)

本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的