在一个系统中通常有多个权限的用户。不同权限用户的可以浏览不同的页面。使用Filter进行判断不仅省下了代码量,而且如果要更改的话只需要在Filter文件里动下就可以。
以下是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;
public class RightFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest sreq, ServletResponse sres, FilterChain arg2) throws IOException, ServletException {
// 获取uri地址
HttpServletRequest request=(HttpServletRequest)sreq;
String uri = request.getRequestURI();
String ctx=request.getContextPath();
uri = uri.substring(ctx.length());
//判断admin级别网页的浏览权限
if(uri.startsWith("/admin")) {
if(request.getSession().getAttribute("admin")==null) {
request.setAttribute("message","您没有这个权限");
request.getRequestDispatcher("/login.jsp").forward(sreq,sres);
return;
}
}
//判断manage级别网页的浏览权限
if(uri.startsWith("/manage")) {
//这里省去
}
}
//下面还可以添加其他的用户权限,省去。
}
public void init(FilterConfig arg0) throws ServletException {
}
}
<!-- 判断页面的访问权限 -->
<filter>
<filter-name>RightFilter</filter-name>
<filter-class>cn.itkui.filter.RightFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RightFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>RightFilter</filter-name>
<url-pattern>/manage/*</url-pattern>
</filter-mapping>
在web.xml中加入Filter的配置,如下:
<filter>
<filter-name>EncodingAndCacheflush</filter-name>
<filter-class>EncodingAndCacheflush</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingAndCacheflush</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
要传递参数的时候最好使用form进行传参,如果使用链接的话当中文字符的时候过滤器转码是不会起作用的,还有就是页面上
form的method也要设置为post,不然过滤器也起不了作用。
分享到:
相关推荐
本话题将详细探讨如何利用Filter来限制用户浏览特定的页面,以实现用户权限控制。 一、Filter概述 Filter是Servlet规范的一部分,它允许开发者在请求到达目标资源(如Servlet或JSP)之前和之后对请求和响应进行拦截...
总结来说,"BI SSAS 通过配置表动态权限控制实例项目"展示了如何利用SSAS的灵活性和安全性功能,以满足不同用户群体的个性化访问需求。通过这种方式,企业可以确保敏感数据的安全,同时提供定制化的数据视图,提升...
Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限
#### 五、利用Filter限制用户浏览权限 限制用户浏览权限过滤器与资源保护过滤器类似,但更加灵活,可以根据不同的条件来决定是否允许用户访问某个资源。实现方法如下: ```java import javax.servlet.*; import ...
XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的前端安全威胁,其核心在于攻击者利用网站的安全漏洞,将恶意脚本注入到正常网页中,当其他用户浏览该网页时,这些脚本便会在用户的浏览器环境中执行,从而...
此外,还可以结合其他安全策略,如使用Content Security Policy(CSP)限制脚本的来源,使用XSS Filter阻止跨站脚本攻击,以及对所有用户输入进行严格的服务器端验证和过滤。同时,定期更新浏览器和补丁,确保系统...
XSS攻击是指攻击者通过在网页中插入恶意脚本,使得用户在浏览页面时,浏览器执行这些脚本,从而获取敏感信息或者对用户的会话进行劫持。XSS攻击主要有三种类型:存储型XSS、反射型XSS和DOM型XSS。为了防范XSS攻击,...
4. **权限控制**:设置用户角色和权限,限制未授权的访问。 **六、部署与测试** 完成开发后,我们需要将应用部署到服务器(如Tomcat),并进行功能测试和性能测试,确保所有功能正常且响应时间在可接受范围内。 总...
这通常通过session管理和cookie技术实现,如验证用户登录状态、限制未授权的访问等。同时,可以采用角色权限机制,为不同用户角色分配不同的操作权限。 **7. 错误处理与日志记录** 在开发过程中,错误处理和日志...
同时,会话管理(session)确保用户在不同页面间的操作得到正确跟踪,实现权限控制。 3. **模板引擎与MVC架构**:为了提高代码组织性和可维护性,开发者可能采用了MVC(Model-View-Controller)架构。Model负责数据...
总之,Eye3Launcher通过巧妙地利用Intent和WebView,提供了一种全新的Android用户体验,将设备转化为一个专门的Web浏览设备。这种设计思路可以启发我们思考如何定制Android系统以满足不同用户的需求,同时也提醒我们...
"serve-index-fs" 是一个前端开发中常用的开源库,主要用于在本地文件系统上提供一个交互式的目录浏览服务。... ### 1.... `serve-index-fs` 是基于 Node...在实际项目中,合理利用这个库可以极大地提高开发效率和用户体验。
- **group**:创建或管理用户组,方便权限管理和分配。 - **group-by**:按指定字段对数据进行分组,便于统计分析。 - **hostname**:设置设备的主机名,便于识别。 - **http**:配置HTTP服务的相关参数,如端口等。...
此外,还有一种通过滤镜(filter)实现图片预览的方式,这种方法利用了IE特有的滤镜技术,但它仅限于IE浏览器使用,对其他浏览器无效。 针对IE8浏览器,因为原生的.value方法不再返回文件的完整路径,仅返回文件名...
6. **权限控制(Access Control)**:利用Yii2的访问控制过滤器(Access Control Filter, ACF)或RBAC(Role-Based Access Control),可以限制某些导航项只对特定用户组可见。这有助于构建更加安全和个性化的用户体验。...
5. **权限控制**:根据需求,可设置访问权限,限制某些内容仅对特定用户或角色可见,保护敏感信息。 三、PHP技术应用 "doc-directory"插件的开发基于PHP语言,这使得它具有高度的灵活性和扩展性。对于熟悉PHP的...
4. **用户交互**:虽然小部件空间有限,但 NewsWidget 可能提供一些简单的交互功能,如点击新闻标题跳转至完整文章,或者滑动浏览更多新闻。 5. **更新策略**:为了保持新闻的时效性,NewsWidget 可能有定时更新...