相关JSP
工作原理:
1.翻译阶段:当容器接受到客户端的请求后,先判断被请求的jsp是否存在,若不存在返回404错误,如存在,将该jsp先翻译成一个servlet
2.编译阶段:将servlet的源文件编译成一个字节码文件,然后有容器将其装载进虚拟机并构造出一个实例对象(单例)。
3.执行阶段:按照servlet生命周期(init(),service(),destory())的过程来运行servlet。
补充:如果被请求的jsp已经有对应的servlet实例对象,那么直接运行该servlet。如果jsp的源文件发生变化,那么要重新将jsp翻译成servlet,再编译,装载和实例化,最后运行。
-----------------------------------------------------
MVC
1.M(Model)--------------->JavaBeans
2.V(view)----------------->jsp
3.C(Controllor)---------->servlet
-----------------------------------------------------
JSP中的元素
1.脚本元素
a.声明(declaration)
语法:<%!declaration%>
作用:为servlet声明一些成员变量,成员方法和内部类
注意:声明的内容处于jspService()方法之外。另外,在声明中不能使用表达式和隐含对象。
b.表达式(expression)
语法:<%=expression%>
作用:将expression写入到输出流中,expression的内容最终显示在页面上。
expression可以是变量、(算术、逻辑、关系表达式)、带返回值的方法、9种隐含对象。
表达式中的输出值都一律被转换成字符串后再写到输出流out(JspWriter)中
注意:expression中不能出现(;)
c.脚本(scriptlet)
语法:<%java code%>
作用:在jsp中嵌入java代码
注意:脚本(java代码)被翻译进servlet的jspservice()方法中。
2.指令元素
a.page指令
语法:<%@ page attribute="attributeValue"....%>
作用:利用page指令中的这些属性可以和容器进行通信,这些属性的设置对整个jsp都有影响。
b.include指令
语法:<%@ include file="url"%>
称为静态导入。比如:页面的logo和版权信息。
作用:在当前jsp中导入另一页面的内容(这些内容一般不变化)。
特点:在jsp翻译成servlet时就将被导入的页面内容嵌入到jspService()中,发生在编译阶段。
优点:执行效率高。
缺点:若被导入的页面的内容一旦发生变化,那么jsp必须要重新被翻译。
c.taglib指令
语法:<%@ taglib url="/web-inf/a.tlb" predix="**"%>
作用:用于在jsp中制定要使用的标签库描述文件的(*.tld)路径.
3.动作元素
a.动态导入
语法:<jsp:include page="url" flush="true/false"/>或者
<jsp:include page="url" flush="true/false">
[<jsp:param.../>]*
.......
</jsp:include>
作用:在一个页面导入另外一个页面的内容
特点:动态导入发生在执行阶段,也就是在运行servlet的时候才动态生成被导入页面的内容,然后嵌入到调用页面,最后两个页面的内容一起返回给客户端
注意:在翻译阶段并没有导入
缺点:执行效率没有静态导入高。
优点:如果被导入的页面内容发生变化,不必重新编译。
b.forward
语法:<jsp:forward page="url"/>
--------------------------------------------------------
jsp注释
1.html/xml注释
语法:<!----content------>
特点:被注释的内容会出现在翻译后的servlet中,也会出现在客户端的页面的源文件中,但是不会显示在浏览器中。
注意:只能注释html,xml,不能注释java代码。
2.隐藏注释
语法:<%----content----%>
特点:被注释的内容不会出现在翻译后的servlet中,在客户端也不会出现。
注意:可以注释jsp中所有的内容。
3.脚本注释
语法:<%
//java code
/**java code*/
%>
特点:被注释的内容出现在翻译后的servlet中,但是不会出现在客户端。
------------------------------------------------------
JSP内置对象
名称 类型 注释和范围
request javax.servlet.http.httpRequest request
response javax.servlet.http.httpResponse &nbs