2011-10-17 sverlet的应用

来源:互联网 发布:深度系统优化工具 编辑:程序博客网 时间:2024/05/22 01:55
 

2011-10-17  sverlet的应用

1.重定向:

HttpServletRequest接口提供的sendRedirect()方法用于生成302响应码和Location响应头,从而通知客户端去重新访问Location响应头中指定的URL,其完整的定义语法如下:

Response.sendRedirected(url路径”)

其中的location参数指定了重定向的URL,它可以使用绝对URL和相对URLServlet容器会自动将相对URL转换成绝对URL后,再生成location头字段

2.两者比较:

1.请求转发只能是同一个web站点

          重定向不仅可以定向到当前的web程序,还可以访问其他的站点的资源

2.    重定向在完成操作后,地址栏会发生变化,由初始的URL地址变成重定向的目标URL

请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

 

3.请求分派的发起者和被调用者之间共享相同的request实例和response实例,它们属于同一个请求/响应过程;而重定向的发起者和被调用者使用各自的request实例和response实例,它们各自属于独立的请求/响应过程

 

3.请求的分派

Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器。它定义了如下两个方法:

委派对象。 forward(ServletRequest request, ServletResponse response) 

委派对象。 include(ServletRequest request, ServletResponse response) 

(1) 请求的转发的步骤

1 委派对象的定义

必须得RequestDispatcher re=request.getRequestDispatcher(url路径);

2 请求的重定向

Request.setAttribute(“名”,值); 设计属性值(键值对)

后面的值是对像   所以在目的地的servlet中得用强制造型转换成String类型

必须的Re. forward(request,response);只能输出目的servlet的内容 //////////或

re.include(resquet,response);  可以输出 当前servlet和目的地servlet中的内容

4.重定向和请求分派的比较
HttpServletResponsesendRedirect()方法实现的重定向和RequestDispatcherforward()方法实现的请求转发的比较:

请求分派只能将请求转发给同一个Web应用中的其他组件;而重定向不仅可以定向到当前应用程序中的其他资源,也可以重定向到其他站点的资源上。

重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

    请求分派的发起者和被调用者之间共享相同的request实例和response实例,它们属于同一个请求/响应过程;而重定向的发起者和被调用者使用各自的request实例和response实例,它们各自属于独立的请求/响应过程。

5.利用请求域属性传递对象数据

    setAt tribute(String name, Object obj)

    getAttribute(String name)

    Enumeration getAttributeNames()  枚举类

原创粉丝点击