`

给JSP页面加过滤器

阅读更多
很简单的一个功能,如果用户没有登录之前访问其他页面时转到登录页面.用过滤器来实现.
一、在web-xml 中添加:
<filter><!-- 是否登录用户的验证filter -->
  	<filter-name>author</filter-name>
  	<filter-class>lw.filter.AuthorFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/grsz/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/khcx/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/khpf/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/tjbb/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/tjjs/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/main.jsp</url-pattern>
  </filter-mapping>
  <filter-mapping>
  	<filter-name>author</filter-name>
  	<url-pattern>/top.jsp</url-pattern>
  </filter-mapping>

实现类的代码如下:
package lw.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 AuthorFilter  implements Filter  {
	
	private  String strRedirect = "";

	protected FilterConfig filterConfig;

	public void destroy() {
		// TODO Auto-generated method stub
		this.filterConfig = null;
	}

	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub	
		HttpServletRequest hreq = (HttpServletRequest) req;

		HttpServletResponse hres = (HttpServletResponse) res;
	
		HttpSession session = hreq.getSession(true);

		String isLogin = "";
		strRedirect  =  "http://"  +  hreq.getServerName()  +  ":"  +  hreq.getServerPort()  +hreq.getContextPath()+ "/login.jsp";  
		System.out.println("web  URL  路径:"+strRedirect);
		try {
			if (null != session.getAttribute("isLogin")) {
				isLogin = session.getAttribute("isLogin").toString();
			}
			if (isLogin.equals("true")) {
				System.out.println("验证通过");
				chain.doFilter(req, res);

			} else {
	
				hres.sendRedirect(strRedirect);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}



	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		this.filterConfig = arg0;
	}

}


获得login路径的过程:
"http://"  +  hreq.getServerName()  +  ":"  +  hreq.getServerPort()  +hreq.getContextPath()+ "/login.jsp"; 
分享到:
评论
2 楼 yzh54ak 2009-02-11  
up

 
1 楼 zq0459 2008-03-18  
不要太迷人

相关推荐

    jsp中的过滤器(含例子)

    总的来说,`JSP`中的过滤器是一个强大的工具,它能够帮助我们处理请求和响应,实现跨页面的通用功能,提升应用程序的安全性和用户体验。在实际开发中,熟练掌握过滤器的使用,将大大提升我们的开发效率和代码质量。

    jsp字符过滤器

    然而,为了保证应用程序的安全性和稳定性,通常需要对用户输入的数据进行过滤和验证,这就是JSP字符过滤器的作用。字符过滤器主要用于防止恶意用户通过提交特殊字符或者执行SQL注入、跨站脚本攻击(XSS)等行为,保护...

    JavaWeb页面过滤器之编码过滤

    在给定的标题“JavaWeb页面过滤器之编码过滤”和描述中,我们可以深入探讨JavaWeb中的编码过滤器,以及如何在MyEclipse 8.5环境下开发和应用这样的过滤器。这个过滤器不仅适用于JSP页面,也适用于Servlet和HTML等Web...

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

    综上所述,使用servlet+jsp实现过滤器,可以有效地防止未登录用户访问受保护页面。开发者可以灵活地定义过滤器的行为,并且通过配置文件将过滤器与具体的URL模式关联起来,实现复杂的权限控制逻辑。

    带过滤器的登录系统jsp+myeclipse+mysql

    标题中的“带过滤器的登录系统jsp+myeclipse+mysql”表明这是一个使用Java服务器页面(JSP)、MyEclipse集成开发环境以及MySQL数据库构建的登录系统,其中整合了过滤器(Filter)技术。这样的系统通常用于实现用户...

    jsp 过滤器中文乱码的处理

    在这个过滤器中,我们首先将请求转换为`HttpServletRequest`对象,然后调用`setCharacterEncoding()`方法设定字符编码为目标编码(如GBK或UTF-8),最后将请求传递给下一个过滤器或目标Servlet。 为了使过滤器生效...

    jsp用过滤器解决中文乱码问题的方法.docx

    jsp过滤器(Filter)是一种特殊的jsp组件,用于对jsp页面的请求和响应进行过滤和处理。jsp过滤器可以实现对请求和响应的修改、重定向、身份验证等功能。在我们的例子中,我们使用jsp过滤器来实现编码设置,以解决...

    Jsp中使用过滤器实现用户权限限制功能

    定义过滤器的`&lt;filter&gt;`标签,指定过滤器类全名,并设置过滤器的别名。然后,使用`&lt;filter-mapping&gt;`标签定义需要拦截的URL模式,如所有JSP页面或其他特定资源。 ```xml &lt;filter-name&gt;UserAuthorizationFilter ...

    jsp过滤器的使用(含一个project实例说明)

    项目名为`filter`,我们创建一个简单的登录过滤器,确保用户在访问受保护的JSP页面前已登录。首先,创建过滤器类`LoginFilter`: ```java import javax.servlet.*; import java.io.IOException; public class ...

    过滤器,Jsp开发中的避免中文乱码

    - 修改`web.xml`配置文件:为过滤器添加配置,指定过滤范围和执行顺序,例如设定URL模式来匹配所有JSP页面。 - 实现`doFilter()`方法:在过滤器的`doFilter()`方法中,可以设置请求和响应的编码方式。例如,使用`...

    springboot+jsp 使用过滤器.do

    综上所述,"springboot+jsp 使用过滤器.do"这个项目展示了如何在Spring Boot应用中集成JSP页面,并通过Maven管理项目,同时利用过滤器实现特定的HTTP请求处理逻辑。通过学习这个示例,开发者可以更好地理解Spring ...

    jsp中文乱码过滤器

    JSP中文乱码过滤器通过拦截请求和响应,统一设置字符编码,解决了JSP页面可能出现的乱码问题。理解其工作原理并正确配置,可以帮助开发者在项目中轻松应对中文乱码,提高用户体验。在实际开发中,我们还应注意其他...

    jsp+servlet登录验证过滤器

    在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...

    jsp过滤器(编码)

    它们在请求被传递到目标资源(如JSP页面)之前和之后进行拦截,可以用来执行诸如字符编码转换、权限检查等预处理和后处理操作。 在标题“jsp过滤器(编码)”中,我们关注的是如何使用过滤器来处理编码问题。在`web...

    利用过滤器解决JavaWeb(JSP)的乱码问题

    总之,解决JavaWeb中的乱码问题需要从多个层面进行考虑:设置过滤器统一请求和响应的编码,确保JSP页面的编码正确,以及在处理文件时注意文件内容的编码。通过这些方式,我们可以有效防止和解决乱码问题,提高应用...

    jsp 过滤器——解决中文乱码问题

    通过上述步骤,我们可以有效地解决JSP页面中可能出现的中文乱码问题。过滤器作为拦截器之一,在处理请求之前对数据进行预处理,能够有效解决乱码问题,并且使得后续的业务逻辑更加简洁高效。此外,还可以根据实际...

    jsp中过滤器配置实现所有过滤

    在Java服务器页面(JSP)开发中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求被处理之前或之后执行某些操作,比如字符编码转换、权限验证、日志记录等。本话题将深入探讨如何在`web.xml`配置文件中...

    如何配置Filter过滤器处理JSP中文乱码

    最后,确保在JSP页面的`&lt;head&gt;`部分设置`contentType`的`charset`值与`web.xml`中的设置保持一致,例如: ```jsp ; charset=GBK" pageEncoding="GBK"%&gt; ``` 通过以上四个步骤,你可以有效地解决JSP中文乱码...

    jsp 权限过滤器的应用

    5. **拦截与重定向**:如果用户没有足够的权限,过滤器可能会拦截请求,并重定向到登录页面或者显示一个错误消息。 6. **实例分析**:为了便于理解,文章可能提供了一个具体的案例,如“SmileOa”项目,展示如何在...

    jsp中文问题过滤器实现源码

    通过servlet过滤器来解决request的编码的设置。这个方法不需要改动原来的代码,比较好。现成的写好的过滤器代码,只要把它编译一下就可以用了.

Global site tag (gtag.js) - Google Analytics