使用过滤器验证是否登录

以前过滤器可能都只是处理下编码,这次项目中发觉其他成员都是使用过滤器来验证是否登录,然后作相应的转向,发觉真的很不错,不用写一个页面用来判断,然后在每个页面进行包含,也不需要在action中先判断是否登录了再作相应的业务逻辑处理。。。看来还是项目经验不够啊。。。
过滤器

package com.lhcard.common;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @author:陈伟
* @date:2008-5-23
*
*/
public class GeRenLoginFilter implements Filter {

private final static String[] eixt_url = { "index.jsp", "userlogin.jsp",
"relogin.jsp", "uholdcard.do", "/js", "/css", "/images",
"cgoods.do", "keywordslist.jsp", "regprotocol.jsp", "register.jsp",
"uarea.do" }; // 不用做权限判断的URL

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws ServletException, IOException {

HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
boolean haveFind = true;

// System.out.println("req.getRequestURI()==="+req.getRequestURI());

if (req.getRequestURI().indexOf(".jsp") >= 0
|| req.getRequestURI().indexOf(".do") >= 0)
haveFind = false;

for (int i = 0; i < eixt_url.length; i++) {
if (req.getRequestURI().indexOf(eixt_url[i]) >= 0) {
haveFind = true;
break;
}
}

// System.out.println("haveFind==="+haveFind);

if (!haveFind && req.getSession().getAttribute("user") == null) {
res.sendRedirect(req.getContextPath() + "/GeRen/relogin.jsp");
// System.out.println("----redirect----");
return;
}
chain.doFilter(req, res);
}

public void init(FilterConfig filterConfig) throws ServletException {
}

public void destroy() {
}

}


