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页面时,服务端的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/PHP基于Ajax的分页功能实现
- 开发阶段Jetty运行Jsp报错且响应空白
- jsp简单实现页面之间共享信息的方法
- Apache Web让JSP“动”起来
- JSP学习经验小结分享
- JSP 多条SQL语句同时执行的方法
- 在jsp页面中响应速度提高的7种方法分享
- (jsp/html)网页上嵌入播放器(常用播放器代码整理)
- JSP上传excel及excel插入至数据库的方法
- JSP中文乱码常见3个例子及其解决方法
- jsp实现将动态网页转换成静态页面的方法
- JSP避免Form重复提交的三种方案
- 纯jsp实现的倒计时动态显示效果完整代码
- JSP实现添加功能和分页显示实例分析
- JSP中param标签用法实例分析
- JSP实现从不同服务器上下载文件的方法
- jsp 标准标签库简析
- jsp实现针对excel及word文档的打印方法