过滤器fillter配置 & 错误页面的提示方式

过滤器fillter就是页面发出请求request----------fillter----------->action控制类

以下应用是为了防止在另一个browser或ip输入相同URL访问到response中返回的内容,也就是get方式请求(虽然已method="post"),这样起到安全作用

 -----------------------------------------------方式一-----------------------------------------------------------

web.xml

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.school.web.Fillter_1</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/teacher/*</url-pattern>   //命名空间/teacher下的所有request经过过滤器
  </filter-mapping>

新建子类继承StrutsPrepareAndExecuteFilter

public class Fillter_1 extends StrutsPrepareAndExecuteFilter {

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) arg0;    //http...是servletrequest的子接口  //提交方法的获取request.getMethod()
        HttpServletResponse response = (HttpServletResponse) arg1;  //同上

        if ("get".equalsIgnoreCase(request.getMethod())) {
            response.sendRedirect("/school2/index.jsp?error=-1");
            return;
        }

        super.doFilter(arg0, arg1, arg2);
    }
}

 - -----------------------------------------------方式二-----------------------------------------------------------

web.xml

 <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.school.web.Fillter_1</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/teacher/*</url-pattern>
  </filter-mapping>
  <error-page>
     <error-code>404</error-code>
     <location>/WEB-INF/pages/errorPage/error_1.jsp</location>
  </error-page>

fiiiter子类

if ("get".equalsIgnoreCase(request.getMethod())) {
            throw new ServletException("您的操作有误!");
}

error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true" %>   //添加最后一项
.....
.....
<%=exception.getMessage()%>

 

posted @ 2016-07-08 22:12  乱世_独自美  阅读(1528)  评论(0)    收藏  举报