java servlet 几种页面跳转的方法

java servlet 几种页面跳转的方法,需要的朋友可以参考一下

在访问网页的过程中,页面自动刷新、跳转和重定向是经常用到的,这里就说说在Java中是如何实现这些功能的!

一、页面自动刷新

页面自动刷新在股票网站中是经常可以看到的,网页上显示股票数据都是时时刷新的。页面自动刷新的实现主要是通过HTTP响应头告诉浏览器多长时间刷新一次。在JavaWeb中的实现就有两种方式:一是发送HTTP响应头;二是使用<meta>标签来告诉浏览器。实现代码如下:

// 方法一:设置HTTP响应头
response.setHeader("refresh","5");
// 方法二:发送<meta>标签
response.getWriter().write("<meta http-equiv=\"refresh\" content=\"5\">");

在实现这个方法的同时,我们还可以告诉浏览器告诉用户重新刷新后打开一个新的页面!也就是在浏览器端实现页面跳转,代码如下:

response.setHeader("refresh","5;/RefreshProject/index.jsp");

同时,既然方法二可以在浏览器端实现,我们也可以直接在网页中使用<meta>标签,内容就是上面方法二的内容一样的。

二、页面跳转和带值跳转

页面跳转这个必须是在服务器端实现的。比如说用户登陆时,根据用户选择的登陆类型不同来交给不同的Servlet处理。主要是通过RequestDispatcher接口对象的forward()方法来实现的,RequestDispatcher接口对象可以通过request对象获取,需要的Path参数是相对于当前Context的。代码如下:

// 传递参数
request.setAttribute("myname","Xcoder Studio");
// 页面跳转
request.getRequestDispatcher("/index.jsp")
.forward(request, response);

这里可以看到,通过这个对象我们可以实现带request、response传递,并且可以在传递前设置修改request请求。给新的页面处理。


传参页面跳转:

  
  
// 使用response对象的sendRedirect实现客户端跳转 // servlet的doGet方法 public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException { PrintWriter out = res.getWriter(); out.println( " Hello world! " ); res.sendRedirect( " test.do " ); // servlet实现跳转(客户端跳转) }

客户端跳转不能像目标页面传递参数(如果使用该方法非要向目标页面传递参数的话,可以可以使用session对象将参数值记录,在此不详细记录)
服务器端跳转

  
  
  // 使用RequestDispatcher接口实现服务器端跳转,且向目标页面传递参数
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ PrintWriter out = resp.getWriter(); /* * 在servlet中实现服务器端跳转,并向跳转页面传递参数 */ req.setAttribute( " name " , " haiyun " ); // 为request对象添加参数 RequestDispatcher dispatcher = req.getRequestDispatcher( " test-04.jsp " ); // 使用req对象获取RequestDispatcher对象 dispatcher.forward(req, resp); // 使用RequestDispatcher对象在服务器端向目的路径跳转

三、页面重定向实现

页面重定向就是告诉浏览器改访问目标,类似于发送一个302响应,告诉浏览器去访问一个新的地址。这个地址是对于浏览器的,所以如果是以”/”开头的话是对于整个域名而言!代码如下:

response.sendRedirect("/RefreshProject/index.jsp");

 四、重定向与跳转区别

重定向与跳转比较直观的区别就是跳转在浏览器端地址不会改变,而重定向浏览器端的地址会改变。

另外就是跳转的时候我们是可以将客户端发送的请求一并发送给跳转目标,但是这点对于重定向就不能了!



  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
servlet中,可以使用RequestDispatcher的forward方法跳转页面。例如,可以使用以下代码将请求转发到名为"EShop.jsp"的JSP页面: ```java String url = "/EShop.jsp"; ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher(url); rd.forward(req, res); ``` 这将把请求和响应对象传递给目标页面,使目标页面能够处理请求并生成响应。注意,使用forward方法跳转页面后,地址栏不会发生变化。\[1\] 另外,需要注意的是,forward方式只能跳转到本web应用中的页面上,无法跳转到其他应用或外部网页。如果想要在跳转后传递参数,可以使用url中带parameter、session或request.setAttribute等方法。\[3\] #### 引用[.reference_title] - *1* *2* [Servlet跳转到jsp页面几种方法](https://blog.csdn.net/weixin_30713953/article/details/96238984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Servlet跳转页面](https://blog.csdn.net/weixin_40912987/article/details/116167119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值