web.xml下的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<description>系统过滤器定义</description>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.lhcard.common.SetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
</filter>
<filter>
<filter-name>HibernateSessionFilter</filter-name>
<filter-class>
com.lhcard.common.HibernateSessionFilter
</filter-class>
</filter>
<filter>
<filter-name>FaKaRenLoginFilter</filter-name>
<filter-class>
com.lhcard.common.FaKaRenLoginFilter
</filter-class>
</filter>
<filter>
<filter-name>ShangHuLoginFilter</filter-name>
<filter-class>
com.lhcard.common.ShangHuLoginFilter
</filter-class>
</filter>
<filter>
<filter-name>YunYingLoginFilter</filter-name>
<filter-class>
com.lhcard.common.YunYingLoginFilter
</filter-class>
</filter>
<filter>
<filter-name>ChiKaRenFilter</filter-name>
<filter-class>
com.lhcard.common.ChiKaRenFilter
</filter-class>
</filter>
<filter>
<filter-name>GeRenLoginFilter</filter-name>
<filter-class>
com.lhcard.common.GeRenLoginFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>HibernateSessionFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>FaKaRenLoginFilter</filter-name>
<url-pattern>/FaKaRen/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ShangHuLoginFilter</filter-name>
<url-pattern>/ShangHu/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>YunYingLoginFilter</filter-name>
<url-pattern>/YunYing/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ChiKaRenFilter</filter-name>
<url-pattern>/ChiKaRen/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>GeRenLoginFilter</filter-name>
<url-pattern>/GeRen/*</url-pattern>
</filter-mapping>

<description>STRUTS的ActionServlet配置</description>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml,
/WEB-INF/struts-config-chikaren.xml,
/WEB-INF/struts-config-geren.xml,
/WEB-INF/struts-config-shanghu.xml,
/WEB-INF/struts-config-yunying.xml,
/WEB-INF/struts-config-fakaren.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>getalllist</servlet-name>
<servlet-class>com.lhcard.common.GetAllList</servlet-class>

<load-on-startup>2</load-on-startup>
</servlet>

<!-- FCKeditor -->
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>
com.fredck.FCKeditor.connector.ConnectorServlet
</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<param-value>/UserFiles/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>


<servlet>
<servlet-name>SimpleUploader</servlet-name>
<servlet-class>
com.fredck.FCKeditor.uploader.SimpleUploaderServlet
</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<param-value>/UserFiles/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFile</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFile</param-name>
<param-value>
php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi
</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsImage</param-name>
<param-value>jpg|gif|jpeg|png|bmp</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsImage</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFlash</param-name>
<param-value>swf|fla</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFlash</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>
/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector
</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>
/FCKeditor/editor/filemanager/upload/simpleuploader
</url-pattern>
</servlet-mapping>


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<description>页面标签的加载</description>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/app.tld</taglib-uri>
<taglib-location>/WEB-INF/app.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>
/WEB-INF/struts-nested.tld
</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>
/WEB-INF/struts-template.tld
</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>

<taglib>
<taglib-uri>/FCKeditor</taglib-uri>
<taglib-location>/WEB-INF/FCKeditor.tld</taglib-location>
</taglib>
</jsp-config>
<session-config>
<session-timeout>720</session-timeout>
</session-config>
</web-app>


过滤器验证用户是否已经登录 用户登录验证,当用户成功登录后,将用户信息存放在session中,然后以后的操作中,都使用过滤器进行验证用户是否登录,这样子会减少很多的代码开发量! 立即下载

相关推荐

servlet+jsp实现过滤器 防止用户未登录访问

主要为大家详细介绍了servlet+jsp实现过滤器,防止用户未登录访问,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

过滤器检验用户是否登录

<br />过滤器可以实现用户身份验证的功能,如果用户没有登录,则跳转到登陆页面:<br />本例实现:<br /> <br />过滤器类:<br /> <br />package com.start.util;<br />import javax.servlet.*; <br />import javax.servlet.http.HttpServletRequest; <br />import javax.servlet.http.HttpServletResponse; <br />import ja

javazw123的专栏 6100

卫星载荷应用方案

本文将从技术和应用层面探讨卫星载荷的应用方案,分析各个领域的特点和挑战,以期为卫星载荷的应用提供一定的指导和参考。卫星载荷应用方案涵盖了通信、地球观测、气象预报、导航定位等诸多领域在每一个领域中,都存在着不同的技术挑战和应用需求。随着技术的进步和需求的变化,卫星载荷应用方案将不断发展和完善,为人类社会的进步和发展做出更大的贡献。用户可以通过接收多颗卫星的信号,计算自身的位置和速度信息。在覆盖扩展方面,可以采用多星座、MEO、GEO 等不同轨道高度的卫星布局,结合卫星的特点和应用需求,实现覆盖范围的扩展。

muyangjun的专栏 904

javaweb过滤器filter-判断用户是否登录

javaweb过滤器filter-判断用户是否登录

caodongfang126的博客 8504

固定资产报废的损失鉴定怎么做?

在社会生产的日常中,企业经常会遇到固定资产报废的损失鉴定,那么怎么去做鉴定?哪些情况下能申请固定资产报废损失鉴定呢? 今天,华碧鉴定就和大家说一说固定资产报废损失鉴定那些事儿。 符合下列条件之一的固定资产可申请报废: 1、使用年限过长,功能丧失,完全失去使用价值,或不能使用并无修复价值的; 2、产品技术落后,质量差,耗能高,效率低,已属淘汰且不适于继续使用,或技术指标已达不到使用要求的; 3、严重损坏,无法修复的或虽能修复,但累计修理费已接近或超过市场价值的; 4、主要附件损坏,无.

weixin_50362670的博客 2116

3dsMax高效导入OSGB倾斜模型的3个关键步骤与插件应用

本文详细解析了在3dsMax中高效导入OSGB倾斜模型的三个核心步骤:建立索引、处理贴图路径以及选择合适的插件。针对导入过程中常见的模型崩溃、贴图丢失和操作卡顿问题,提供了从数据结构理解到插件选型的实战解决方案,帮助用户实现大规模实景模型在3dsMax中的流畅导入与编辑。

weixin_29238147的博客 469

过滤器可以实现用户身份验证的功能,如果用户没有登录,则跳转到登陆页面:

过滤器可以实现用户身份验证的功能,如果用户没有登录,则跳转到登陆页面: 本例实现:   过滤器类:   package com.start.util; import javax.servlet.*;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpSe

tfy1332的专栏 1万+

高通8155车机系统里,安卓和QNX是怎么‘打电话’的?聊聊HAB通信框架那些事

本文深入解析了高通8155车机系统中HAB通信框架如何实现安卓与QNX的高效协同。作为异构系统的通信桥梁,HAB通过共享内存和中断信号机制,在多媒体数据传输中展现出零拷贝、硬件加速等优势,成为智能座舱实现实时性与生态丰富性平衡的关键技术。

weixin_42715608的博客 382

过滤器(filter)判断用户是否登录

一、action中的关键代码 HttpSession session=request.getSession(); String sqlPerm="select * from user_perm where user_id ='"+nuser.get("login_name")+"'"; Map perm=DbMaster.getDataRow("YKT", sqlPerm

longtingjing的专栏 3143

win2012 r2 + IIS8.5 伪静态设置脚本映射

win2012 r2 + IIS8.5 伪静态设置脚本映射,网站用的.net fromwork 2.0 ,应用程序池设置了32位支持

xueking87的专栏 3240

【32】C# WinForm入门到精通 ——打开文件OpenFileDialog 【属性、方法、事件、实例、源码】

本文介绍了WinForm开发中OpenFileDialog控件的关键属性及其应用。OpenFileDialog是.NET Framework提供的文件对话框控件,主要用于选择、打开文件操作。文章详细讲解了11个核心属性:AddExtension(自动补全扩展名)、AutoUpgradeEnabled(外观升级)、CheckFileExists/CheckPathExists(文件/路径存在验证)、DefaultExt(默认扩展名)、DereferenceLinks(解析快捷方式)、FileName/File

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1534

实现登录验证的过滤器

             ※需求             1.如果登录了,则直接放行       &...

Monster丶ZF的博客 579

27、物联网中的量子密钥分发:安全通信新范式

本文探讨了物联网(IoT)快速发展所带来的安全挑战,并提出量子密钥分发(QKD)作为应对新兴威胁的新范式。文章详细介绍了QKD的基础原理、BB84协议的实现流程以及其在物联网中的应用前景,同时强调了安全专业人员提升技能、制定标准化指南以及跨学科合作的重要性。通过利用量子力学特性,QKD能够提供更高的通信安全性,抵御量子计算等未来威胁,为物联网的安全发展提供保障。

tequila的博客 157

通过过滤器实现登录验证

##需求 访问案例的资源。验证其是否登录 如果登录了,则直接放行。 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。 #### 分析 ![](assets/markdown-img-paste-20180804152603251.png) #### 代码实现 ```java /** * 登录验证的过滤器 */ @WebFilter("/*") public cla...

