验证用户身份Filter过滤器
通过过滤器对一批页面或Servlet统一进行身份验证
运行本例,直接进入loginsuccess.jsp页面,会弹出提示信息
过滤器实现类FilterLogin.java
public class FilterLogin extends HttpServlet implements Filter {private FilterConfig filterConfig;@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)throws IOException, ServletException {HttpSession session=((HttpServletRequest)request).getSession();response.setCharacterEncoding("utf-8");if(session.getAttribute("user")==null){ //判断session是否由user这个对象PrintWriter out=response.getWriter(); //创建一个输出流//如果为空则通过javascript脚本输出提示并跳转到index页面out.println("<script language=javascript>alert('您还没有登录');window.location.href='../index.jsp';</script>");}else{filterChain.doFilter(request, response);}}@Overridepublic void init(FilterConfig arg0) throws ServletException {this.filterConfig=filterConfig;}}
JavaBean类User
public class User {
private String username;
private String password;
public String getUsername() {return username;
}
public void setUsername(String username) {this.username = username;
}
public String getPassword() {return password;
}
public void setPassword(String password) {this.password = password;
}
}
用户登录页面index.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function checkEmpty(){if(document.form.name.value==""){alert("用户名不能为空");document.form.name.focus();return false;}if(document.form.password.value==""){alert("密码不能为空");document.form.password.focus();return false;}
}
</script>
</head>
<body><h3> </h3><p align="center">使用过滤器身份验证</p><form name="form" method="post" action="loginresult.jsp" onSubmit="return checkEmpty()"><table width="220" border="1" align="center" cellpadding="0" cellspacing="0" cgcolor="808080"><tr><td align="center">用户名</td><td><input type="text" name="name"></td></tr><tr><td align="center">密码</td><td><input type="password" name="password"></td></tr><tr><td align="center" colspan="2"><input type="submit" name="Submit" value="登录"><input type="submit" value="退出"></td></tr></table>
</body>
</html>
创建loginresult.jsp页面,在user对象的session中执行跳转到下一页面
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page import="com.cn.zj.Filter.User" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String password=request.getParameter("password");
User user=new User();
user.setUsername(name);
user.setPassword(password);
session.setAttribute("user",user);
response.sendRedirect("filter/loginsuccess.jsp");
%>
</body>
</html>
创建loginsuccess.jsp页面
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.cn.zj.Filter.User"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用过滤器身份验证</title>
</head>
<body><div align="center"><table width="333" height="285" cellpadding="0" cellspacing="0"><tr><td align="center"><p>您己成功登录</p><p><br><a href="backtrack.jsp">返回</a></p></td></tr>
</table>
</div></body>
</html>
backtrack.jsp页面
<%
session.invalidate();
out.print("<script language='javascript'>window.location.href='../index.jsp';</script>");
%>
web.xml文件配置
<welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
<filter><filter-name>filterUSer</filter-name><filter-class>com.cn.zj.Filter.FilterLogin</filter-class>
</filter>
<filter-mapping><filter-name>filterUser</filter-name><url-pattern>/filter/*</url-pattern>
</filter-mapping>
验证用户身份Filter过滤器相关推荐
- shiro中的验证用户身份认证以及授权
目录 1.运用shiro进行用户身份认证: 1.1导入基于Shiro的数据库脚本 1.2.引入依赖(shiro-1.4.1) shiro-core shiro-web shiro-spring 1 ...
- java ladp用户认证_java – LDAP:如何使用连接详细信息验证用户身份
我无法使用LDAP对用户进行身份验证.我有以下细节: URL=ldap://10.10.10.10:389 LDAP BASE:DC=lab2,DC=ins LDAP Bind Account: CN ...
- 华为帐号服务升级,助力应用快速验证用户身份
目前,在电商.金融.社交等多种行业的APP中,"帐号+短信验证码"已成为验证用户身份的主流方式.短信验证具有易操作.安全性高.成本低的优势,在用户注册.登录.绑定手机号等许多场景中 ...
- 通过耳道形状来验证用户身份?苹果:未来,AirPods可能实现
据根据外国名媒体报道称:苹果公司正在考虑为新款AirPods加入"生物识别技术",让未来的AirPods能够"通过耳道形状"来识别用户身份. 目前,大多数的苹果 ...
- 用WSE在Web服务中验证用户身份
一.Web服务安全与WS-Security 毫无疑问,SOAP和XML Web服务在交互操作和标准上已经完全改变了电子商务领域的格局. 然而直到最近,在Web服务技术领域仍然存在着一些缺陷,那就是处理 ...
- 用户身份验证最佳做法清单
用户身份验证是每个Web应用程序共享的功能. 我们已经实现了很多次,所以很早以前就应该完善它. 然而,错误无时无刻不在发生. 造成这种情况的部分原因是,可能出问题的清单很长. 您可能会错误地存储密码, ...
- 身份证验证 校验码_用户身份验证最佳做法清单
身份证验证 校验码 用户身份验证是每个Web应用程序共享的功能. 我们已经实施了很多次了,所以早就应该完善它了. 然而,错误无时无刻不在. 造成这种情况的部分原因是,可能出错的事情列表很长. 您可能会 ...
- 使用护照js进行用户身份验证
介绍Passport.js (Introducing Passport.js) Passport.js is an authentication middleware. It attempts to ...
- 构建具有用户身份认证的 React + Flux 应用程序
序言:这是一篇内容详实的 React + Flux 教程,文章主要介绍了如何使用 API 获取远程数据以及如何使用 JSON Web Tokens 进行用户身份认证.在阅读本文之后,我一直使用文章介绍 ...
最新文章
- jmeter名词解释之聚合报告
- impala jdbc驱动执行impala sql的一个坑(不支持多行sql)
- python打包exe之打包深度学习模型踩坑记录及其解决办法。
- PAI和Hologres的个性化推荐最佳实践
- C#温故而知新学习系列之XML编程—Xml写入器XmlWriter类(三)
- Linux文件目录基础笔记
- hibernate自定义校验器使用(字段在in范围之内)
- linux csi驱动添加,CSI接口Camera驱动学习
- 手机APP的秘密,看的一清二楚!
- hugo_如何将Hugo用于教室的开源CMS
- 正则表达式**************************
- 解决atom安装emmet的问题
- OLED SH1108 STM32 8080接口实际使用
- MATLAB中绘制椭圆
- C++层次分析法一致性检验
- 电脑重装系统需要多少钱?
- Docker Dockerfile 验证Docker内部使用jmap报错问题解决
- 12.6学习笔记 HTML5表单元素/嵌入图片/视频(未完)
- h2 使用liquibase的changelog表格创建不成功
- 微信小程序从零开始开发步骤(一)
热门文章
- 成功解决cx_Freeze打包的时候出现importError:can not import name idnadata
- os_mem.c(全)
- PHP-fpm 优化问题
- ORACLE纯SQL实现多行合并一行
- (线段树)Just a Hook -- hdu -- 1689
- 在多台服务器上简单实现Redis的数据主从复制
- stm32f103rb升级到stm32f103rc时代码移植注意事项
- 个推通知栏修改_浙大一院五一劳动节放假通知!手机办住院手续!还有这些攻略不能错过!...
- C++ Primer 5th笔记(chap 17 标准库特殊设施)regex_replace
- C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板特例化