您的位置:首页 > Web前端 > JavaScript

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

2015-11-17 20:43 555 查看
一、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()方法有什么不同

   【问题解决】

        


      

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jsp