在Servlet中实现页面重定向
实现页面重定向主要应用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中实现页面重定向相关推荐
- servlet中实现页面跳转return “r:”和return “f:
servlet中实现页面跳转return "r:"和return "f:"的区别和作用 2015-07-28 14:22741830480 | 浏览 48 次 ...
- 在Servlet中实现页面转发
在Servlet中实现页面转发,使用的是RequestDispatcher对象的forward()方法,可以在Servlet中通过forward()方法将当前的请求转发到其他Web组件 index.j ...
- PartialView中的页面重定向
在MVC的每个action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为view或者是一个PartialView,前台是一个全整页面,后台是页面的一部分. 在以A ...
- Servlet中转发和重定向的路径问题以及表单提交路径问题
一.请求转发与响应重定向的种类 有两种方式获得Servlet 转发对象(RequestDispatcher):一种是通过HttpServletRequest的getRequestDispatcher( ...
- HTML、JSP、Servlet中的相对路径和绝对路径 页面跳转问题
HTML.JSP.Servlet中的相对路径和绝对路径 前提: 假设你的Http地址为http://192.168.0.1/,你的web应用为test,path="/test",那 ...
- java servlet 转发和重定向_JavaWeb(一)Servlet中乱码解决与转发和重定向的区别
前言 前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一.request请求参数出现乱码问题 1.1.get请求 1)乱码示例 get请求的参数是在u ...
- jsp 跳到servlet路径_想打开一个jsp的页面就跳转到servlet中去,并向servlet传值。用什么跳转...
是打开就跳转,不用form提交,也不用超链接. 如果我的xml中servlet的url是:/main 我在JSP中想要跳转到servlet,并且传值到servlet,我知道表单可以这样写: 超链接可以 ...
- Django框架(9.Django中的配置使用MySQL数据库以及页面重定向)
ORM框架简介 ORM框架还可以通过方便的配置就可以进行数据库的切换 进入虚拟环境,创建一个新的项目,django-admin startproject test2 (test2为项目名) 创建好 ...
- servlet中重定向后别忘了return
Servlet 中重定向有两种方法: 1, RequestDispatcher reqdis = req.getRequestDispatcher("/error.jsp"); r ...
最新文章
- SAP MM MM17里不能修改物料主数据'Purchasing Value Key'字段值?
- Exchange2010 控制台提示您的权限不足,无法查看此数据
- cocos2d-x-3.1 win32程序-初识源代码(coco2d-x 学习笔记二)
- 初入react -01
- “熊猫烧香”式的病毒营销
- Java中删除文件、删除目录及目录下所有文件
- hadoop 传感器数据_读取模式错误,计算引擎操作复杂……面对Hadoop这些问题该如何应对?...
- 递归函数时间复杂度分析
- 隐马尔可夫模型(五)——隐马尔可夫模型的解码问题(维特比算法)
- 重庆市计算机一级考试2015,2015年计算机一级考试试题及答案
- bochs core教程linux,ubuntu14.04中安装配置bochs详解(二)
- linux环境下pandas库的安装,Pandas库的基本使用 pip安装 Series DataFrame
- 某度起诉“文库下载神器”,索赔300万
- php中表格的高度怎么改,ppt表格行高调整不了怎么办
- xlsx表格怎么筛选重复数据_excel表格中如何筛选重复数据
- ORAN C平面 Section Type 6
- 茅台nfc显示服务器临时维护,茅台酒使用手机NFC扫描瓶盖辨别真伪方法
- javascript彩色喷泉
- java中文处理学习:Hello Unicode
- node项目实战-用node-koa2-mysql-bootstrap搭建一个前端论坛
热门文章
- ​​​​​​​CV:利用cv2(加载人脸识别xml文件及detectMultiScale函数得到人脸列表)+keras的load_model(加载表情hdf5、性别hdf5)并标注
- Ubuntu 16.04 安装JDK
- 51nod 1421 最大MOD值
- 几个前端时间插件总结
- Android中Activity的四种启动方式
- Ubuntu 下连接Github
- DirectX10一变换(三)
- WebBrowser页面与WinForm交互技巧
- 火车头下载文件并发布到木翼下载系统
- LINQ从方法中返回查询