servlet转发_处理异常_路径问题
2015-11-07 18:15
477 查看
servlet转发_处理异常_路径问题
一个web组件(servlet/jsp)将未完成的处理转交给另外一个web组件继续做。
比较常见的情况是一个servlet将处理结果转交给一个jsp来展现。
注:
web组件指的是jsp或者servlet
(2)如何转发
step1, 绑订数据到request。
//name:绑定名,obj:绑定值
request.setAttribute(String name,Object obj);
step2,获得转发器
//uri:要转发给哪一个web组件
RequestDispatcher rd = equest.getRequestDispatcher(String uri);
step3,转发
rd.forward(request,response);
step4,在转发的目的地,可以使用request.getAttribute方法获得绑定的数据,然后进行处理。
//如果name对应的值不存在,会返回null
Object request.getAttribute(String name);
(3)特点
a.转发之后,浏览器地址栏的地址不变。
b.转发的目的地必须是同一个应用。
(4)注意事项
a,转发之前,先清空response对象中的缓冲数据。
b,转发之前,不能够调用out.close().
step1,绑订异常提示信息到request
step2,转发到一个异常处理页面
step3,编写异常处理页面
(2)交给容器来处理
step1,将异常抛出,比如
throw new ServletException(e)
step2,编写异常处理页面
eg:error2.jsp
通常,系统异常交给容器来处理比较方便,应用异常一般使用转发来处理。
step3,配置异常处理页面(让容器知道,当捕获到相应异常后,应该调用哪一个页面)
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error2.jsp</location>
</error-page>
<a href="del.do"></a>
<form action="add.do">
response.sendRedirect("list.do")
request.getRequestDispatcher("listEmp.jsp")
(1)相对路径
不以"/"开头的路径
(2)绝对路径
以"/"开头的路径
(3)如何写绝对路径
链接,表单提交,重定向的绝对路径从应用名开始写,转发的绝对路径从应用名之后开始写。
注:
不要将应用名直接写在路径里面,而应该使用下面的方法来获得实际部署时的应用名。
//获得应用名“/??” --获得部署时的应用名
String request.getContextPath();
1.转发
(1)什么是转发一个web组件(servlet/jsp)将未完成的处理转交给另外一个web组件继续做。
比较常见的情况是一个servlet将处理结果转交给一个jsp来展现。
注:
web组件指的是jsp或者servlet
(2)如何转发
step1, 绑订数据到request。
//name:绑定名,obj:绑定值
request.setAttribute(String name,Object obj);
step2,获得转发器
//uri:要转发给哪一个web组件
RequestDispatcher rd = equest.getRequestDispatcher(String uri);
step3,转发
rd.forward(request,response);
step4,在转发的目的地,可以使用request.getAttribute方法获得绑定的数据,然后进行处理。
//如果name对应的值不存在,会返回null
Object request.getAttribute(String name);
(3)特点
a.转发之后,浏览器地址栏的地址不变。
b.转发的目的地必须是同一个应用。
(4)注意事项
a,转发之前,先清空response对象中的缓冲数据。
b,转发之前,不能够调用out.close().
2.处理servlet运行时产生的异常
(1)转发到一个异常处理页面step1,绑订异常提示信息到request
step2,转发到一个异常处理页面
step3,编写异常处理页面
(2)交给容器来处理
step1,将异常抛出,比如
throw new ServletException(e)
step2,编写异常处理页面
eg:error2.jsp
通常,系统异常交给容器来处理比较方便,应用异常一般使用转发来处理。
step3,配置异常处理页面(让容器知道,当捕获到相应异常后,应该调用哪一个页面)
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error2.jsp</location>
</error-page>
3.路径问题
链接,表单提交,重定向,转发<a href="del.do"></a>
<form action="add.do">
response.sendRedirect("list.do")
request.getRequestDispatcher("listEmp.jsp")
(1)相对路径
不以"/"开头的路径
(2)绝对路径
以"/"开头的路径
(3)如何写绝对路径
链接,表单提交,重定向的绝对路径从应用名开始写,转发的绝对路径从应用名之后开始写。
注:
不要将应用名直接写在路径里面,而应该使用下面的方法来获得实际部署时的应用名。
//获得应用名“/??” --获得部署时的应用名
String request.getContextPath();
相关文章推荐
- 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest G題:Flipping Parentheses [线段树]
- linux主机通过ssh远程连接linux 系统的vps
- [leetcode 36] Valid Sudoku
- 烂泥:haproxy与nginx、zabbix集成
- hdu5550 Game Rooms (动态规划)
- 68eshop版本 商品价格显示为0 ecshop 解决会员登录后商品价格显示为0的问题
- iOS开发动态计算cell的高度
- 【拔苗计划】linux学习笔记——tcpdump命令学习
- 解决Ubuntu不能挂载ntfs格式硬盘
- 重载跟重写--笔记2
- python之函数用法id(),了解即可
- 一个球从 100 米高的地方自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。
- iOS 那些好用的三方库索引
- 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest F題:There is No Alternative [最小生成树]
- ids for this class must be manually assigned before calling save():
- 一个java程序员自学IOS开发之路(六)
- Java NIO入门(二):缓冲区内部细节
- hadoop笔记
- Excel中根据XML映射导出XML数据
- 自定义广播、有序广播、无序广播、监听sd卡的状态