Servlet客户端跳转

Servlet 跳转有客户端跳转和服务器跳转两种。其中,客户端跳转运用 sendRedirect() 方法实现,服务器跳转运用 RequestDispatcher 接口实现,本文将介绍客户端跳转方法的实现以及使用。

在 Servlet 中要想进行客户端跳转,需要使用 HttpServletResponse 接口的 sendRedirect() 方法,但需要注意的是,这种跳转只能传递 session 和 application 范围的属性,无法传送 request 范围的属性。

【例1】使用客户端跳转 ClientRedirect.java。

首先创建一个 Servlet 文件 ClientRedirect.java,代码如下:

  1. package ch05;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class ClientRedirect extends HttpServlet
  9. {
  10. /**
  11. *客户端跳转
  12. */
  13. public void goGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
  14. {
  15. request.getSession().setAttribute("name","白辰");
  16. request.setAttribute("info","JavaServlet");
  17. response.sendRedirect("info.jsp");
  18. }
  19. public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
  20. {
  21. this.doGet(request,response); //调用doGet的方法
  22. }
  23. }

然后配置 web.xml 文件如下:

  1. <servlet>
  2. <servlet-name>client<servlet-name>
  3. <servlet-class>ch05.ClientRedirect</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>client</servlet-name>
  7. <url-pattern>/servlet/ClientRedirect</url-pattern>
  8. </servlet-mapping>

info.jsp 代码如下:

  1. <%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
  2. <html>
  3. <head>
  4. <title>
  5. Serlet客户端跳转
  6. </title></head>
  7. <body>
  8. <% request.setCharacterEncoding("utf-8");%>
  9. <h2>session 属性:<%=session.getAttribute("name")%></h2>
  10. <h2>request 属性:<%=request.getAttribute("info")%></h2>
  11. </body>
  12. </html>

启动服务器后,在浏览器的地址栏输入 http://localhost:8080/servlet/ClientRedirect,运行结果如图 1 所示。


图1 客户端跳转运行结果

提示:

由于是客户端跳转,跳转后,浏览器地址栏中变为 http://localhost:8080/ch05/info.jsp。从程序结果可以看到,request 属性的范围无法接收,只能接收 session 属性的范围。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值