您当前的位置: 首页 >  servlet

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Servlet异常处理器

梁云亮 发布时间:2022-04-18 16:51:54 ,浏览量:2

说明

在Sevlet中也可以编写一个处理器,用来对系统中异常作统一处理。

功能实现 第一步:自定义异常
public class ArgumentException extends RuntimeException {
    @Getter
    private String msg;

    public ArgumentException(String msg) {
        super(msg);
        this.msg = msg;
    }

}
第二步:定义用来处理异常的Servlet
@WebServlet(urlPatterns = "/creditsExceptionHandler")
public class CreditsExceptionHandler extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        //获取页面对象
        PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, req, resp, null, true, 8192, true);
        //通过页面对象获取异常对象
        CreditsException exception = (CreditsException) pageContext.getException();
        req.setAttribute("msg", exception.getMsg());
        req.setAttribute("aim", exception.getAim());
        req.getRequestDispatcher("error.ftl").forward(req, resp);
    }
}
第三步:在web.xml中配置异常处理器

    com.wc.ex.ArgumentException
    /argumentExceptionHandler

第四步:Servlet中使用测试
@WebServlet(urlPatterns = "/user")
public class UserServlet extends HttpServlet {
    private UserService userService = new UserServiceImpl();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
		if(username == null || username.trim().length()==0){
			throw new ArgumentException("参数用户名不能为空");
		}
    }

 }
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0402s