servlet的跳转

servlet的跳转

 

一、客户端跳转
  在Servlet中要实现客户端跳转,直接使用HttpServletResponse接口的sendRedirect()方法即可。但是需要注意的是,此跳转只能传递session范围的属性,而无法传递request范围的属性。
示例代码:(客户端跳转 ---ClientRedirectServlet)
public class ClientRedirectServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置session属性
req.getSession().setAttribute("user", "admin");

//设置application属性 
req.setAttribute("pwd", "123");

//页面跳转---客户端跳转
resp.sendRedirect("get_info.jsp");
}
}  

 

 

示例代码:(配置Servlet映射 --- ClientRedirectServlet)

 

<!-- 配置Servlet映射,ClientRedirectServlet -->
<servlet>
<servlet-name>clientredirectservlet</servlet-name>
<servlet-class>com.lzcc.servlet.redirectdemo.ClientRedirectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>clientredirectservlet</servlet-name>
<url-pattern>/clientredirectservlet</url-pattern>
</servlet-mapping> 
二、客户端跳转
在Servlet中想要执行服务器端跳转,需要依靠RequestDispatcher接口完成,此接口提供了如下方法:
NO  方法                                                       说明  
1   forward(ServletRequest request, ServletResponse response)  页面跳转  
2   include(ServletRequest request, ServletResponse response)  页面包含 

 

 

使用RequestDispatcher接口的forward()方法即可完成跳转功能的实现,但是如果要想使用此接口还需要使用ServletRequest接口提供的如下方法进行实例化:

 

NO    方法                                          说明  
1     getRequestDispatcher(java.lang.String path)   获取ReqeustDispatcher接口实例  

 

 

示例代码:(服务器端跳转 --- ServerRedirectservlet) 

 

public class ServerRedirectServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 设置session属性
req.getSession().setAttribute("user", "admin");
// 设置request属性
req.setAttribute("pwd", "123");
// 实例化RequestDispatcher
RequestDispatcher rd = req.getRequestDispatcher("get_info.jsp");
// 服务器转向
rd.forward(req, resp);
}
}  

 

 

示例代码:(配置Servlet映射 --- ServerRedirectservlet)

<!-- 配置Servlet映射, ServerRedirect -->
<servlet>
<servlet-name>serverredirectservlet</servlet-name>
<servlet-class>com.lzcc.servlet.redirectdemo.ServerRedirectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>serverredirectservlet</servlet-name>
<url-pattern>/serverredirectservlet</url-pattern>
</servlet-mapping>  

posted @ 2017-02-22 12:42  傲骄鹿先生  阅读(73)  评论(0编辑  收藏  举报