登录过滤类loginFilter
------------------------------------------
package spell;
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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class loginFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse rsp=(HttpServletResponse)response;
HttpSession session=req.getSession(true);
String userName=(String)session.getAttribute("userName");
String uri = ((HttpServletRequest) request).getRequestURI();
if(userName!=null || uri.endsWith("login.jsp") || uri.endsWith("login.do")) {//验证通过
filterChain.doFilter(request, response);
}
else
{//验证不通过,取得设置的跳转页面参数
String noLogin=filterConfig.getInitParameter("noLogin");
rsp.sendRedirect(noLogin);
}
} catch (Exception sx) {
filterConfig.getServletContext().log(sx.getMessage());
}
}
//Clean up resources
public void destroy() {
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(arg0, arg1);
}
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(arg0, arg1);
}
}
web.xml配置
----------------------------
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>spell.loginFilter</filter-class> <!--loginFilter对应的类名-->
<init-param>
<param-name>noLogin</param-name>
<param-value>../strutsHtml.jsp</param-value> <!--没有登录跳转的页面-->
</init-param>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name> <!--选择loginFilter来验证登录-->
<url-pattern>/member/*</url-pattern> <!--配置member下的文件要求权限判断-->
</filter-mapping>
分享到:
相关推荐
使用servlet和jsp技术时,我们可以通过过滤器(Filter)来实现这样的安全防护机制。过滤器是一种服务器端的组件,它能够对请求和响应进行拦截,执行一些预处理或者后处理操作。它常用于进行登录验证、权限检查、字符...
在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...
通过这个简单的登录示例,你可以学习到如何利用Servlet过滤器检查用户登录状态,确保只有已登录的用户才能访问特定的受保护资源。过滤器提供了一种灵活的方式来增强应用程序的功能,无需修改原有的Servlet代码,对于...
根据Java Servlet规范,过滤器(Filter)是一个实现了javax.servlet.Filter接口的类,它能够在请求处理链中插入额外的逻辑。通过在web.xml文件中定义过滤器,我们可以指定哪些请求路径需要被过滤,并且可以设置多个...
在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...
在实际项目中,Filter的应用非常广泛,例如实现登录验证、字符集编码转换、GZIP压缩、安全控制等。通过理解和熟练使用Filter,开发者可以更好地控制和优化Web应用程序的行为。 由于提供的压缩包文件名为`webfilter`...
例如,Filter可以用于登录验证、数据过滤、日志记录等。Filter的生命周期包括初始化、过滤、销毁。当Filter被加载时,会调用`init()`方法;在每个请求通过Filter链时,`doFilter()`方法会被调用;服务器关闭时,`...
防止用户利用缺省 servlet URL 绕过过滤器设置。 9. 避免过滤器的使用限制 过滤器只在与 servlet 规范 2.3 版兼容的服务器上有作用。如果你的 Web 应用需要支持旧版服务器,就不能使用过滤器。 通过本文,我们...
- **接口**:所有Servlet过滤器需实现`javax.servlet.Filter`接口,该接口包含三个核心方法: - `init(FilterConfig config)`:初始化过滤器,读取配置信息。 - `doFilter(ServletRequest request, Servlet...
### 实现登录过滤器的关键代码解析 #### 1. 导入必要的包 ```java import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import ...
在本场景中,我们利用过滤器实现了用户登录验证,确保只有已登录的用户才能访问受保护的页面,而不会对其他模块的功能造成影响。这种设计遵循了软件工程中的单一职责原则,提高了代码的可读性和可维护性。
Servlet之Filter是Java Web开发中的一个重要概念,它在Servlet规范中扮演着不可或缺的角色。Filter(过滤器)允许开发者在请求到达目标Servlet...通过深入学习和实践,开发者可以更好地利用Filter解决各种实际问题。
在这个压缩包“servlet_filter.rar”中,我们聚焦于Servlet Filter的重写以及如何利用它来解决乱码问题和过滤敏感字符。 首先,让我们深入理解Servlet Filter的工作原理。Servlet Filter是一个实现了`javax.servlet...
通过Spring管理Filter和Servlet,不仅可以充分利用Spring的依赖注入能力,简化Filter和Servlet的配置,还能增强代码的可维护性和可扩展性。开发者无需在Filter或Servlet内部硬编码bean名称,而是通过Spring容器自动...
在这个小型的基于Servlet的过滤器项目中,我们主要关注如何利用过滤器来实现对网站访问用户的计数功能。这个功能在很多网站统计分析中都非常常见,可以帮助我们了解网站的流量情况。 首先,我们要理解Servlet过滤器...
**JSP、Servlet与Filter详解** 在Web开发领域,Java技术是不可或缺的一部分,其中JSP(JavaServer Pages)...在实际项目中,合理利用Filter可以提高应用的安全性和性能,而JSP和Servlet则负责处理用户交互和业务逻辑。
实现图片过滤功能,我们需要自定义一个Filter类,继承`javax.servlet.Filter`并实现其方法。在`doFilter()`方法中,我们可以获取到请求的URL和HTTP方法,判断是否与图片资源相关。如果请求的目标是一个图片文件,...
* 认证和授权:可以使用 Filter 来实现认证和授权功能,例如检查用户的登录状态和权限。 * 日志记录:可以使用 Filter 来记录客户端的请求和响应信息,以便进行日志记录和分析。 * 缓存处理:可以使用 Filter 来实现...
通过上述步骤,我们可以有效地利用Servlet过滤器来解决Web应用中的乱码问题。这种方式不仅提高了代码的可维护性和扩展性,还保证了用户数据的准确性。在实际项目中,可以根据具体的业务需求调整过滤器的逻辑,例如...
`session`对象允许我们在多个请求之间持久化用户数据,这对于实现登录功能至关重要。同时,过滤器提供了一种优雅的方式,让我们可以在请求到达目标资源之前进行预处理,确保只有已登录的用户才能访问受保护的页面。