当前位置: 首页 > news >正文

合肥专业网站制网站开发网站建设公司

合肥专业网站制,网站开发网站建设公司,nginx ssl wordpress,手机制作钓鱼网站servlet 异常处理有时候我写了一篇有关Java异常处理的文章#xff0c;但是当涉及到Web应用程序时#xff0c;我们需要的不仅仅是Java中的异常处理。 Servlet异常 如果您注意到#xff0c;doGet#xff08;#xff09;和doPost#xff08;#xff09;方法将抛出ServletE… servlet 异常处理 有时候我写了一篇有关Java异常处理的文章但是当涉及到Web应用程序时我们需要的不仅仅是Java中的异常处理。 Servlet异常 如果您注意到doGet和doPost方法将抛出ServletException和IOException 那么让我们看看当从应用程序中抛出这些异常时会发生什么。 我将编写一个简单的Servlet它将抛出ServletException。 MyExceptionServlet.java package com.journaldev.servlet.exception;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;WebServlet(/MyExceptionServlet) public class MyExceptionServlet extends HttpServlet {private static final long serialVersionUID 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {throw new ServletException(GET method is not supported.);}} 现在当我们使用GET方法通过浏览器调用此servlet时将得到如下图所示的响应。 由于浏览器仅了解HTML因此当我们的应用程序引发异常时servlet容器将处理该异常并生成HTML响应。 此逻辑特定于servlet容器我正在使用tomcat并获取此错误页面但是如果您将使用其他服务器如JBoss或Glassfish则可能会收到不同的错误HTML响应。 此响应的问题在于它对用户没有任何价值。 它还向用户显示了我们的应用程序类和服务器详细信息这对用户没有意义并且从安全角度来看也不是一件好事。 Servlet错误 我敢肯定当您尝试访问不存在的URL时您一定已经看到404错误。 让我们看看我们的servlet容器如何响应404错误。 如果我们发送无效URL的请求则会得到响应HTML如下图所示。 同样它是服务器代表我们生成的通用HTML对用户几乎没有价值。 Servlet异常和错误处理 Servlet API支持可在部署描述符中配置的自定义Exception和Error Handler servlet这些servlet的全部目的是处理应用程序引发的Exception或Error并发送对用户有用HTML响应。 我们可以提供指向应用程序主页的链接或一些详细信息以使用户知道出了什么问题。 因此首先我们需要创建一个自定义的Exception and Error Handler servlet。 我们可以为应用程序提供多个异常和错误处理程序servlet但为简单起见我将创建一个servlet并将其用于异常和错误。 AppExceptionHandler.java package com.journaldev.servlet.exception;import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;WebServlet(/AppExceptionHandler) public class AppExceptionHandler extends HttpServlet {private static final long serialVersionUID 1L;protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {processError(request, response);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {processError(request, response);}private void processError(HttpServletRequest request,HttpServletResponse response) throws IOException {// Analyze the servlet exceptionThrowable throwable (Throwable) request.getAttribute(javax.servlet.error.exception);Integer statusCode (Integer) request.getAttribute(javax.servlet.error.status_code);String servletName (String) request.getAttribute(javax.servlet.error.servlet_name);if (servletName null) {servletName Unknown;}String requestUri (String) request.getAttribute(javax.servlet.error.request_uri);if (requestUri null) {requestUri Unknown;}// Set response content typeresponse.setContentType(text/html);PrintWriter out response.getWriter();out.write(htmlheadtitleException/Error Details/title/headbody);if(statusCode ! 500){out.write(h3Error Details/h3);out.write(strongStatus Code/strong:statusCodebr);out.write(strongRequested URI/strong:requestUri);}else{out.write(h3Exception Details/h3);out.write(ulliServlet Name:servletName/li);out.write(liException Name:throwable.getClass().getName()/li);out.write(liRequested URI:requestUri/li);out.write(liException Message:throwable.getMessage()/li);out.write(/ul);}out.write(brbr);out.write(a href\index.html\Home Page/a);out.write(/body/html);} } 让我们看看如何在部署描述符中配置它然后我们将了解它的实现及其工作方式。 web.xml ?xml version1.0 encodingUTF-8? web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://java.sun.com/xml/ns/javaee xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd version3.0display-nameServletExceptionHandling/display-namewelcome-file-listwelcome-fileindex.html/welcome-file/welcome-file-listerror-pageerror-code404/error-codelocation/AppExceptionHandler/location/error-pageerror-pageexception-typejavax.servlet.ServletException/exception-typelocation/AppExceptionHandler/location/error-page /web-app 如您所见使用error-page元素为应用程序指定异常处理程序servlet非常容易。 每个错误页面元素应具有错误代码或异常类型元素。 我们在location元素中定义异常处理程序servlet。 基于以上配置如果应用程序抛出404错误或ServletException它将由AppExceptionHandler Servlet处理。 当出现此类异常和错误情况时servlet容器将调用Exception Handler servlet的相应HTTP方法并传递请求和响应对象。 请注意我已经提供了doGet和doPost方法的实现以便它可以处理GET和POST请求并使用通用方法来处理它们。 在servlet容器调用servlet来处理异常之前它会在请求中设置一些属性以获取有关异常的有用信息其中一些属性是javax.servlet.error.exception javax.servlet.error.status_code javax.servlet。 error.servlet_name和javax.servlet.error.request_uri 。 作为例外状态码始终为500与“内部服务器错误”相对应对于其他类型的错误我们将获得不同的错误代码例如404、403等。 使用状态代码我们的实现将不同类型HTML响应呈现给用户。 它还提供了到应用程序主页的超链接。 现在当我们点击抛出ServletException的servlet时我们将得到如下图所示的响应。 如果我们尝试访问无效的URL这将导致404响应我们将得到如下图所示的响应。 它看起来不是很好并且可以帮助用户轻松地了解发生了什么并为他们提供前往正确位置的方法。 它还避免了将应用程序敏感信息发送给用户。 我们应该始终为我们的Web应用程序配备异常处理程序。 如果要在单个异常处理程序中处理运行时异常和所有其他异常则可以将异常类型提供为Throwable。 error-pageexception-typejava.lang.Throwable/exception-typelocation/AppExceptionHandler/location /error-page 如果有多个错误页面条目例如对于Throwable一项对于IOException一项应用程序抛出FileNotFoundException那么它将由IOException的错误处理程序处理。 您还可以将JSP页面用作异常处理程序仅提供jsp文件的位置而不是servlet映射。 这就是Web应用程序中异常处理的全部希望您喜欢它。 下载ServletExceptionHandling项目 参考 开发者食谱博客上的JCG合作伙伴 Pankaj Kumar提供的Servlet异常和错误处理示例教程 。 翻译自: https://www.javacodegeeks.com/2013/08/servlet-exception-and-error-handling-example-tutorial.htmlservlet 异常处理
http://wiki.neutronadmin.com/news/289122/

