• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
山高我为峰
博客园    首页    新随笔    联系   管理    订阅  订阅
JavaWeb重定向和转发
    if (user != null && passWord.equals(user.getPassWord())) {
            // 登录成功
            // response.sendRedirect(request.getContextPath() +
            // "/WEB-INF/pages/Success.jsp");
            request.getRequestDispatcher("/WEB-INF/pages/Success.jsp").forward(request,
                    response);//转发服务器-->服务器  直接在服务端转发,所以不需要添加项目名
        } else {
            // 登录失败
            response.sendRedirect(request.getContextPath() + "/index.jsp");//重定向浏览器-->服务器  要加项目名即:request.getContextPath()
        }

response.sendRedirect重定向,其原理是:向浏览器返回一个302状态码,并响应了一个Location,302 Found会请求这个新的Location,

所以重定向请求方向是

  浏览器--->服务器

那么请求资源就要加上项目名,因为服务器上可能有多个项目在运行,如果从浏览器请求,不带项目名,是无法定位到具体是那个项目下的那个资源。

request.getRequestDispatcher转发,是直接在服务器端进行的,也就是在本项目内部进行的,因此在跳转资源时不需要添加项目名


posted on 2015-10-10 23:11  山高我为峰  阅读(381)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3