这是我的过滤器代码,要实现的功能是当用户请求提交的时候,进入过滤器是否拥有此权限如果没有那么就是
Role_permission role= null;如果role为空就跳转到一个nopermission.jsp里面去,然后数据不要提交
但是问题就在这里 页面跳转了 数据却也提交了???
try {
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(
(HttpServletResponse) response);
Enumeration paramNames = request.getParameterNames();
String paramName=null;
while(paramNames.hasMoreElements()){
paramName=(String)paramNames.nextElement(); // 获取actionType
String paramValues=request.getParameter(paramName); //获取隐藏域值
filter=filterConfig.getInitParameter(paramValues);//获取web.xml相应do操作的值例如登陆
HttpSession session=req.getSession();
Integer str=(Integer)session.getAttribute("Roleid"); //用户角色
/*
* doLogin 值是4
* doDel 值是5
* */
if(filter!=null&& str!=null){
int aa= Integer.parseInt(filter);
System.out.println(aa+"...."+str);
Role_permission role=PermissionDAO.CheckIsPermission(aa,str);
if(role==null){
res.sendRedirect("MainServlet?actionType=doNotpermission");
}
}
}
filterChain.doFilter(request, response); 然后抛出的一个异常 doRevertactionTypejava.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
at Sini.Bll.bbs.MainServlet.doRevert(MainServlet.java:396)
at Sini.Bll.bbs.MainServlet.doGet(MainServlet.java:91)
at Sini.Bll.bbs.MainServlet.doPost(MainServlet.java:547)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at Sini.Utility.bbs.ActionTypeFilter.doFilter(ActionTypeFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at Sini.Utility.bbs.EncodingFilter.doFilter(EncodingFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2008-6-18 17:02:15 org.apache.catalina.core.ApplicationContext log
信息: null
doNotpermissionactionType
Role_permission role= null;如果role为空就跳转到一个nopermission.jsp里面去,然后数据不要提交
但是问题就在这里 页面跳转了 数据却也提交了???
try {
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(
(HttpServletResponse) response);
Enumeration paramNames = request.getParameterNames();
String paramName=null;
while(paramNames.hasMoreElements()){
paramName=(String)paramNames.nextElement(); // 获取actionType
String paramValues=request.getParameter(paramName); //获取隐藏域值
filter=filterConfig.getInitParameter(paramValues);//获取web.xml相应do操作的值例如登陆
HttpSession session=req.getSession();
Integer str=(Integer)session.getAttribute("Roleid"); //用户角色
/*
* doLogin 值是4
* doDel 值是5
* */
if(filter!=null&& str!=null){
int aa= Integer.parseInt(filter);
System.out.println(aa+"...."+str);
Role_permission role=PermissionDAO.CheckIsPermission(aa,str);
if(role==null){
res.sendRedirect("MainServlet?actionType=doNotpermission");
}
}
}
filterChain.doFilter(request, response); 然后抛出的一个异常 doRevertactionTypejava.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
at Sini.Bll.bbs.MainServlet.doRevert(MainServlet.java:396)
at Sini.Bll.bbs.MainServlet.doGet(MainServlet.java:91)
at Sini.Bll.bbs.MainServlet.doPost(MainServlet.java:547)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at Sini.Utility.bbs.ActionTypeFilter.doFilter(ActionTypeFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at Sini.Utility.bbs.EncodingFilter.doFilter(EncodingFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
2008-6-18 17:02:15 org.apache.catalina.core.ApplicationContext log
信息: null
doNotpermissionactionType
加上return;结束运行