实现页面重定向主要应用HTTPServletResponse对象的sendRedirect()方法,与页面转发的forward()不同,使用forward()方法时,会将当前正在处理的请求转发到其他web组件(Servlet,JSP,HTML)。而sendRedirect()方法不会转发请求,只是页面跳转

新建RedirectServlet的Servlet类,继承HTTPServlet类,在该类的doPost()方法中判断用户名和密码是否正确,不正确会使用sendRedirect()方法将页面重定向到错误页

public class RedirectServlet extends HttpServlet{public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{this.doPost(request, response);}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{request.setCharacterEncoding("utf-8");   //设置请求的字符编码格式String name=request.getParameter("name");String pwd=request.getParameter("pwd");if((name!=null&&!name.equals(""))&&(pwd!=null&&!pwd.equals(""))){if(name.equals("zj")&&pwd.equals("123")){//使用RequestDispatcher对象将页面请求转发到success.jsp页面request.getRequestDispatcher("success.jsp").forward(request, response);}else{response.sendRedirect("error.jsp");}}}
}

index.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>实现页面重定向</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><style type="text/css">table{font-size:12px;font-family: 隶书;color:gray;border: 1px green solid;}input{font-size:12px;font-family: 隶书;color:gray;}</style></head><body><form action="redirect" method="post"><table align="center"><tr><td>用户名:</td><td><input type="text" name="name" /></td></tr><tr><td>密码:</td><td><input type="password" name="pwd" /></td></tr><tr><td colspan="2"><input type="submit" value="登 录" /></td></tr></table></form></body>
</html>

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'success.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><style type="text/css">table{font-size:12px;font-family: 隶书;color:gray;border: 1px green solid;}input{font-size:12px;font-family: 隶书;color:gray;}</style></head><body><table align="center"><tr><td><font color="green">恭喜您【<%=request.getParameter("name")%>】,登录成功!</font></td></tr></table></body>
</html>

error.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'error.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><table align="center"><tr><td><font color="red">登录失败!</font></td></tr></table></body>
</html>

web.xml配置

<servlet><servlet-name>RedirectServlet</servlet-name><servlet-class>com.cn.zj.Servlet.RedirectServlet</servlet-class></servlet><servlet-mapping><servlet-name>RedirectServlet</servlet-name><url-pattern>/redirect</url-pattern></servlet-mapping>

HTTPServletResponse对象的sendRedirect()方法一律返回状态代码为302的响应结果,浏览器接收到这种响应结果后,立即自动请求访问重定向的目标web组件,客户端最后接受到的是目标web组件的响应结果

在Servlet中实现页面重定向相关推荐

  1. servlet中实现页面跳转return “r:”和return “f:

    servlet中实现页面跳转return "r:"和return "f:"的区别和作用 2015-07-28 14:22741830480 | 浏览 48 次 ...

  2. 在Servlet中实现页面转发

    在Servlet中实现页面转发,使用的是RequestDispatcher对象的forward()方法,可以在Servlet中通过forward()方法将当前的请求转发到其他Web组件 index.j ...

  3. PartialView中的页面重定向

    在MVC的每个action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为view或者是一个PartialView,前台是一个全整页面,后台是页面的一部分. 在以A ...

  4. Servlet中转发和重定向的路径问题以及表单提交路径问题

    一.请求转发与响应重定向的种类 有两种方式获得Servlet 转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher( ...

  5. HTML、JSP、Servlet中的相对路径和绝对路径 页面跳转问题

    HTML.JSP.Servlet中的相对路径和绝对路径 前提: 假设你的Http地址为http://192.168.0.1/,你的web应用为test,path="/test",那 ...

  6. java servlet 转发和重定向_JavaWeb(一)Servlet中乱码解决与转发和重定向的区别

    前言 前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一.request请求参数出现乱码问题 1.1.get请求 1)乱码示例 get请求的参数是在u ...

  7. jsp 跳到servlet路径_想打开一个jsp的页面就跳转到servlet中去,并向servlet传值。用什么跳转...

    是打开就跳转,不用form提交,也不用超链接. 如果我的xml中servlet的url是:/main 我在JSP中想要跳转到servlet,并且传值到servlet,我知道表单可以这样写: 超链接可以 ...

  8. Django框架(9.Django中的配置使用MySQL数据库以及页面重定向)

    ORM框架简介 ORM框架还可以通过方便的配置就可以进行数据库的切换 进入虚拟环境,创建一个新的项目,django-admin  startproject test2  (test2为项目名) 创建好 ...

  9. servlet中重定向后别忘了return

    Servlet 中重定向有两种方法: 1, RequestDispatcher reqdis = req.getRequestDispatcher("/error.jsp"); r ...

最新文章

  1. SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?
  2. Exchange2010 控制台提示您的权限不足,无法查看此数据
  3. cocos2d-x-3.1 win32程序-初识源代码(coco2d-x 学习笔记二)
  4. 初入react -01
  5. “熊猫烧香”式的病毒营销
  6. Java中删除文件、删除目录及目录下所有文件
  7. hadoop 传感器数据_读取模式错误,计算引擎操作复杂……面对Hadoop这些问题该如何应对?...
  8. 递归函数时间复杂度分析
  9. 隐马尔可夫模型(五)——隐马尔可夫模型的解码问题(维特比算法)
  10. 重庆市计算机一级考试2015,2015年计算机一级考试试题及答案
  11. bochs core教程linux,ubuntu14.04中安装配置bochs详解(二)
  12. linux环境下pandas库的安装,Pandas库的基本使用 pip安装 Series DataFrame
  13. 某度起诉“文库下载神器”,索赔300万
  14. php中表格的高度怎么改,ppt表格行高调整不了怎么办
  15. xlsx表格怎么筛选重复数据_excel表格中如何筛选重复数据
  16. ORAN C平面 Section Type 6
  17. 茅台nfc显示服务器临时维护,茅台酒使用手机NFC扫描瓶盖辨别真伪方法
  18. javascript彩色喷泉
  19. java中文处理学习:Hello Unicode
  20. node项目实战-用node-koa2-mysql-bootstrap搭建一个前端论坛

热门文章

  1. ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
  2. Ubuntu 16.04 安装JDK
  3. 51nod 1421 最大MOD值
  4. 几个前端时间插件总结
  5. Android中Activity的四种启动方式
  6. Ubuntu 下连接Github
  7. DirectX10一变换(三)
  8. WebBrowser页面与WinForm交互技巧
  9. 火车头下载文件并发布到木翼下载系统
  10. LINQ从方法中返回查询