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>

JSP学习笔记(2)-JSP语法的更多相关文章

  1. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

  2. JSP学习笔记

    JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...

  3. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

  4. JSP 学习笔记1

    JSP 学习笔记   JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例--JSP页面有系统编译成Servlet,Servlet再负责响应用户请求. 1.JSP注释 < ...

  5. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  6. jsp学习笔记:mvc开发模式

    jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...

  7. python3.4学习笔记(一) 基本语法 python3不向下兼容,有些语法跟python2.x不一样

    python3.4学习笔记(一) 基本语法 python3不向下兼容,有些语法跟python2.x不一样,IDLE shell编辑器,快捷键:ALT+p,上一个历史输入内容,ALT+n 下一个历史输入 ...

  8. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  9. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  10. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

随机推荐

  1. “全栈2019”Java多线程第二十章:同步方法产生死锁的例子

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  2. rawt

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  3. JavaScript基础DOM介绍和常用操作(5)

    day53 参考:https://www.cnblogs.com/liwenzhou/p/8011504.html JavaScript引入方式 location对象 window.location ...

  4. 去除eclipse的validating

    删除.project文件中的validator,如 <buildCommand> <name>org.eclipse.wst.jsdt.core.javascriptValid ...

  5. ACTIVEMQ主题、队列设置用户名密码

    修改文件%ACTIVEMQ_BASE%/conf/activemq.xml,用户名密码储存在文件%ACTIVEMQ_BASE%/conf/credentials.properties中, active ...

  6. 基于mongoose 的增删改查操作

    无论是基于robomongo 的可视化工具,亦或是基于 mongoose 的函数工具,只要是对 mongodb 的操作,第一步都是开启数据库. 开启mongodb 数据库 进入mongod所在目录 执 ...

  7. SnapKit 类图

     如图上图所示,居于中心的是ConstraintDescription,它用来生成Constraint,最后再转换成系统的NSLayoutConstraint. ConstraintDescript ...

  8. 【BZOJ3456】轩辕朗的城市规划 EGF+多项式求ln

    我们构造$f(i)$和$g(i)$. 其中$f(x)$表示由$x$个节点构成的无向简单连通图的个数. $g(x)$表示有$x$个节点构成的无向简单图(不要求连通)的个数. 显然,由$x$个节点构成的无 ...

  9. celery问题记录

    1. 问题:WARNING/MainProcess] /home/jihonghe/.virtualenvs/py3_dj217_env/lib/python3.6/site-packages/bil ...

  10. hadoop2.x 异常

    运行mr,出现如下异常 需要配置yarn-site.xml中配置如下信息 参考地址: https://issues.apache.org/jira/browse/MAPREDUCE-2983 http ...