过滤器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()%>

浙公网安备 33010602011771号