关闭

JSP运行原理、指令元素及内建对象

标签: jsp
160人阅读 评论(0) 收藏 举报

一、JSP工作原理

       当客户端表单把请求提交给JSP页面时,服务端的JSP引擎从服务器磁盘上找到该JSP文件,然互把它解析成Java文件,接着该Java文件被编译成class文件。然后执行该class文件处理请求。处理完请求生成了一个HTML文件,最后JSP引擎负责将该HTML文件发送到客户端去显示。

二、JSP生成java文件路径

     【问题描述】JSP被访问时,先由Web服务器对其进行解析,把它翻译成java文件,那这些java文件被存放在什么地方并怎样找到他们?

     【问题解决】在Tomcat服务区的安装目录下,有个work文件夹,在目录/work/Catalina/localhost下可以看到以各个工程命名的文件夹,这些文件下里存储的就是JSP文件翻译后的java文件。

三、JSP指令元素

      指令元素是指在JSP文件中包含在符号"<%@"和"%>"之间的部分,在jsp文件转换成Java代码时,web容器也会将他们翻译成对应的Java代码。一般有page,include,taglib3种指令。

      page指令用来定义页面的全局属性,其常见的属性如下图所示:

            

      include指令用来将指定位置的文件包含到当前jsp文件中。这些被包含的资源会作为JSP文件的一部分被翻译成Java文件,因此它们也是JSP文件的一部分。(注意该指令与jsp动作元素<jsp:include page="fileName" flush="true">的区别)指令格式如下:

             <%@ include file="filename"%>

      taglib指令用于让用户自己定义标签。指令格式如下:

             <%@  taglib url="taglibURL"  prefix="taglibPrefix" %>

四、JSP内建元素对象

    1、out对象:out对象在JSP文件中用来想客户端发送输出流的东西。一般使用print()和println()方法想客户端输出。

    2、request对象:request对象用来封装客户端请求,通过它可以获得客户端传到服务器端的数据以及客户端的一些信息。该对象常用的方法如下:

          

    3、response对象:该对象常用的方法如下

          

    4、session对象:session对象用来保护每个用户的信息,该对象常用的方法如下

          

    5、pageContext对象:pageContext对象是JSP文件包装当前页面的上下文,所以通过它可是获得当前页面部分已命名对象的访问,例如:request、response、session、servletContext等。该对象常用的方法如下:

    6、application对象:application用来封装多个应用程序的信息,一个web服务器的所用用户都使用同一个application对象,所以application对象可以被所有用户获取并进行操作。

    7、exception对象:该对象用来封装运行时出现的异常信息。只能在处理错误的页面使用(需在页面指令中声明isErrorPage="true"),调用exception.getMessage()方法去获得出错信息。

   【问题描述】pageContext,session,servletContext这3个对象的区别

   【问题解决】pageContext的属性可以在该页面才能访问到,即在页面1中pageContext.setAttribute("name",mary),在页面2中pageContext.getAttribute("name")的值却为null;

session的属性只有在同一次会话中才能被访问到,例如在浏览器1的JSP文件中session.setAttribute("name",mary),在浏览器2的JSP文件中session.getAttribute("name")的值却为null。servletContext的属性则可以被多个页面访问,例如:在浏览器1的JSP文件中servletContext.setAttribute("name",mary),在浏览器2的JSP文件中servletContext.getAttribute("name")的值则是mary。

    【问题描述】request对象的getAttribute()和getParameter()方法有什么不同

   【问题解决】

        

      

    





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:762次
    • 积分:27
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档