呵呵,好想问得不太明白
我想要的是struts结构下的用户身份验证
或者说就是解决用户在知道页面的地址而直接在浏览器中输入页面的地址而进入页面,避开权限检查
,这种情况用过滤器怎么实现雅?
那儿有过滤器的资料
thanks a lot.....
我想要的是struts结构下的用户身份验证
或者说就是解决用户在知道页面的地址而直接在浏览器中输入页面的地址而进入页面,避开权限检查
,这种情况用过滤器怎么实现雅?
那儿有过滤器的资料
thanks a lot.....
解决方案 »
- innerHTML怎么显示不了啊
- 读取文件时怎么用正则表达式判断从某个地方开始
- 将jsp的表格table内容输出到access中,大家来探讨探讨
- javascript验证问题
- sql多表联接查询,急!!!
- Jsp中的按钮提交问题?(急啊!!!)
- 输入数据过滤的最佳方案
- 怎样用jsp+javascript访问oracle数据库生成动态树,谢谢好心人了
- 有什么方法能让jsp的执行中延迟一点时间。
- ext 后台获取数据源
- 我知道jsp文件在执行的时候,web容器(如tomcat)先将它转换成一个servlet,请问怎样、用什么工具将一个jsp文件转换成它对应的servlet文件
- 过滤器问题???,大侠帮帮我,请各位高手看看是什么错误!!!
可以参考
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;import corecraft.config.CoreConfigFactory;
import corecraft.ccsf.acl.Session;
import corecraft.ccsf.acl.CoreSession;/**
* Created by IntelliJ IDEA.
* User: Dickensi Wen [email protected]
* Date: 2003-10-7
* Time: 23:08:30
* To change this template use Options | File Templates.
*/
public class RequestFilter implements javax.servlet.Filter {
private static Logger logger = Logger.getLogger(RequestFilter.class);
private FilterConfig filterConfig;
private static String m_sInitialPath = CoreConfigFactory.getProperties("config.startpage"); public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
} public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; String sUrl = httpRequest.getServletPath();//.getRequestURL().toString();
HttpSession session = httpRequest.getSession();
// logger.debug("sUrl :" + session.getAttribute("core-session"));
CoreSession coreSession = (CoreSession) session.getAttribute("core-session"); //logger.debug("in filter");
try {
if (coreSession == null) {
logger.debug("sUrl :" + sUrl);
if (sUrl.equalsIgnoreCase("/index.jsp") || sUrl.equals("")) {
logger.debug("set session: IP:" + httpRequest.getRemoteAddr());
session.setAttribute("core-session", new CoreSession());
} else if (sUrl.endsWith(".gif") || sUrl.endsWith(".jpg")) {
} else {
logger.debug("redirect: IP:" + httpRequest.getRemoteAddr());
session.setAttribute("core-session", new CoreSession());
httpRequest.getRequestDispatcher(m_sInitialPath).forward(servletRequest, servletResponse);
return;
}
}
} catch (Exception e) {
logger.fatal("filter error:" + e.toString(), e);
}
// logger.debug(sUrl);
filterChain.doFilter(servletRequest, servletResponse);
} public void destroy() {
}
}在web.xml加入:<web-app>
<!--display-name>Jive Forums</display-name>
<description>Community application by Jive Software.</description>
<context-param>
<param-name>jiveHome</param-name>
<param-value>E:\\myweb\\jive\\WEB-INF\\classes\\jiveHome</param-value>
</context-param-->
<filter>
<filter-name>acl filter</filter-name>
<filter-class>corecraft.web.RequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>acl filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你的方法有效吗?
假如,我在我的session有效期间内,但是有一个画面我原本不能进去,但是通过直接输入url,你这样还是不能阻止吧。
希望得到你的回答。碰到了和搂主一样的问题。
原本想在自己的每一个页面保存一个变量,来进行判断,但是这样的话,就需要修改很多以前已经做好的jsp文件了,还有好的过滤器的例子吗?除了动用session以外。