可以在字符集过滤器的基础上再增加一个过滤器实现对用户权限的控制,即只有用户登录以后才能进行页面的访问,这样就实现了对用户访问权限的控制。
首先完成权限过滤器的代码。
package myproj.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 LoginFilter extends HttpServlet implements Filter {
//如果没有登录,就返回到指定页面
String backUrl;
public void destroy(){
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException
{
HttpServletRequest httpRequest=(HttpServletRequest)request;
HttpServletResponse httpResponse=(HttpServletResponse)response;
//获取Session对象
HttpSession session = request.getSession();
//如果没有登录就中断过滤器链,返回到登录页面
if(session.getAttribute("user") == null)
{
response.sendRedirect(backUrl);
}
else
chain.doFilter(request,response);
}
public void init(FilterConfig filterConfig)hrows ServletException
{
//从过滤器的配置中获得初始化参数,如果没有就使用默认值
if(filterConfig.getInitParamter("backurl")!=null)
{
backUrl = filterConfig.getInitParamter("backurl");
}
else
backUrl = "index.jsp";
}
然后在web.xml中增加过滤器配置和过滤器的关联配置
<!--过滤器配置-->
<filter>
<filter-name>Encoder</filter-name>
<filter-class>myproj.filter.SetCharacterEncodingFilter</filter-class>
<!--初始化参数-->
<init-param>
<param-name>newcharset</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>myproj.filter.LoginFilter</filter-class>
<!--初始化参数-->
<init-param>
<param-name>backurl</param-name>
<param-value>index.jsp</param-value>
</init-param>
</filter>
<!--过滤器与URL关联-->
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<!--如果没有登录而直接通过url直接访问testfilter.jsp将会返回登录页面-->
<url-pattern>/testfilter.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Encoder</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在HTTP请求到达...过滤器提供了一种灵活的方式来增强应用程序的功能,无需修改原有的Servlet代码,对于权限控制、日志记录、性能监控等场景非常实用。
4. **权限过滤器**:根据用户的权限控制访问。过滤器可以检查用户的角色,如果用户不具备访问某个资源的权限,返回错误信息或重定向到无权限页面。 5. **GZIP压缩过滤器**:提高网站性能,通过压缩HTTP响应内容减少...
在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...
Servlet过滤器是Java Web开发中的强大工具,通过简单的配置,即可实现对请求和响应的灵活控制。在Eclipse中创建并实现Servlet过滤器,可以让你更好地理解和应用这一特性,提升Web应用的功能和安全性。本教程提供的...
例如,Spring Security就是通过过滤器实现的安全框架,它可以拦截请求,进行身份验证和授权。 总结,Servlet过滤器是Java Web开发中不可或缺的一部分,它为我们提供了一种灵活、可扩展的方式来处理HTTP请求和响应。...
1. **灵活性高**:过滤器可以被指定与特定的URL关联,仅在客户请求访问该URL时激活,实现精确控制。 2. **可串联性**:多个过滤器可以串联起来,形成链式结构,共同处理请求和响应,增强应用的层次化和模块化。 3. *...
本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的JSP页面或目录进行权限控制。 ### Servlet过滤器简介 Servlet过滤器是一种在请求到达目标资源(如Servlet或JSP页面)...
本实例展示了一个基本的Servlet过滤器实现方式,通过对请求的预处理,有效地增强了系统的安全性。这种做法不仅能够简化业务逻辑,还能提高代码的可读性和可维护性。在实际项目开发中,可以根据具体需求进一步扩展...
在Web开发中,保护页面安全,避免用户未登录就访问敏感页面是常见的需求。使用servlet和jsp技术时,...开发者可以灵活地定义过滤器的行为,并且通过配置文件将过滤器与具体的URL模式关联起来,实现复杂的权限控制逻辑。
过滤器实现类 1、Filter接口:所有的Servlet过滤器类都必须实现javax.servlet.Filter接口 a、init(FilterConfig): 这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个...
通过上述步骤,我们可以有效地利用Servlet过滤器来解决Web应用中的乱码问题。这种方式不仅提高了代码的可维护性和扩展性,还保证了用户数据的准确性。在实际项目中,可以根据具体的业务需求调整过滤器的逻辑,例如...
在这个小型的基于Servlet的过滤器项目中,我们主要关注如何利用过滤器来实现对网站访问用户的计数功能。这个功能在很多网站统计分析中都非常常见,可以帮助我们了解网站的流量情况。 首先,我们要理解Servlet过滤器...
Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...
Servlet过滤器是按照指定的配置顺序进行调用的,能够实现数据的预处理、后处理、权限控制、字符编码转换等多种功能,极大地增强了Web应用程序的功能性和灵活性。 Servlet过滤器的实现基于Java Servlet API中的...
`guestbook8`可能是另一个项目或模块,它可能利用了过滤器来实现如日志记录、权限控制等功能。 在实际应用中,一个常见的例子是登录检查过滤器。在用户访问受保护的资源之前,过滤器可以检查用户是否已登录。如果...
本文将深入探讨如何利用过滤器实现多层权限控制,并结合给定的标签“源码”和“工具”,来提供一个具体的实践示例。 首先,我们需要理解过滤器在Java Web开发中的作用。在Servlet规范中,过滤器是一个实现了javax....
在本教程中,我们将深入探讨如何实现一个Servlet编码过滤器,并理解其工作原理。 首先,让我们了解为什么需要编码过滤器。在Web应用中,用户输入的数据可能包含非ASCII字符,如中文、日文等,这些字符在HTTP请求中...
总结起来,servlet过滤器是Tomcat等Servlet容器中不可或缺的一部分,它们允许开发者在请求生命周期的关键时刻进行干预,实现各种功能增强和控制。通过合理配置和实现,过滤器可以帮助提升应用的安全性、性能和用户...
而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能监控等功能。在这个场景中,我们关注的是使用过滤器进行登录验证,以及如何利用`session`来...
在学习完javase部分,在进入web编程的时候,有人也许会建议去学习jsp,但是我建议还是先学习servlet,因为jsp的本质就是servlet,如果能很好的了解servlet,我想对你以后学习java web编程会有很大的帮助的...