• JSP学习笔记(2)-JSP语法


    1.JSP页面的基本结构

    (1)HTML标记符
    (2)JSP标记
    (3)变量和方法的声明
    (4)Java程序片
    (5)Java表达式

    2.变量和方法的声明

    成员变量和方法

    语法:<%! 变量、方法%>
    成员变量占用的内存知道JSP引擎关闭才释放;

    局部变量和方法

    语法:<% 变量、方法%>
    当一个线程将Java程序片执行完毕,运行该线程的Java程序片的局部变量释放所占的内存;

    比较

    当客户请求时,JSP引擎为客户分配一个线程,JSP页面中的成员变量共享,如果对成员变量进行操作,必然会影响到其他线程;
    声明操作局部变量时,使用单线程方式分配cpu的使用权限,多个客户请求不会彼此影响;
    解决成员变量相互影响问题:使用synchronized关键字修饰要操作的成员变量或方法,直到当前线程使用完毕,其他线程才能对成员变量或方法操作。

    Java表达式

    语法:<%=值或表达式%>

    3.JSP注释

    HTML注释
    <!--注释-->用户可见
    JSP注释
    <%--注释--%>用户不可见

    4.JSP指令标记

    (1)page指令标记

    page指令标记用来定义整个页面的一些属性和这些属性的值,属性值用双引号或者单引号括起来。一个page指令可以指定多个属性。
    格式:<%@ page 属性="属性值"%>
    page指令标记属性

    1.ContentType属性

    作用:确定JSP页面响应的MIME类型和JSP页面字符编码。
    格式:<%@ page contentType="MIME类型"%>或<%@ page ContentType="MIME类型;字符编码"%>
    注意:只能指定一个值,只允许指定一次

    2.language属性

    作用:定义JSP页面使用的脚本语言,目前取值只能是“Java”
    格式:<%@ page language="java"%>

    3.import属性

    作用:为JSP页面引入要使用的Java类
    格式:<%@ page import="包或类"%>
    该属性值可以是多个,JSP页面默认import属性值有:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;

    4.session属性

    作用:用来设置是否需要使用内置的session对象
    格式:<%@ page session="true(默认)或flase"%>

    5.buffer属性

    作用:用来指定out设置的缓冲区大小或者不使用缓冲区
    格式:<%@ page buffer="8kb(默认)或none"%>

    6.autoFlush属性

    作用:用来指定out缓冲区填满时是否自动刷新
    格式:<%@ page autoFlush="true(默认)或flase"%>
    注意:当buffer属性值为none时,此属性值不能设置为flase

    7.isThreadSafe属性

    作用:用来设置JSP页面是否允许多线程访问
    格式:<%@ page isThreadSafe="true(默认)或 flase"%>

    8.info属性

    作用:为JSP页面准备一个常用但可能经常修改的字符串
    格式:<%@ page info="字符串"%>
    获取:getServletInfo();

    9.extends:设置当前JSP页产生的Servlet继承哪个父类。

    10.pageEncoding:用来设置JSP页面的字符编码,默认值是"ISO-8859-1" 。

    11.errorPage:指定一个当前页面出现异常时所要调用的页面。如果属性值是以"/"开头的路径,则将在当前Web应用的根目录下查找文件;否则在当前目录下查找文件 。

    12.isErrorPage:设置为true,说明在当前页面中可以使用excpetion异常对象。若在其他页面中通过errorPage属性指定了该页面,则当调用页面出现异常时候,会跳转到该页面,并且在该页面中可以通过exception对象输出错误信息。相反,如果将该属性设置为false,则在当前页面中不能使用execption对象。该属性默认值为false 。

    13.isELlgnored:可以使JSP容器忽略表达式语言"${}"。其值只能是ture或false。设置为true则忽略表达式语言;设置为false,则不忽略表达式语言 。

    (2)include指令标记

    作用:在JSP页面出现该指令的位置,静态插入一个文件
    格式:<%@ include file="文件url"%>
    注意:插入文件如果是JSP页面,其contentType应该与当前JSP页面一致

    5.JSP动作标记

    影响JSP运行时的功能

    (1)include动作标记

    作用:
    格式:<jsp:include page="文件url"/>或者
         <jsp:include page="文件url">
          param子标记
         </jsp:include>
    注意:当include动作标记不需要param子标记时,必须使用第一种形式;

      include指令标记和include动作标记比较

      include指令标记是在编译阶段就处理所需的文件,被处理的文件逻辑和语法上依赖当前的JSP页面,其优点是运行速度快;
      include动作标记是在JSP页面运行时才处理文件,被处理的文件逻辑和语法上独立于当前JSP页面,其优点是可以使用param子标记更灵活的处理所需文件,缺点是运行速度慢一些。

    (2)param动作标记

    作用:以"名字-值"对的形式为其他标记提供附加信息
    格式:<jsp:param name="名字" value="指定给param的值">

    (3)forward动作标记

    作用:从该指令处停止当前页面的执行,而转向执行page属性指定的JSP页面
    格式:<jsp:forward page="要转向的页面"/>或
         <jsp:forward page="要转向的页面">
          param子标记
         </jsp:forward>
    注意:使用该标记转向指定页面之后,显示的是转向后的页面,实际地址依然是转向前JSP页面的url,刷新后显示转向前页面。

    (4)useBean动作标记

    作用:用来创建并使用一个Javabean
    格式:<jsp:useBean id="bean的名字" class="创建bean的字节码" scope="bean的有效范围"/>或
         <jsp:useBean id="bean的名字" class="创建bean的类" scope="bean的有效范围"></jsp:useBean>

     

    (5)plugin 动作标识     

    在页面中使用普通的HTML标记<applet …> </applet>可以让客户下载运行一个java applet小应用程序,但并不是所有的客户浏览器都支持java applet小程序,如果该应用程序使用了JDK1.2以后的类,IE可能不支持。使用plugin动作标识可以保证客户能执行你的小应用程序。
        该动作标识指示JSP页面加载java plugin,该插件由客户负责下载,并使用该插件来运行Java applet。
        plugin 动作标识格式:
        <jsp:plugin type="applet" code="小应用程序的字节码文件" jreversion="java虚拟机版本号" width="小程序宽度值" height="小程序高度值" >
            <jsp:fallback>
               提示信息:用来提示用户的浏览器是否支持插件下载
           </jsp:fallback>
        </jsp:plugin>
               假设有一个java applet小程序,主类字节码文件是:B.class,该文件存放在Root下。含有plugin标记的JSP文件也存放在Root下。

    (6)fallback 动作标识

        <jsp:fallback> text message for user </jsp:fallback>
         当不能启动Applet时,显示给用户的文本信息。如:
        <jsp:plugin type="applet" code="Clock2.class" codebase="/webdev/ch4 /applet" jreversion="1.2" width="160" height="150" > <jsp:fallback> Plugin tag OBJECT or EMBED not supported by browser. </jsp:fallback> </jsp:plugin>

  • 相关阅读:
    Permission Denial: opening provider 隐藏的android:exported属性的含义
    GPL & Apache License
    JAVA把毫秒数转换成日期
    Android开发–Intent-filter属性详解
    [转]unix/linux中的dup()系统调用
    【转载】技术的正宗与野路子
    virtualbox -centos ping不通外网
    GNU Make 手册中文版
    Git源码学习
    git-gui
  • 原文地址:https://www.cnblogs.com/pinnsvin/p/5515428.html
Copyright © 2020-2023  润新知