• 从0开始学Java——JSP和Servlet——jsp转servlet出错的三个典型场景


    由于jsp终究是要转换为servlet的java文件,然后再编译为.class文件,最后才执行,那么在这过程的任何一个步骤都可能有问题,主要包括三个方面,下面逐一分析:

    一、JSP转换为Servlet的java源码时
        因为上面的这个jsp转java、再转class的过程是在运行期执行来做的,也就是客户第一次请求该jsp页面的时候做的,所以如果jsp页面中有语法错误,使得容器不知如何把jsp转换为servlet的java文件时,比如
    <%@page contentType="html/text" buffer="16" %>
    这里指定buffer的语法有误,应该包含单位,如果客户请求该页面,就会出现类似如下的错误,从异常信息可以定位到错误源码的位置。

    初学者应该尽量选用具有jsp语法检查功能的开发工具来做开发。
     
    二、将servlet源码编译为.class文件的时候
    比如在jsp中使用了某个类,但是在部署服务器上忘了放该类的jar包了,这样在初次请求该jsp的时候,虽然该jsp可以转译完成,但是编译时会报错,比如在tomcat中会有类似于下面的错误提示,这个错误比较容易人, 使用tomcat的时候,如果出现unable to compile,就是编译期的错误。
     
     
    三、Servlet载入容器进行服务的时候发生错误。
    此时Servlet已经编译成功了,但是在运行时由于某种未捕获的异常,比如NullPointerException就是最常见的错误。
    一般来说这种错误会在界面上表现为an exception occured processing jsp page。这种一般就是运行时错误。
     
     
    四、错误处理
    如果jsp页面不做处理,那么容器就会捕捉这些异常,让像上面这样显示出来。
    如果我们想要针对某个页面,或者针对某个特殊类型的异常做处理,则可以在jsp页面和web.xml文件中做一些配置,下面仅给出两个例子,不想详细展开说》
    1)指定页面发生错误时,转到另外一个错误处理页面 errorPage, isErrorPage配合使用
    ....
     
     
    2)在web.xml文件中配置,指定异常发生时
    3)指定html错误码发生时
     



  • 相关阅读:
    前端HTMLCSS
    jedis 连接池的使用
    win8+安装net3.5步骤与常见错误.
    并行线程的生命周期
    OneNote截图快捷键冲突解决方案
    C#中lsitView如何搜索某个子项
    redis哨兵与集群
    git笔记
    微软官方Hololens开发课程介绍
    Markdown使用入门简介
  • 原文地址:https://www.cnblogs.com/strinkbug/p/4895692.html
Copyright © 2020-2023  润新知