04 06 2008
java server page
servlet:
java代码中嵌入html代码
jsp:
html代码中嵌入java代码
美工人员开发.html .htm
java开发人员将.html页面转换成.jsp,并且将里面的静态内容变成动态内容。
xxxx.jsp就是一个web组件
什么是jsp?
1.jsp是sun制定的j2ee中的其中一个规范
2.jsp在开发的时候就是一个以.jsp为结尾的文件,它是一个组件(可重用,可插版)
3.jsp运行的时候就是一个servlet ,运行时实际上jsp文件需要被jsp引擎(web容器自带)转换成servlet运行
jap文件中可以出现的内容:
1.静态内容:
html,xml,text,css,js
2.动态内容:
jsp元素,java代码,标签(tag)
jsp文件放在应用的根目录下
WEB-INF
jsp的生命周期:
1)翻译阶段:
由jsp引擎将一个.jsp文件翻译成一个.java文件(servlet源文件)
2)编译阶段:
将翻译后的.java文件编译成.class文件
3)装载和实例化阶段
由web容器转载.class文件,并且实例化一个servlet对象
4)执行阶段
客户端发起一个请求,由web容器调用servlet对象,处理请求
第一次访问和修改的时候都要经过所有的阶段,
第一次访问结束之后 之经过执行阶段
重启服务器之后访问 要经过 转载和实例化阶段-->执行阶段
jsp被翻译成servlet之后需要实现一个接口 javax.servlet.jsp .HttpJspPage
三个生命周期回调方法
jspDestroy()
jspInit()
_jspService(...)
jsp基本语法:
1)指令元素(Directives)
例: <%@dirrctivaName attrName="attrValue"%>
page指令:指令jsp页面的一些属性说明 写法:<%@page import=".." contentType=".."%>
include指令:包含其他页面内容(静态包含) <%@include file=""%>(在翻译阶段包含进来)
相对路径;
根据当前页面路径和被包含页面的路径进行计算
绝对路径
以“/”开始,后跟页面的路径
taglib指令:导入标签库 <%@taglib uri="" prefix=""%>
导入标签的目的(作用):在jsp页面中消除java代码
2)脚本元素(Scriplets):目的:嵌入java代码
a)声明(Declarations)
语法:<%! .. %> 作用:声明一些变量,方法内部类等等
b)表达式(Expressions) :使用表达式不加分号
语法:<%= .. %> 作用:输出数据到客户端
c)脚本(Scripiets) 结束加分号
语法:<% .. %> 作用:在jsp 的_jspService方法中嵌入java代码
3)动作元素(Actions)--->jsp自带的标签
语法:<jsp:tagName attrName="attrValue"></jsp:tagName>
a)include标签==>封装了请求转发器的include方法的功能
包含其他页面(动态包含)
语法:<jsp:include page="" flush=""/>
b)forward标签==>封装了请求转发器的forward方法的功能
语法:<jsp:forward page="" />
c)useBean标签
d)SetPropety标签
e)getPropety标签
f)Param标签
将参数设定到request对象中,一般都是作为其他标签的子标签。
语法:<jsp:param name="" value=""/>
include指令和include动作元素的比较
1)include指令包含页面是在翻译的时候进行的,而include动作元素则在运行时进行
2)如果被包含的页面内容发生变化,那麽通过include指令进行包含的页面需要重新翻译,而通过include动作元素进行包含的页面无需重新进行翻译
jsp:中的注释:
1)java注释 在脚本中可以使用
2)xml/html
<!-- -->
3)隐藏注释
<%-- --%> 可以注释jsp中的动态页面
servlet源文件 页面源文件 浏览器
java注释 出现 不出现 不出现
xml/html注释 出现 出现 不出现
隐藏注释 不出现 不出现 不出现
jsp中的错误调式
1)jsp语法错误
.java .class 文件不产生
2)java语法错误
.java产生 .class不产生
3)运行时异常
.java文件产生 .class文件也产生 通过浏览器上异常抛出的点来确定错误产生的位置.
浙公网安备 33010602011771号