java sendredirect报错_java 中sendredirect()和forward()方法的区别
HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源。
sendRedirect实现请求重定向,forward实现的是请求转发。
在web服务器内部的处理机制也是不一样的。
1. 跳转方式
运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。
表单form的action= "/uu ";sendRedirect( "/uu ");表示相对于服务器根路径。
2.forward重定向后,浏览器url地址不变,sendRedirect转发后,浏览器url地址变为目的url地址。
forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件, 同时forward()无法在后面带参数传递,
比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute( "name ",name)来传至下一个页面.
3. 使用forward重定向的过程,是浏览器先向目的Servlet发送一次Request请求,然后再服务器端由Servlet再将请求发送到目的url,再由服务器端Servlet返回Response到浏览器端。浏览器和服务器一次请求响应。
使用sendRedirect转发的过程,浏览器先向目的Servlet发送一次请求,Servlet看到sendRedirect将目的url返回到浏览器,浏览器再去请求目的url,目的url再返回response到浏览器。浏览器和服务器两次请求响应。
4. forward方法的调用者与被调用者之间共享Request和Response
sendRedirect方法由于两次浏览器服务器请求,所以有两个Request和Response。
如果使用request.setAttribute传递一些属性就需要用forward,如果想要跳转到别的应用的资源,就需要用sendRedirect。
5.无论是forward方法还是sendRedirect方法调用前面都不能有PrintWriter输出到客户端。
forward方法报错: Java.lang.IllegalStateException: Cannot forward after response has been committed
sendRedirect报错:java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
总结
以上所述是小编给大家介绍的java 中sendredirect()和forward()方法的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
时间: 2017-08-02
java sendredirect报错_java 中sendredirect()和forward()方法的区别相关推荐
- java test报错_Java 单元测试报错
«Java 单元测试报错:Test class should have exactly one public zero-argument constructor» public class Test{ ...
- java override报错_java @override 报错处理
转载自:http://blog.sina.com.cn/s/blog_9c7605530101kl9r.html 一.java @override 报错处理 做项目的时候,同事那边电脑上编译通过的ja ...
- 电脑配置java编译报错_java 编译错误
我有两个简单的代码,ClickMe.java代码为:importjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;publiccla ...
- instanceof java 报错_java中instanceof怎么理解?java中instanc 爱问知识人
1.用法表达式 result = object instanceof class result:布尔类型. object:必选项.任意对象表达式. class:必选项.任 ...
- java编码转换报错_Java中BeanUtils的日期转换 代码报错 怎么解决
Person类:publicclassPerson{privateDatebirthday;publicDategetBirthday(){returnbirthday;}publicvoidsetB ...
- 注解报错_Java中的注解使用:全面性的总结一下
前话: 今天,我们又来聊一下注解的使用,做一下详细的解析,也介绍了自定义注解,请耐心往下看哟! 注解的介绍: 在2005年,sun公司推出了jdk1.5,同时推出的注解功能吸引了很多人的目光,使用注解 ...
- java package报错_Java从入门到精通(一)
标识符 Java语言中,为各种变量.方法和类等起的名字称为标识符 Java标识符的命名规则: 应以字母.下划线.美元符开头 后跟字母.下划线.美元符或数字 Java标识符大小写敏感,长度无限制 jav ...
- java package报错_Java基础知识总结 - 超详细篇(上)
1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre. 2,JRE:Java Runtime Environment,java程序的运行环境,ja ...
- 子类实现父类接口时注解为啥报错_Java中的注解使用:全面性的总结一下
前话: 今天,我们又来聊一下注解的使用,做一下详细的解析,也介绍了自定义注解,请耐心往下看哟! 注解的介绍: 在2005年,sun公司推出了jdk1.5,同时推出的注解功能吸引了很多人的目光,使用注解 ...
最新文章
- asp.net网站图片防盗链机制示例代码
- 国外计算机音乐专业,音乐留学干货 | 国外电子音乐专业留学如何?
- c++异常Try catch
- 拉拢中小网站 淘宝百度暗战升级...
- oracle查看登录时间黑屏,oracle 11g默认用户名、密码解锁 以及安装后重启黑屏问题.doc...
- @Builder(toBuilder=true) 链式初始化对象、修改对象
- Spring实战——通过Java代码装配bean
- MySQL外键的三种关系
- 2058. 笨拙的手指
- 数学建模(5.5)相关系数_斯皮尔曼相关系数
- 软件需求,概要设计,详细设计(文档)怎么做,做什么?
- Unity3d光影烘焙常见缺陷的解决方法【2020】
- PostgreSQL年龄的处理
- vue启动报错98% after emitting CopyPlugin This dependency was not found:
- 对京东全球购的一次投诉
- OEM,ODM,OBM,JDM概念
- 【数学】手写开根号(牛顿迭代法 | 二分)
- 原子性 可见性 有序性_极简主义的内容可见性
- 在cmd 中输入了错误mysql命令后,如何退出?
- 自己动手模仿 springmvc 写一个 mvc框架
热门文章
- 字节序转换 oracle,Oracle10g同字节序跨平台迁移
- 提高软件开发、软件维护的效率和质量的利器
- 作者:褚金翔(1979-),男,中国农业科学院农业环境与可持续发展研究所助理研究员。...
- 以色辨位的Farmer(洛谷P5832题题解,Java语言描述)
- 把握不好数组边界的危害(记洛谷P1789题RE+WA的经历,Java语言描述)
- 【数据结构与算法】链式栈的Java实现
- Reactor和Proactor对比以及优缺点 (netty的底层原理reactor模型)
- tomcat的jdbc连接池PoolExhaustedException 1
- NIO中Selector分析
- matlab V7.0 R14 安装教程