美文网首页
JAVA实现重定向和转发

JAVA实现重定向和转发

作者: _花 | 来源:发表于2022-05-18 11:29 被阅读0次

(一)重定向

1.如何在java中重定向到外部URL
重定向之余并给外部域名下加cookie

CookieUtils.setCookie(response, "token",  att, expiresIn);
return new ModelAndView(new RedirectView((String) httpSession.getAttribute("originUrl")));

setCookie

public static HttpServletResponse setCookie(HttpServletResponse response, String name, String value, int time) {
        // new一个Cookie对象,键值对为参数
        Cookie cookie = new Cookie(name, value);
        // tomcat下多应用共享
        cookie.setPath("/");
        // 如果cookie的值中含有中文时,需要对cookie进行编码,不然会产生乱码
        try {
            URLEncoder.encode(value, "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        cookie.setMaxAge(time);
        // 将Cookie添加到Response中,使之生效
        response.addCookie(cookie); // addCookie后,如果已经存在相同名字的cookie,则最新的覆盖旧的cookie
        return response;
    }

2.重定向到内部

response.sendRedirect(path);

前后端分离的情况下
response.sendRedirect(path)也可以用来重定向到前端URL

(二)转发

 request.getRequestDispatcher("/server/user/requestAuth").forward(request, response);

(三)请求转发和重定向的主要区别

(1) 请求转发forward 只有一次请求,而重定向是两次请求:

(2) 请求转发:仅限于当前web应用内,"/"代表当前web应用的根目录
请求重定向:可以定向到任何资源,"/"代表当前web站点的根目录

(3)转发请求的参数不会丢失重定向参数会丢失,request还是之前请求的request
请求重定向的request会生成新的request

相关文章

网友评论

      本文标题:JAVA实现重定向和转发

      本文链接:https://www.haomeiwen.com/subject/hvtaurtx.html