JSP(一)

Web服务器使用JSP来创建网页的步骤:

1.客户端向服务器发送一个HTTP请求。

2.服务器识别是对JSP网页的请求后将其请求传递给Servlet引擎。

3.Servlet引擎将磁盘中的Jsp文件转化为Servlet类,并将所有的元素转化为Java代码

4.JSP引擎将Servlet类编译成可执行的文件并将最原始的请求发送给Servlet引擎

5.服务器通过调用Servlet引擎来执行Servlet可执行文件,Servlet会产生HTML格式的输出内嵌在HTTP Response中并将其上传给服务器

6.服务器将其以HTML的格式上传到客户端的浏览器中以静态页面的形式展现给用户。

JSP 生命周期

  • 编译阶段:

    servlet容器编译servlet源文件,生成servlet类

  • 初始化阶段:

    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

  • 执行阶段:

    调用与JSP对应的servlet实例的服务方法

  • 销毁阶段:

    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例


JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。


它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP语法:

     

JSP声明 
<%! int i = 0; %> 

JSP表达式

<%= 表达式 %>

JSP注释

JSP注释主要有两个作用:为代码作注释以及将某段代码注释掉

JSP指令

JSP指令用来设置与整个JSP页面相关的属性。

JSP行为

JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。


JSP隐含对象

JSP支持九个自动定义的变量,江湖人称隐含对象。这九个隐含对象的简介见下表:

对象 描述
request HttpServletRequest类的实例
response HttpServletResponse类的实例
out PrintWriter类的实例,用于把结果输出至网页上
session HttpSession类的实例
application ServletContext类的实例,与应用上下文有关
config ServletConfig类的实例
pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page 类似于Java类中的this关键字
Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

一个JSP页面可以被分为以下几部份:
  • 静态数据,如 HTML
  • JSP指令,如include指令
  • JSP脚本元素和变量
  • JSP动作
  • 用户自定义标签
  • 静态数据
    1、数据在输入文件中的内容和输出给 HTTP响应的内容完全一致。此时,该JSP输入文件会是一个没有内嵌JAVA或动作的HTML页面。而且,客户端每次请求都会得到相同的响应内容。
          2、jsp指令
    指令 描述
    <%@ page ... %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
    <%@ include ... %> 包含其他文件
    <%@ taglib ... %> 引入标签库的定义
    <%@ page attribute="value" %>
    属性 描述
    buffer 指定out对象使用缓冲区的大小
    autoFlush 控制out对象的 缓存区
    contentType 指定当前JSP页面的MIME类型和字符编码
    errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
    isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面
    extends 指定servlet从哪一个类继承
    import 导入要使用的Java类
    info 定义JSP页面的描述信息
    isThreadSafe 指定对JSP页面的访问是否为线程安全
    language 定义JSP页面所用的脚本语言,默认是Java
    session 指定JSP页面是否使用session
    isELIgnored 指定是否执行EL表达式
    isScriptingEnabled 确定脚本元素能否被使用

  • Include指令

    JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

    Taglib指令

    JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。

    Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。


  •  

    JSP 动作元素

    与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。

    利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。

语法 描述
jsp:include 在页面被请求的时候引入一个文件。
jsp:useBean 寻找或者实例化一个JavaBean。
jsp:setProperty 设置JavaBean的属性。
jsp:getProperty 输出某个JavaBean的属性。
jsp:forward 把请求转到一个新的页面。
jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性。
jsp:body 设置动态定义的XML元素内容。
jsp:text 在JSP页面和文档中使用写入文本的模板

  • id属性:

    id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。

  • scope属性:

    该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application。

  • <jsp:include>动作元素

    <jsp:include>动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。语法格式如下:

    <jsp:include page="相对 URL 地址" flush="true" />

    <jsp:useBean>动作元素

    jsp:useBean 动作用来加载一个将在JSP页面中使用的JavaBean。

    这个功能非常有用,因为它使得我们可以发挥 Java 组件复用的优势。

    jsp:useBean动作最简单的语法为:

    <jsp:useBean id="name" class="package.class" />

    <jsp:setProperty>动作元素

    jsp:setProperty用来设置已经实例化的Bean对象的属性,有两种用法。首先,你可以在jsp:useBean元素的外面(后面)使用jsp:setProperty,如下所示:

    <jsp:useBean id="myName" ... />
    ...
    <jsp:setProperty name="myName" property="someProperty" .../>

    此时,不管jsp:useBean是找到了一个现有的Bean,还是新创建了一个Bean实例,jsp:setProperty都会执行。第二种用法是把jsp:setProperty放入jsp:useBean元素的内部,如下所示:

    <jsp:useBean id="myName" ... >
    ...
       <jsp:setProperty name="myName" property="someProperty" .../>
    </jsp:useBean>

    此时,jsp:setProperty只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty。

    jsp:setProperty动作有下面四个属性,如下表:

    <jsp:getProperty>动作元素

    jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。语法格式如下:

    <jsp:useBean id="myName" ... />
    ...
    <jsp:getProperty name="myName" property="someProperty" .../>

    <jsp:forward> 动作元素

     jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。语法格式如下所示:

    <jsp:forward page="相对 URL 地址" />

    <jsp:plugin>动作元素

    jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素。

    如果需要的插件不存在,它会下载插件,然后执行Java组件。 J


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值