请选择 进入手机版 | 继续访问电脑版

建站师

 找回密码
 立即注册

QQ登录

只需一步,快速开始

国内外搜索引擎大全

我想在filter中统一处理错误。不知道是不是这样写?

[复制链接]
java 发表于 2017-6-5 12:58:38 | 显示全部楼层 |阅读模式
我想在filter中统一处理异常。不知道是不是这样写??
Java codeimport cppcns.com;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import cppcns.com;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class ExceptionFilter implements Filter { protected FilterConfig filterConfig = null; private static final String PAGE_TO_FORWARD = "errorNew.jsp"; // ---------------------- Public Methods public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws cppcns.com, cppcns.com { HttpServletResponse response = (HttpServletResponse) res; HttpServletRequest request = (HttpServletRequest) req; HttpSession session = request.getSession(); Exception e=null; long millsecds=0; millsecds=System.currentTimeMillis(); try { chain.doFilter(req, res); }catch(cppcns.com ee){ e=ee; session.setAttribute("msg", "cppcns.com!异常编号是:"+millsecds); } catch (Exception ee) { e=ee; session.setAttribute("msg", "异常!异常编号是:"+millsecds); } //把异常信息保存到 saveExceptionToDataBase(e,millsecds); session.setAttribute("e", e); redirect(PAGE_TO_FORWARD, request, response); } public void init(FilterConfig filterConfig) { } public void destroy() { } // --------------------- Private Methods private void redirect(String page, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/" + page); } private void saveExceptionToDataBase(Exception e,long millsecds){ //把异常保存到db中 }}

------解决方案--------------------
应该是没什么问题。你测试一下,看看是否能达到你想要的结果。
------解决方案--------------------
Filter可以统一处理异常么?他好像是在 servlet和jsp的前面执行的吧?

如果能在后面执行,哪应该可以。

如果不能再后面执行,哪应该不可以。
------解决方案--------------------
filter不是这么什么的前面执行,而是在filter中进行后面方法的调用,整个执行流程是包含在filter中的,所以可以进行异常处理的
------解决方案--------------------
理解错了

顺序应该是这样的,明白了。

Filter -> servlet throw exception and forword to error page.

Filter -> error page

这样可以。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我的上网主页|Sitemap|vb6|中国站长网|编程论坛|百度|Google|标签|Archiver|小黑屋|建站师  

GMT+8, 2018-9-21 08:01 , Processed in 0.195050 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表