JSP

JSP(更新中)

1. jsp网页处理流程图

在这里插入图片描述

2.JSP生命周期
  1. 编译阶段:

    servlet容器编译servlet源文件(上述的hello.jsp),生成servlet类(上面流程图的helloSevlet.java)

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

  3. 执行阶段:
    调用与JSP对应的servlet实例的服务方法

  4. 销毁阶段:
    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

  • 例子:
    当一个jsp页面发送到jsp引擎的时候,jsp引擎会首先检测是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。然后初始化jsp(创建实例,调用jspInit()方法。当用户访问一次该页面,就执行一次该jsp实例的jspSevice()方法。当该页面被被更改,jsp容器先移除先前页面(执行jspDestroy方法),然后重新编译这个jsp文件。
3.jsp语法
  1. 脚本程序格式:可包含任意 java 语句、变量、方法或表达式,需要放在脚本语言中才有效。
    格式:<% 代码片段 %>

  2. JSP变量,方法的声明格式<%! 代码片段 %>

  3. JSP表达式的格式:一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。格式:<%= 表达式 %>

  4. JSP注释

    • <%-- 注释 --%> :JSP注释,注释内容不会被发送至浏览器甚至不会被编译。
    • <!-- 注释 -->:HTML注释,通过浏览器查看网页源代码可以看见注释内容。
  5. 解决中文页面显示问题:在JSP文件头部加上

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    
  6. JSP指令标签(用于设置JSP页面相关的属性,如编码方式、脚本语言等):
    JSP中三种指令标签:

    描述
    %@ page 标签属性=“值” %>
    <%@ include 标签属性=“值” %>
    <%@ taglib 标签属性=“值” %>

    如:<%@ page language="java" %>:设置脚本语言为java.
    page指令(page指令为容器提供当前页面的使用说明,一个JSP页面可以包含多个page指令)
    page指令标签的部分相关属性:

    属性描述
    buffer指定out对象使用缓冲区的大小
    import导入要使用的java类
    errorPage当JSP页面发生异常时需要转向的错误处理页面
    contectType指定当前JSP页面的MIME 类型和字符编码
    session指定JSP页面是否适用session
    isThreadSafe指定JSP页面的访问是否为线程安全
    extends指定servlet从哪个类继承

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

    格式:<%@ include file="文件相对 url地址“%>

    文件名是一个相对的URL地址,若没给文件关联一个路径,JSP编译器只会在当前路径下寻找

    taglib指令

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

    格式:<%@ taglib uri="uri" prefix="prifixOfTag" %>其中uri是自定义标签库的位置,prefix为指定标签库的前缀。

  7. JSP行为标签(动作元素)

    JSP行为标签与指令标签不同,JSP行为标签在页面请求处理阶段起作用。JSP行为标签使用XML语法结构写的,可以控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户重定向到另一个页面,为Java插件产生相关的HTML等等。

    行为标签只有一种语法格式,它严格遵守XML标准:

    格式:<%jsp:include page="相对url地址" flush="true"%>:page属性:包含页面的相对url地址,flush属性:定义包含资源前是否刷新缓冲区。
    (与JSP指令标签不同,这里的行为标签是在页面访问时才引入文件。而指令标签是在.jsp转为servlet.java时引入文件)
    jsp:include:将指定的静态和动态文件插入到正在生成的页面。
    jsp:useBean:加载javaBean(编译好的java类)
    jsp:setProperty:设置已经实例化的Bean对象属性。
    jsp:getProperty:获取指定的Bean属性值,转换为字符串输出。
    jsp:forward:转向另一个页面
    jsp:plugin:插入一些运行 java applet必要的插件。
    jsp:elementjsp:attributejsp:body:用于动态定义XML元素。
    行为标签基本上是一些预先就定义好的函数,下表罗列出了一些可用的JSP行为标签::

    语法描述属性
    jsp:include用于在当前页面中包含静态或动态资源page,flush
    jsp:useBean寻找和初始化一个JavaBean组件class,type,beanName
    jsp:setProperty设置 JavaBean组件的值name,property,value,param
    jsp:getProperty将 JavaBean组件的值插入到 output中name,property
    jsp:forward从一个JSP文件向另一个文件传递一个包含用户请求的request对象page
    jsp:plugin用于在生成的HTML页面中包含Applet和JavaBean对象
    jsp:element动态创建一个XML元素
    jsp:attribute定义动态创建的XML元素的属性
    jsp:body定义动态创建的XML元素的主体
    jsp:text用于封装模板数据

    行为标签常见的属性
    上面的行为标签都包含两个属性:id 和 scope
    - id属性:动作的唯一标识,可以在JSP页面引用。动作元素创建的id值可以通过PageContext来调用。
    - scope属性:定义了关联id元素对象的寿命。(page,request,session,application)

  8. JSP隐含对象(9个)

    对象描述
    requestHttpServletRequest类的实例
    responseHttpServletResponse类的实例
    outPrintWriter类的实例
    sessionHttpSession类的实例
    applicationServletConfig类的实例
    pageContextPageContext类的实例,提供对JSP页面内所有对象及命名空间的访问
    configServletConfig类的实例
    page类似于java中的this关键字
    ExceptionException类的对象

    完整使用javaBean示例:

    <jsp:useBean id="test" class="model.User"></jsp:useBean>
    <jsp:setProperty property="userName" name="test" value="袁欢"/>
    <jsp:getProperty property="userName" name="test"/>
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值