Servlet跳转
方便自己查询,嫌低级的勿喷。。。。
在Servlet中跳转有两种:
1.客户端跳转
在Servlet中要进行客户端跳转(地址栏的地址信息将发生改变),直接使用HttpServletResponse接口的sendRedirect()方法,注意此跳转只能传递session及application范围的属性,而无法传递request范围的属性。
2.服务器端跳转
在Servlet中没有像JSP中的<jsp:forward>指令,所以如果要执行服务器端跳转(地址栏的地址信息不发生改变),就必须依靠RequestDispatcher接口完成,此接口中提供了下面两种方法:
No | 方法 | 描述 |
1 | public void forward(ServletRequest request,ServletResponse response) throws ServletException,IOException | 页面跳转 |
2 | public void include(ServletRequest request,ServletResponse response) throws ServletException,IOException | 页面包含 |
使用RequestDispatcher接口的forward()方法即可完成跳转功能的实现,但是如果要想使用此接口还需要使用ServletRequest接口提供如下的方法进行实例化:
No | 方法 | 描述 |
1 | public RequestDispatcher getRequestDispatcher(String path) | 取得RequestDispatcher接口实例 |
package org.lxh.servletdemo ; import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ; public class ServerRedirectDemo extends HttpServlet { public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ req.getSession().setAttribute("name","李兴华") ; req.setAttribute("info","MLDNJAVA") ; RequestDispatcher rd = req.getRequestDispatcher("get_info.jsp") ; // 准备好了跳转操作 rd.forward(req,resp) ; // 完成跳转 } public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{ this.doGet(req,resp) ; } }