jsp 跳转方式
使用JSP大约有下列三种跳转方式:
1. response.sendRedirect();
2. response.setHeader("Location","");
3. <jsp:forward page="" />
经过试验得到下面的一些规则:
一. response.sendRedirect()
此语句前不允许有out.flush(),如果有out.flush(),会有异常:
java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.
at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
跳转后浏览器地址栏变化
如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了;
如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转;
二. response.setHeader("Location","")
此语句前不允许有out.flush(),如果有out.flush(),页面不会跳转。
跳转后浏览器地址栏变化
此语句后面的语句执行完成后才会跳转
三. <jsp:forward page="" />
此语句前不允许有out.flush(),如果有,会有异常:
java.lang.IllegalStateException: forward() not allowed after buffer has committed.
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)
at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)
...
跳转后浏览器地址栏不变,但是只能跳到当前主机下
此语句后面的语句执行完成后才会跳转
相关文档:
第一步:JDK与Tomcat等的下载与配置
最新的JDK为6.0(jdk-6u12-windows-i586-p.exe),tomcat为6.0(apache-tomcat-6.0.18.exe)
开发环境:
JDK: jdk-6u12-windows-i586-p.exe
下载地址:http://java.sun.com/javase/downloads/index.jsp
Tomcat:apache-tomcat-6.0.18.exe
下载地址:http://tomcat.a ......
页面的输入和输出涉及到了Request和Response,由于他们和Jsp中的相似,
下面我们进行详细的解读:
JSP中:
在动态网页开发中,HTML表单是与用户交互信息的主要手段。
使用JSP处理表单请求时,一般遵循这样一种模式,首先,用户通过表单控件输入并提交信息;接着,JSP页面获得表单数 ......
JSP内置对象(9个常用的内置对象)
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名 ......
1、forward 和redirect的区别
答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉� ......