JSP (Java Server Pages) |
|
由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件 JSP页面的扩展名必须为.jsp |
|
1:在HTML中嵌入Java脚本代码 |
|
2:由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码 |
|
3:然后将生成的整个页面信息返回给客户端 |
|
|
|
|
|
Servlet的缺陷 |
|
Servlet的编码、部署和调试任务繁琐 |
|
生成动态网页繁琐,不利于项目分工 |
|
采用JSP技术编写动态页面 |
|
由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件 |
|
JSP页面的扩展名必须为.jsp |
|
|
|
Web容器第一次接收到对某个JSP页面的请求后,首先自动将该JSP页面翻译为Servlet代码 |
|
在JSP生命周期中,整个翻译和编译步骤只发生一次 |
|
Web容器第一次接收到对某个JSP页面的请求后,首先自动将该JSP页面翻译为Servlet代码 |
|
HelloWord.jsp----HelloWord_jsp.java |
|
|
|
Web容器负责将Servlet代码编译为字节码。与源文件放在同一个目录下 |
|
|
|
Web容器装载新生成的servlet类 |
|
Web容器创建servlet实例 |
|
Web容器调用Servlet示例的jspInit()方法,JSP页面装载资源 |
|
容器创建一个新线程来处理这个客户的请求 |
|
servlet对象的_jspService()方法运行 |
|
容器调用生成的servlet对象的jspDestroy()方法,销毁装载的资源 |
|
|
|
|
|
生命周期 |
|
由JSP引擎将JSP页面翻译成JAVA代码 |
|
将JAVA代码编译成class字节码文件 |
|
加载到容器 |
|
由容器实例化成对象 |
|
|
|
|
|
|
|
|
|
|
|
jsp页面元素包括: |
|
静态html |
|
指令<%@ %>--这样 |
|
表达式<%= 表达式%> |
|
脚本<%java code%> |
|
申明<%!java function%> |
|
注释<!--注释语句--> |
|
|
|
|
|
案例1 |
|
查看page指令--jsp中查看 |
|
在jsp中使用小脚本 |
|
案例1: |
|
<% |
|
for(int i=0;i<10;i++){ |
|
out.print("<h1>"+i+"</h1>"); |
|
} |
|
%> |
|
在jsp中使用表达式 |
|
<% |
|
for(int i=0;i<10;i++){ |
|
%> |
|
<h1 style="color: red"><%=i %></h1> |
|
<% |
|
} |
|
%> |
|
在jsp中申明方法,在后边调用 |
|
|
|
在JSP中,有三种类型的指令 |
|
page指令为当前页面提供处理指令 |
|
include指令用于把另一个文件包含在JSP中 |
|
taglib指令指定如何包含和访问自定义标签库 |
|
|
|
1: |
|
page指令 |
|
通过设置内部的多个属性来定义整个页面的属性 |
|
语法:<%@ page 属性1="属性值" 属性2="属性值1,属性值2"… 属性n="属性值n"%> |
|
|
|
常用属性: |
|
language |
|
import |
|
contentType |
|
注意它的session属性 |
|
注意:isErrorPage 和errorPage的使用以及webxml中的使用 |
|
|
|
2: |
|
include指令表示在JSP编译时插入一个包含文本或者代码的文件 |
|
把文件中的文本静态地包含过去 |
|
|
|
案例:演示包含jsp文件 |
|
|
|
taglib以后再讲 |
|
|
|
5、九大内置对象: |
|
四个作用域: |
|
pageContext 页面上下文对象,此对象封装了其他对象的获取方式,当前页(了解) |
|
request 其实就是请求对象,使用方式和Servlet一致 |
|
session 其实就是session对象 |
|
application 其实就是ServletContext对象 |
|
两个输出: |
|
out 输出对象 |
|
response 输出对象,比resp对象多了缓冲区,效率提高 |
|
三个打酱油: |
|
page 代表被页面对象 |
|
config ServletConfig |
|
exception 异常对象,摒弃了 |
|
|
|
|
|
测试配置参数serlvetConfig--配置文件的使用 |
|
|
|
pageContext的使用 |
|
|
|
|
|
访问范围大小 |
|
pageContext<request<session<ServletContext |
|
|
|
活动元素 |
|
转发 |
|
<jsp:forward page=""/>--跳转标签 |
|
|
|
<jsp:include page="localURL" flush="true" > |
|
<jsp:param name="aaa" value="ff"/> |
|
</jsp:include> |
|
|
|
|
|
包含页面 |
|
<jsp:include page="index.jsp"> --包含标签(注意和前边的区别) |
|
<jsp:param name="pwd" value="admin" />(这里注意Parameter) |
|
</jsp:include> |
|
|
|
|
|
在指定的范围绑订一个对象 |
|
scope范围pageContext,request,session,servletContext |
|
<jsp:useBean id="user" scope="request" class="com.pojo.User"></jsp:useBean> |
|
|
|
|
|
依据请求参数给属性赋值。 |
|
jsp:setProperty |
|
|
|
<jsp:useBean id="user" class="com.pojo.User"></jsp:useBean> |
|
<jsp:setProperty property="name" value="zhangsan" name="user"/> |
|
<jsp:setProperty property="age" value="18" name="user"/> |
|
|
|
<%=user.getName() %> |