encodeRedirectURL 作用?

我看别人代码:

response.sendRedirect(response.encodeRedirectURL("MatchList.jsp"));
而我一般记得就是response.sendRedirect("MatchList.jsp")
不知道二者谁对,如果都对,其区别是什么呢?

后来自己搜索得到答案:

           对sendRedirect方法使用的指定URL进行编码。如果不需要编码,就直接返回这个URL。之所以提供这个附加的编码方法,是因为在redirect的情况下,决定是否对URL进行编码的规则和一般情况有所不同。所给的URL必须是一个绝对URL。相对URL不能被接收,会抛出一个IllegalArgumentException。  
   
    所有提供给sendRedirect方法的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行   。

虽然有了答案,还是记录下。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于 Java Servlet 的示例代码,实现了判断是否存在名为 "张三" 的 cookie,如果存在则跳转到 "success.html" 页面,否则跳转到登录页面: ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; @WebServlet("/servlet_1") public class Servlet_1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie[] cookies = request.getCookies(); boolean cookieExists = false; if (cookies != null) { for (Cookie cookie : cookies) { if (cookie.getName().equals("张三")) { cookieExists = true; break; } } } if (cookieExists) { response.sendRedirect(response.encodeRedirectURL("/servlet_1/success.html")); } else { response.sendRedirect(response.encodeRedirectURL("/servlet_1/login.html")); } } } ``` 在上面的代码中,我们首先通过 `request.getCookies()` 方法获取所有的 cookie。然后,我们遍历所有的 cookie,查找名为 "张三" 的 cookie 是否存在。如果存在,我们就调用 `response.sendRedirect()` 方法将响应重定向到 "/servlet_1/success.html" 页面;否则,我们就将响应重定向到 "/servlet_1/login.html" 登录页面。 需要注意的是,我们在调用 `response.sendRedirect()` 方法时,使用了 `response.encodeRedirectURL()` 方法对 URL 进行编码。这是因为,在某些情况下,服务器会自动给 URL 添加 session ID,以支持会话管理。使用 `response.encodeRedirectURL()` 方法可以确保 URL 能够正确地包含 session ID。 此外,在实际应用中,我们还需要编写登录页面和成功页面的代码,并对用户输入的数据进行验证和清理,以避免安全漏洞和错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值