1,jsp是什么?
jsp是建立在servlet规范功能至上的动态网页技术,与asp和php相似,都是在网页文件里嵌入脚本代码,产生动态的内容,只不过jsp使用的脚本语言是java语言。
jsp文件在用户第一次请求是,web容器会把jsp文件编译成servlet,再有servlet处理用户请求,jsp本质上就是servlet。
2,jsp文件的执行过程:请求jsp文件-》web容器检验jsp语法是否正确-》将其转换成servlet的源文件-》javac编译工具把该源码文件编译成clss文件-》创建servlet实例-》以servlet的方式为请求提供服务。
3,jsp元素的三中内容:指令元素,脚本元素,动作元素。
指令元素有:page include,taglib 指令元素为jsp的转换过程提供一些配置信息,不会产生任何的输入。
page指令就是设置页面的属性,这些属性将用于web容器转换和编译jsp的时候使用。
<%@ page
[ language="java" ]
[ extends="package .class" ]
[ import="{package .class | .*}, ..." ]
[ session="true|false" ]
[ buffer="none|8kb|sizekb" ]
[ autoFlush="true|false" ]
[ isThreadSafe="true|false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" |
"text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true|false" ]
%>
include 指令用于将其他页面的内容引入,包括jsp,html ,文本文件等只有一哥属性file
taglib指令用于引入一个标签库。在使用标签时,需要制定标签库的uri唯一标示符,和prefix前缀。
脚本元素:分为声明<!% %>,脚本段<% %>,表达式<%= %>。声明是为添加成员变量的代码。脚本段是添加代码段到服务的方法里。表达式是一个输出语句。
动作元素为请求在处理阶段,也就是servlet的提供服务阶段提供一些信息,好像做了某个动作,影响了返回客户端的结果。
动作元素 的最大好处是可以使用一个标签来完成一个复杂的功能使代码更衣阅读和维护。
一、JSP动作元素分类
JSP动作元素分为如下五类。
第一类是与存取JavaBean有关的,包括如下三个动作元素。
<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>
第二类是JSP基本动作元素,也是JSP 1.2就开始有的动作元素,包括如下六个动作元素。
<jsp:include>、<jsp:forward>、<jsp:param>、<jsp:plugin>、<jsp:params>、<jsp:fallback>
第三类是JSP 2.0新增的动作元素,主要与JSP document有关,包括如下六个动作元素。
<jsp:root>、<jsp:declaration>、<jsp:scriptlet>、<jsp:expression_r>、<jsp:text>、<jsp:output>
第四类也是JSP 2.0新增的动作元素,主要用来动态的生成XML元素标签的值,包括如下三个动作元素。
<jsp:attribute>、<jsp:body>、<jsp:element>
第五类也是JSP 2.0新增的动作元素,主要用来Tag File中,包括如下两个动作元素。
<jsp:invoke>、<jsp:doBody>
4,jsp页面的三种注释:
<!---->jsp注释
java注释
<%----%>隐藏注释
5,jsp的九种内置对象:
(1).request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
(2).response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
(3).session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。
(4).out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
(5).page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例 。
(6).application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
(7).exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象。
(8).pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
(9).config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一ServletContext对象)
6,jsp和servlet的关系是什么?
jsp是一种脚本语言,包装了servlet系统的界面,简化了java和servlet的使用难度。jsp仍没有超出java和servlet的使用范围,不仅jsp页面内可以使用java代码,而且jsp是先编译成servlet之后才开始运行的。jsp在服务器上执行,并将输出结果返回给客户端浏览器,可以说基本上与浏览器无关。换句话说,jsp是一种特殊的servlet。jsp与servlet的主要差异在于,jsp提供了一套简单的标签,和html融合的相当好,可以使不了解servlet的人做出动态网页。对于java语言不熟悉 的人觉得jsp开发比较方便。jsp修改后可以立即看到结果,不需要手工编译,jsp引擎会来做这些工作;而servlet确需要编译,重新启动servlet引擎一系列动作。除了转换和编译阶段,区别不大。