相关文章:

  • 做快递单的网站会不会是骗人的网站功能有哪些
  • 龙岗做棋牌网站建设大兴网站定制开发
  • 苏州网站建设专家免费网站容量大
  • 深圳网站优化推广方案网页设计师岗位
  • 模板网站建设教程ip动态地址做网站
  • 常德天鹰建设有限公司网站网站建设服务哪家有
  • 网站排名快速提升工具如何创建一个网站用来存放东西
  • 网站友情链接购买自己做影视网站
  • 做宠物店网站的素材wordpress中英文模板
  • 义乌企业网站搭建首选wordpress主题momo
  • 建设银行开通网银网站上海网站建设网站开发
  • 响应式网站用什么工具电暖怎么做网站
  • 做网站租服务器wordpress过滤用户输入数据库
  • php靓号网站源码google adwords关键词工具
  • 阿里云做网站步骤网站开发工程师中级高级
  • 成华区门户网站网站设计方案怎么写
  • 专业企业网站建设郴州做网站的
  • 中信建设官方网站软件下载wordpress在线安装
  • 网站建设电子苏州建设银行官方网站
  • 网站怎么做浏览量才会多网站设计配色方案
  • 网易 自助网站建设个人养老保险缴费档次
  • 杭州营销型网站建设优秀网文
  • 济南装修公司排名前十强智能网站排名优化
  • 韶关市建设工程造价网站给帅哥做奴视频网站
  • 抢购网站源码李江seo
  • 宁波网站推广业务网站建设地图素材
  • 怎样做网站公司免费windows云电脑
  • 计算机科学与技术 开题报告 网站建设平面设计哪里学
  • 傻瓜式做网站程序网站推广话术与技巧
  • 哪里网站可以做微信头像制作手机网站用什么软件