用过滤器判断用户是否登录(2010-03-15 09:28:10)转载▼标签: filter杂谈 分类: java
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
public class RightFilter
implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
//从session里取的用户名信息
String username = (String) session.getAttribute("username");
//判断如果没有取到用户信息,就跳转到登陆页面
if (username == null || "".equals(username)) {
//跳转到登陆页面
res.sendRedirect("http://"+req.getHeader("Host")+"/login.jsp");
}
else {
//已经登陆,继续此次请求
chain.doFilter(request,response);
}
}
public void destroy() {
}
}
下面配置这个过滤器
然后在web.xml里配置那些JSP文件需要登陆权限验证:
1.如果是某个具体的JSP文件(如a.jsp)需要登陆验证
<web-app>
...
<filter>
<filter-name>right</filter-name>
<filter-class>com.taihuatalk.taihua.common.common.RightFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>right</filter-name>
<url-pattern>/a.jsp</url-pattern>
</filter-mapping>
...
</web-app>
2.如果是某一个目录(如a/目录)整个目录下的文件都需要登陆验证:
<web-app>
...
<filter>
<filter-name>right</filter-name>
<filter-class>com.taihuatalk.taihua.common.common.RightFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>right</filter-name>
<url-pattern>/a/*</url-pattern>
</filter-mapping>
...
</web-app>
分享到:
相关推荐
用户登陆过滤器 用户登陆过滤器是一个用于...在实际应用中,这个过滤器可以应用于各种Web应用程序中,以保护用户数据的安全和隐私。 用户登陆过滤器是一个非常重要的安全机制,可以帮助我们保护Web应用程序的安全性。
在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...
这个过滤器会检查每次请求的用户是否已登录。如果没有,就将用户重定向到登录页面。 通过学习和使用Java过滤器,你可以更高效地管理你的Web应用,提高其安全性和性能。在实际项目中,可以根据需求创建各种自定义...
大数据推荐算法之基于用户协同过滤推荐实例usercf,python版,用movielens数据作例子
【标题】:“httpHands过滤图片例子httpHands例子httpHands例子” 这个标题似乎是一个关于使用httpHands工具进行图片过滤操作的示例。httpHands可能是一个HTTP客户端库或者一个用于处理HTTP请求和响应的工具,尤其...
综上所述,"过滤器例子下载实例"是一个学习Servlet Filter的好资源,它帮助我们理解如何利用Filter实现用户登录检查,从而控制对Web资源的访问。通过实践这个示例,开发者可以更好地掌握Filter的用法,并将其应用到...
4. **登录逻辑**:在我们的例子中,`doFilter`方法内会检查用户的登录状态。如果用户已登录(可能通过session存储的用户信息判断),则允许请求继续;反之,如果用户未登录,返回一个重定向响应,将用户引导到登录...
### JSP Filter 过滤器判断用户是否登录 在Web应用开发中,权限验证是非常重要的一个环节。通过使用过滤器(Filter),可以在请求到达目标资源(如Servlet或JSP页面)之前进行处理,例如实现登录状态检查、权限验证...
- 假设我们有两个过滤器,`LoginFilter`负责检查用户是否已登录,`EncodingFilter`用于设置请求和响应的编码格式。 - `LoginFilter`首先被调用,检查session中是否有登录信息,如果没有,重定向到登录页面;如果已...
通常在一个网站中,用户想要访问一些信息,需要用户是我们网站中... 因此在本次实战中,就要求当用户访问我们的主页面的时候,需要用过滤器验证一下其是否登录过,要是其登陆过就能直接访问,否则跳转到登录界面中去。
如果用户未登录,过滤器将拦截请求并重定向到登录页面。一旦用户成功登录,通常会将用户信息(如用户名或ID)存储在会话(session)中。 3. **Session和Cookie**: - **Session**:在Java Web中,session用于在...
在探讨“hibernate过滤器使用例子”这一主题时,我们深入分析了如何在Hibernate框架中运用过滤器功能,以及如何结合分页技术优化数据查询效率。以下将详细阐述相关知识点,包括过滤器的基本概念、配置方法、源码解析...
BPF(Berkeley Packet Filter)是一个内置于Linux内核的虚拟机,它允许用户空间程序在数据包进入或离开网络接口之前定义过滤规则。这些规则可以基于多种参数,如源/目的IP地址、端口号、协议类型等。BPF现在也被扩展...
在这个例子中,`XssHttpServletRequestWrapper`的作用是包装原始的请求对象,使得在读取请求参数时能自动执行XSS过滤。 具体来说,`XssHttpServletRequestWrapper`会重写`getParameter()`,`getParameterValues()`...
在这里,我们将深入探讨Android Intent过滤器的概念、工作原理以及如何在实际应用中设置和使用。 **Intent Filter的基本概念** Intent Filter是Android组件(如Activity或Service)声明它们能够处理的Intent类型的...
当用户尝试访问需要登录才能查看的页面时,登录过滤器会检查用户的登录状态。如果用户未登录,则重定向到登录页面;如果用户已登录,则允许访问受保护的资源。 ### 实现登录过滤器的关键代码解析 #### 1. 导入必要...
在本应用例子中,我们将聚焦于"Ehlib应用例子(定制表格,万能过滤等)"这一主题,特别关注ColEditor如何实现对GRIDEH是否可以排序的控制,以及这个过程如何依赖于EhLibAdO组件。 首先,让我们了解GRIDEH。GRIDEH是...
1. **身份验证**:首先,过滤器需要识别用户身份,这通常通过验证用户的登录凭据(如用户名和密码)来实现。常见的身份验证方法包括基于表单的认证和基于令牌的认证。 2. **权限获取**:一旦用户身份被确认,过滤器...
3. **实现过滤逻辑**:在doFilter()方法中,你可以根据需要添加逻辑,例如检查用户是否已登录,或者修改请求或响应的内容。 4. **部署与测试**:将应用部署到Servlet容器(如Tomcat),然后访问配置了过滤器的URL,...
在这个例子中,`doFilter()`方法是过滤器的核心,它设置了请求的字符编码为`UTF-8`,并指定了响应的MIME类型及编码。`FilterChain`对象的`doFilter()`调用使得请求可以继续传递到下一个过滤器或者目标资源。 2. 接...