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. Django 一些少用却很实用的orm查询方法

    一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models im ...

  2. C++中将二维数组(静态的和动态的)作为函数的参数传递

    在C++编程中,我们经常将数组作为参数传递到另一个函数,数组的维数不同,传递方式也不同,此处将作一个总结,包括一维静态.动态数组,二维静态.动态数组. 一,一维数组(静态.动态一维数组) 1, 一维数 ...

  3. 【LeetCode】 617. 合并二叉树

    题目 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否 ...

  4. 【bzoj4332】【JSOI2012】 分零食 生成函数 FFT

    我们构造$f(x)$的生成函数$G(x)$,那么显然$[x^k]G(x)=Ok^2+Sk+U$ 那么显然,答案即为$\sum_{i=1}^{n} [x^m]G^i(x)$ 我们构造答案的生成函数$F( ...

  5. leetcode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)

    目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树,原地将它展开为链表. 示例: 给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ ...

  6. RDLC_部署到不同的浏览器

    首先我用的是vs2015 的reportview插件 在数据库中应该配置报表的服务器地址,在项目中添加ReportViewer 插件,单独用一个页面显示接收报表 <form id="f ...

  7. org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$EnhancedResultObjectProxyImpl and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.

    当我用Springboot和mybatis进行延迟加载时候报出如下的错误: org.apache.ibatis.executor.loader.javassist.JavassistProxyFact ...

  8. Win7下无法提交MapReduce Job到集群环境(转)

    一. 对hadoop eclipse plugin认识不足 http://zy19982004.iteye.com/blog/2024467曾经说到我最hadoop eclipse plugin作用的 ...

  9. SpringAOP-切面优先级

    项目中有两个切面,这两个切面都作用于同一个方法,哪个先执行哪个后执行呢,所以要定义一个切面的优先级 import java.util.Arrays; import org.aspectj.lang.J ...

  10. Android 开发工具类 29_sendPOSTRequest

    sendPOSTRequest 业务类 package com.wangjialin.internet.userInformation.service; import java.io.OutputSt ...