~~~~~~~~~~~~~~~~~[求助]关于Filter!~~~~~~~~~~~~~~~~~ 现有一工程下面有两个文件夹admin,user现欲用Filter来实现登陆时的过滤功能(即:当session.userrole=admin时可进入所有文件夹,当session.userrole=user时只可进入user)请问:主要做哪几个方面的事情?请提供具体代码,谢谢!注:分数全部给提供正确代码的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先写个admin的过滤器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);String userrole="";if(session.getAttribute("USER_ID")!=null){ userrole=(String)session.getAttribute("userrole");}if(userrole.equals("") || userrole==null){req.getRequestDispatcher("wrong.jsp").forward(req, res); 判断为空chain.doFilter(request,response);}else{chain.doFilter(request,response);}}在web.xml里<filter> <filter-name>admin</filter-name> <filter-class>你类的路径</filter-class></filter><filter-mapping> <filter-name>admin</filter-name> <url-pattern>/*</url-pattern> /*是所有文件</filter-mapping>user的过滤器照着写在web.xml里<filter> <filter-name>user</filter-name> <filter-class>你类的路径</filter-class></filter><filter-mapping> <filter-name>user</filter-name> <url-pattern>/user/*</url-pattern> user下的文件</filter-mapping> 晕 还要写两个啊?一个过滤器可以实现吗?就写类和配置web.xml就可以了吗?还要在登陆页面里调用吗? 写一个过滤器应该是可以实现的:取得你的路径中的关键字与userrole比较给你段代码参考下:String uri=request.getRequestURI();String[] path=uri.split("/");//取得路径的关键字,下面的path[1]就是你的文件夹名,你的里面也许是用path[2],path[3]if (session.getAttribute(Constant.SESSION_USER_ROLE).equalsIgnoreCase(path[1].trim())) { filterchain.doFilter(arg0, arg1);} 初学者啊TT[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 报表导出excel表格的过程中,在展示给用户的页面上动态显示导出的状态,能做吗? JSP可以做趋势图 ?传值变成???????? 求解? 关于用超连接提交FORM 如何关闭浏览器,立即结束sessioin 新人问题 请问下面这句应该怎么写才行啊?? asp中有server.encodeHTML(),jdk中有没有类似的? jsp页面部分客户端访问经常会把中文显示问号? 怎么获取javascript表单参数? 在HTML中如何用JavaScript设置"Alt+数字键"实现快捷键功能
FilterChain chain) throws IOException, ServletException {HttpServletRequest req=(HttpServletRequest )request;
HttpServletResponse res=(HttpServletResponse )response;
HttpSession session=req.getSession(true);
String userrole="";
if(session.getAttribute("USER_ID")!=null)
{
userrole=(String)session.getAttribute("userrole");}if(userrole.equals("") || userrole==null)
{
req.getRequestDispatcher("wrong.jsp").forward(req, res); 判断为空
chain.doFilter(request,response);
}
else
{
chain.doFilter(request,response);
}}在web.xml里
<filter>
<filter-name>admin</filter-name>
<filter-class>你类的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>admin</filter-name>
<url-pattern>/*</url-pattern> /*是所有文件
</filter-mapping>user的过滤器照着写在web.xml里
<filter>
<filter-name>user</filter-name>
<filter-class>你类的路径</filter-class>
</filter>
<filter-mapping>
<filter-name>user</filter-name>
<url-pattern>/user/*</url-pattern> user下的文件
</filter-mapping>
就写类和配置web.xml就可以了吗?还要在登陆页面里调用吗?
给你段代码参考下:
String uri=request.getRequestURI();
String[] path=uri.split("/");
//取得路径的关键字,下面的path[1]就是你的文件夹名,你的里面也许是用path[2],path[3]
if (session.getAttribute(Constant.SESSION_USER_ROLE).equalsIgnoreCase(path[1].trim())) {
filterchain.doFilter(arg0, arg1);
}