今晚一定要早睡 873

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java用过滤器验证登录框架_jsp实现登录验证的过滤器

本文实例为大家分享了jsp实现登录验证的过滤器,供大家参考,具体内容如下1.新建一个Dynamic Web Project项目,里面新建1个filter文件、1个servlet文件和2个jsp文件,整体的框架如图所示:2.LoginFilter.java里面的代码如下所示:package filter;import java.io.IOException;import java.io.PrintW...

weixin_39743414的博客 585

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java登录验证的过滤器

package cn.itcast.web.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * 登录验证的过滤器 */ @WebFilter("/*") public class LoginFilter implements Filter {

weixin_44547914的博客 1287

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

过滤器(登录验证)

文章目录登录验证定义过滤器 登录验证 在开发中如果要操作某些数据的时候必须保证用户是登录状态下,否则不能操作,比如要实现删除用户,修改用户信息,查看用户列表,查看部门列表,需要登录验证,这种验证可以通过过滤器统一处理 定义过滤器 package com.xie.filter; import java.io.IOException; import javax.servlet.Filter; im...

慕北丶 3283

使用过滤器做登录验证

刚开始学习Java web做项目的时候我都没有考虑到安全这方面的,毕竟当时太年轻,刚学不懂。后来再重新看回原来做的小项目时觉得被自己蠢哭了,后台管理做了一个登录,但是却没有做登录的验证,然后直接知道后台的方法地址就可以进入后台(不用登录),这样子我做的登录有毛线用啊! 后来看到几个同学做的项目时我都会去捣鼓一下看看他们有没有做这一块工作,一弄,真像年轻的我啊,他们也是没有做登录的安全验证的,哈哈

追梦少年ing 2251

登录验证的过滤器Filter

package cn.itcast.web.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * 登录验证的过滤器 */ @WebFilter("/*") public class LoginFilter implements Filter {

Mr.田的博客 575

利用过滤器对登录验证

很多web项目没登录就可以直接访问到其他jsp或者servlet,显然这是不合法的。创建登录验证的servlet,只有登录了才可以访问到该项目其他页面 如未登录时访问任意页面都会直接跳转到登录界面要求登录。 首先是登录页面,里面有个出错显示的信息框(这个页面可不管,只要点击登陆后会跳转到对应的登录servlet就行) <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> &

qq_45100706的博客 1004

使用过滤器Filter做一个简单的登录验证

1.需求 要做简单的登录验证,只有特定的路径需要登录其他路径不需要(一旦配置不会修改,变化很小),且路径是可配置的。参考了其他文章,做了一个简单的登录验证。 2.总体的思路. 在属性文件中填写需要过滤的路径,在过滤器中初始化时候加载路径且储存,防止每次加载。在过滤器中对路径进行判断。 3.代码 filterUrls.properties 如下: #url判断过程是将实际路径根据“/” ...

guohangfei001的博客 2962

java登录验过滤器_Java登录验证过滤器

基本概念1、What-- 过滤器什么?Java中servlet过滤器是动态拦截请求和响应,以便变换或使用请求和响应中的信息。当客户端请求服务器上的某些资源时,过滤器可以对这些请求进行拦截,先执行过滤器中的一段代码,然后再将请求交给相应的servlet或jsp去处理。比如我们每次从request对象中读取数据时,都要设置request的字符编码,这时,我们可以将这些频繁使用的公共代码,放在过滤器中,...

weixin_35315373的博客 714

Java web 过滤器 Filter 验证登录界面

doFilter()方法中定义的是ServletRequest类型的对象,那么要想取得session,则必须进行向下转型,将ServletRequest变为HttpServletRequest接口对象,才能通过getSession()方法取得session对象。 验证 用户名: zhangsan 密码: lisi 过滤器采用注解的方式,只过滤文件夹test里的文件 loginfilter.java package com.Filter; import java.io.IOException; impor

BADReamer的博客 1601

登录验证过滤器

在一个JavaWeb项目中,对于某些特殊的资源,需要登录才能使用【结算】、【下载】、【评论】对于类似于这些功能,需要先登录,然后才能使用先检查是否登录如果没有登录,这养的资源不能使用强制登录否则:可以使用之前的做法:如home.jsp资源,需要验证是否登录统一抽取了一个jsp,checkLogin.jsp,需要控制用户是否登录的jsp中使用标签引入/page/mymood/delete.do | Servlet资源 checkLogin...

FairyKunKun的博客 680

如何使用过滤器进行登录验证

一:实现思路 (1)将request强转成HttpServletRequest,这样才有getRequestURI()方法 (2)获取资源访问路径 (3)判断uri中是否有登录选项,要注意排除掉css/js/图片/验证码等资源 (4)如果包含登录选项,直接放行,如果不包含,则需要验证用户是否登录 (5)从session中获取user,登录了就放行,没有登录就转发到登录页面 二:代码实现 @WebFilter("/*") public class LoginFilter implements Filter

Apple_Andy的博客 1122
上一篇: EL自定义函数
下一篇: swing(二)-----五个可执行jar文件
weiweichen
博客等级 码龄19年 10粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值