Servlet--ServletException类,UnavailableException类

  • ServletException类
定义
public class ServletException extends Exception
当 Servlet 遇到问题时抛出的一个异常。
构造函数
public ServletException();
public ServletException(String message);
public ServletException(String message, Throwable cause);
public ServletException(Throwable cause);
构造一个新的 ServletException,如果这个构造函数包括一个 Throwable 参数,这个Throwable 对象将被作为可能抛出这个异常的原因。
方法
1、getRootCause
public Throwable getRootCause();
如果配置了抛出这个异常的原因,这个方法将返回这个原因,否则返回一个空值。


  • UnavailableException类

定义
public class UnavailableException extends ServletException
不论一个 Servlet 是永久地还是临时地无效,都会抛出这个异常。Servlet 会记录这个异常以及 Servlet 引擎所要采取的相应措施。临时的无效是指 Servlet 在某一时间由于一个临时的问题而不能处理请求。例如,在另一个不同的应用层的服务(可能是数据库)无法使用。这个问题可能会自行纠正或者需要采取其他的纠正措施。永久的无效是指除非管理员采取措施,这个 Servlet 将不能处理客户端的请求。例如,这个 Servlet 配置信息丢失或 Servlet 的状态被破坏。Servlet 引擎可以安全地处理包括永久无效在内的这两种异常,但是对临时无效的正常处理可以使得 Servlet 引擎更健壮。特别的,这时对 Servlet 的请求只是 被阻止(或者是被延期)一段时间,这显然要比在 service 自己重新启动前完全拒绝请求更为科学。
构造函数
public UnavailableException(Servlet servlet, String message);
public UnavailableException(int seconds, Servlet servlet,String message);

构造一个包含指定的描述信息的新的异常。如果这个构造函数有一个关于秒数的参数,这将给出 Servlet 发生临时无效后,能够重新处理请求的估计时间。如果不包含这个参数,这意味着这个 Servlet 永久无效。


方法
1、getServlet
public Servlet getServlet();
返回报告无效的 Servlet。这被 Servlet 引擎用来识别受到影响的 Servlet。
2、getUnavailableSeconds
public int getUnavailableSeconds();
返回 Servlet 预期的无效时间,如果这个 Servlet 是永久无效,返回-1。
3、isPermanent
public boolean isPermanent();

如果这个 Servlet 永久无效,返回布尔值 true,指示必须采取一些管理行动以使得这个Servlet 可用。

package javax.servlet;

public class UnavailableException extends ServletException
{
  private Servlet servlet;
  private boolean permanent;
  private int seconds;

  /** @deprecated */
  public UnavailableException(Servlet servlet, String msg)
  {
    super(msg);
    this.servlet = servlet;
    this.permanent = true;
  }

  /** @deprecated */
  public UnavailableException(int seconds, Servlet servlet, String msg)
  {
    super(msg);
    this.servlet = servlet;
    if (seconds <= 0)
      this.seconds = -1;
    else
      this.seconds = seconds;
    this.permanent = false;
  }

  public UnavailableException(String msg)
  {
    super(msg);

    this.permanent = true;
  }

  public UnavailableException(String msg, int seconds)
  {
    super(msg);

    if (seconds <= 0)
      this.seconds = -1;
    else {
      this.seconds = seconds;
    }
    this.permanent = false;
  }

  public boolean isPermanent()
  {
    return this.permanent;
  }

  /** @deprecated */
  public Servlet getServlet()
  {
    return this.servlet;
  }

  public int getUnavailableSeconds()
  {
    return this.permanent ? -1 : this.seconds;
  }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,我们需要创建一个Java,并添加以下代码: ```java import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HappyCompSciServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h1>快乐计科人</h1>"); out.println("</body></html>"); } } ``` 这个继承了HttpServlet,并覆盖了doGet()方法。在doGet()方法中,我们设置了响应的内容型为"text/html",并使用PrintWriter对象输出HTML标记和文本。 接下来,在项目的web.xml文件中添加以下配置: ```xml <servlet> <servlet-name>HappyCompSciServlet</servlet-name> <servlet-class>HappyCompSciServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HappyCompSciServlet</servlet-name> <url-pattern>/happycompscipage</url-pattern> </servlet-mapping> ``` 这个配置将我们刚才创建的Java映射到URL路径"/happycompscipage"上。 最后,在浏览器中访问"http://localhost:8080/yourprojectname/happycompscipage"(其中yourprojectname是你的项目名称),就可以看到显示“快乐计科人”的页面了!
03-23

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值