总结一下servlet和jsp中:包含,重定向,转发的方式:

总结一下servlet和jsp包含,重定向,转发的方式:

forward:是指转发,将当前request和response对象保存,交给指定的url处理。地址栏的地址不会发生改变。

redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。

include:意为包含,即包含url中的内容:1.静态包含:将多个页面编译成一个servlet;2.动态包含:每个页面编译成一个servlet,运行时将所有servlet的内容组合到一起。

转发:

servlet中:

request.getRequestDispatcher("/success.html").forward(request, response); 
getServletContext().getRequestDispatcher("").forward(request, response);
getServletContext().getNamedDispatcher("").forward(request, response);

jsp标签:

<jsp:forward page="url">

jsp隐式对象:

 pageContext.forward("");

 

重定向:

下面内容的补充:(jsp(8)[3;5])jsp(5)(一)[4.1;4.8]

servlet中:

response.sendRedirect(request.getContextPath()+"/fail.html");  

html(content单位秒):

<meta http-equiv="refresh" content="300; url=target.jsp"//将给内容以内容形式发送给浏览器解析

http属性refresh:

response.setHeader("refresh","300; url=target.jsp"); //300是延迟时间

http状态码:

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); //302状态码
response.setHeader("Location","/newpath/jsa.jsp");

 

包含:

(对静态标签详解:jsp(13)[3.6.2])

静态包含:

jsp指令:include指令 
<%@ include file="Header.jsp"%>

动态包含:

(对隐式对象的详解jsp(14)

 可以看到ServletRequest接口和ServletContext接口各自提供了一个同名的方法getRequestDispatcher(),那么这两个方法有什么区别呢?
两个getRequestDispatcher()方法的参数都是资源的路径名,不过ServletContext接口中的getRequestDispatcher()方法的参数必须以斜杠(/)开始,被解释为相对于当前上下文根(context root)的路径。
例如:/myservlet是合法的路径,而../myservlet是不合法的路径。
而ServletRequest接口中的getRequestDispatcher()方法的参数不但可以是相对于上下文根的路径,而且可以是相对于当前Servlet的路径。
例如:/myservlet和myservlet都是合法的路径,如果路径以斜杠(/)开始,则被解释为相对于当前上下文根的路径;如果路径没有以斜杠(/)开始,则被解释为相对于当前Servlet的路径。

ServletContext接口中的getNamedDispatcher()方法则是以在部署描述符中给出的Servlet(或JSP页面)的名字作为参数。

调用ServletContext对象的getContext()方法可以获取另一个Web应用程序的上下文对象,利用该上下文对象调用 getRequestDispatcher()方法得到的 RequestDispatcher 对象,可以将请求转发到另一个Web应用程序中的资源。
但要注意的是,要跨Web应用程序访问资源,需要在当前Web应用程序的<context>元素的设置中,指定crossContext属性的值为true
View Code

request和context:

request.getRequestDispatcher("/success.html").include(request, response);  
getServletContext().getRequestDispatcher("").include(request, response);
getServletContext().getNamedDispatcher("").include(request, response);

jsp隐式对象:

pageContext.include("");
jsp标签:include标准动作
<jsp:include page=“Header.jsp”/>
采用JSTL
<c:import url="http://www.sina.com/index.html">

 

posted @ 2017-02-08 01:53  假程序猿  阅读(477)  评论(0)    收藏  举报