`

防止直接输入URL进入系统

 
阅读更多

***************防止直接输入URL进入系统*****************************

package org.hs.common.filter;

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;
import javax.servlet.http.HttpSession;

public class AuthFilter implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest servletRequest,
			ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		/**
		 * 1,doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括*
		 * 表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过*
		 * 滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
		 */
		HttpServletRequest request = (HttpServletRequest) servletRequest;
		/**
		 * 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中*
		 * 无法得到的方法,就要把此request对象构造成HttpServletRequest
		 */
		HttpServletResponse response = (HttpServletResponse) servletResponse;
		String currentURL = request.getRequestURI();
		System.out.println("currentURL::"+currentURL);
		// 取得根目录所对应的绝对路径:
		String targetURL = currentURL.substring(currentURL.indexOf("/", 1),
				currentURL.length());
		System.out.println("targetURL:"+targetURL);
		// 截取到当前文件名用于比较
		HttpSession session = request.getSession(false);
		if (!"/jxkh/login.jsp".equals(targetURL)) {// 判断当前页是否是重定向以后的登录页面页面,如果是就不做session的判断,防止出现死循环
			if (session == null || session.getAttribute("login_user") == null) {
				// *用户登录以后需手动添加session
				System.out.println("request.getContextPath()="
						+ request.getContextPath());
				response.sendRedirect(request.getContextPath() + "/jxkh/login.jsp");
				// 如果session为空表示用户没有登录就重定向到login.jsp页面
				return;
			}
		}
		// 加入filter链继续向下执行
		filterChain.doFilter(request, response);
		/**
		 * 调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作* 为它
		 * 的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另*
		 * 一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
		 */
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}
分享到:
评论

相关推荐

    WEB考勤系统

    对了安装时候在WEB上安装,直接输入URL,例如:http://127.0.0.1/jobmng/setup.asp初...业拿?郑┖呛恰?/a>本套程序版本是ACCESS版,也是当初设计这套程序的最早版。有一些**能还没有完善,例如请假、出差等**能。本...

    STCMS 音乐系统 v2.7.rar

    支持歌词,完全支持lrc歌词,用户可以直接上传歌词文件或者直接输入lrc歌词文本。每张专辑的音乐支持内部排序。 5、强大的文件上传和留言管理功能。系统上次的每一个文件都入库,用户可以方便上次和删除。对专辑、...

    冠龙科技企业网站管理系统V8.2

    可有两种方法进入后台管理页面:直接在浏览器的地址栏中输入管理登录的页面地址:admin/login.asp。 默认管理员:admin 密码:admin 请登录后立即修改管理员用户名及密码。 <br>2) 不能运行冠龙科技...

    TuziCMS企业网站管理系统 v3.0.zip

    2、我们阅读并接受此协议,进入下一步 [也可以直接输入地址http://localhost/install/ (对于再次安装可以用这个)]; 3.然后进入1检测环境,检测服务器环境是否满足安装TuziCMS,满足则点击“下一步”按钮; 4、...

    柯林net9.0最新破解版

    7.发贴增加UBB方法:[buyrmb=RMB数]输入内容[/buyrmb] 直接用直实的RMB购买贴。 8.WAP在线支付,由于支付宝升级将WAP支付宝和网银合在一起了。所以本系统也一起合并了。 网银支付可以在WAP支付宝页面中找到:快捷...

    C++网络爬虫项目

    进程入口函数在进行必要的命令行参数处理和系统初始化以后,进入网络爬虫 的多路输入输出循环,一旦发现某个与服务器相连的套接字有数据可读,即创WEBCRAWLER 网络爬虫实训项目 10 建接收线程,后者负责抓取页面内容...

    精通AngularJS part1

    使用基于文本的输入(text、textarea、e—mail、URL、number)143 使用checkbox输入144 使用radio输入145 使用select输入145 提供简单的字符串options145 利用ngOptions指令提供动态options146 select指令与空...

    网管教程 从入门到精通软件篇.txt

    Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

    LeadBBS v2.10 论坛.rar

    113.支持论坛密码访问功能,进入此类论坛需要输入密码,并自动保存访问cookie,并加入防止恶意破坏密码功能 114.支持设定是否允许多媒体标签,头像,图像,是否允许HTML等功能 115.允许设定过滤的内容,以|符号间隔 ...

    《程序天下:JavaScript实例自学手册》光盘源码

    19.16 防止JavaScript文件被其他站直接引用 19.17 检查机器是否安装Word 19.18 打印当前页 19.19 打印预览 19.20 隐藏不想打印的页面内容 19.21 使用ExecWB直接打印 19.22 动态绑定XML文件 19.23 Kill Excel的进程 ...

    程序天下:JavaScript实例自学手册

    19.16 防止JavaScript文件被其他站直接引用 19.17 检查机器是否安装Word 19.18 打印当前页 19.19 打印预览 19.20 隐藏不想打印的页面内容 19.21 使用ExecWB直接打印 19.22 动态绑定XML文件 19.23 Kill Excel的进程 ...

    IE 助手

     对网络实名进行增强,可以实现在地址栏输入实名后直接进入实名标识的网站,实名查找数据分别来自3721、百度搜索以及CNNIC网络中心。但没有找到实名时会采用用户定义的搜索引擎进行搜索。IE助手允许用户定义...

    LeadBBS v2.05 论坛.rar

    94.自动判断用户头像的url地址,如果是本地链接,则自动判断本地图像是否存在, 图像格式和图像大小 95.允许管理员设定论坛名称 96.允许论坛安装主页网址自动获取,安装目录需要另外设定 97.允许设定图像上传目录 ...

    多多校园论坛,很经典很强大

    1 解压后,将文件上传到虚拟空间或在本机IIS设置好后(有关IIS的设置请查看多多通或在百度上搜索一下一定会有的),即可直接访问 index.asp ,img 目录下的1、2、3、4、5目录是模版目录,管理员在后台版块管理设置,...

    c#学习笔记.txt

    防止变量被垃圾回收器重定位。 (5) lock lock 关键字将某个语句块标记为临界区。 6. 方法参数 如果为没有 ref 或 out 的方法声明一个参数,则此参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程...

    MicroPython智能节日灯DIY制作-电路方案

    将电路板URL设置为用于访问WebREPL的URL(如果您不确定,则保留默认值,这是大多数WebREPL连接使用的)。 在密码字段中输入您在设置和访问WebREPL时设置的密码。 您可以使用页面上的字段控制灯光的动画: 动画 - 此...

    测试培训教材

    4.输入QC的URL地址 5.输入项目管理员的名称和密码 6.选择要导入需求的域和项目 7.选择第一项,导入需求。请注意:此工具可以同时支持案例导入和缺陷导入,如果需要导入的是案例,应选择Tests;如果需要导入的是缺陷,...

    超级有影响力霸气的Java面试题大全文档

     forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。...

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

Global site tag (gtag.js) - Google Analytics