08Java Server Pages 语法
Java Server Pages 语法
基础语法
注释
<!-- -->可以在客户端通过源代码看到;<%-- --%>在客户端通过查看源代码看不到。
<!--浏览器可以看到代码的注释--> <%--浏览器不能查看源代码的注释--%>
JSP指令
JSP指令控制对整个页面的处理,如提供整个JSP网页相关的信息,并且用来设定JSP网页的相关属性,例如:网页的编码方式、语法、信息等,还可以确定要导入的包及要实现的接口,可以引入其他文件,可以使用的JSP标签等。JSP指令有3种,即page、include、和taglib;JSP指令语法:<%@ 指令名称 属性1="属性值1" 属性n="属性值n" %>
page指令
page指令是最复杂的JSP指令,它的主要功能为设定整个JSP网页的属性和相关功能。page指令语法:<%@ page 属性1="属性值1" 属性n="属性值n" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
属性 |
描述 |
language=“java” |
主要指定JSP Container要用什么来编译JSP网页,目前只可以使用Java语言。 |
extends=“className” |
主要定义此JSP网页产生的Servlet是继承哪个父类。 |
import=“importList” |
主要定义此JSP网页可以使用哪些Java包或类。 |
session=“true|false” |
决定此JSP网页是否可以使用session对象,默认值是true。 |
buffer=“none|n kb” |
决定输出流是否有缓冲区。默认为8KB的缓冲区。 |
autoFlush=“true|false” |
决定输出流的缓冲去是否要自动清除,缓冲区面了会产生异常。默认值为true。 |
isThreadSafe=“true|false” |
主要告诉JSP Container,此JSP网页能处理超过一个以上的请求。默认值为true,并且,不建议设置为false。 |
info=“text” |
主要表示此JSP的相关信息。 |
errorPage=“error_url” |
表示如果发生异常错误时,网页会被重新指向哪一个URL。 |
isErrorPage=“true|false” |
表示此JSP页面是否为处理异常错误的网页。 |
contentType=“ctinfo” |
表示MIME类型和JSP网页的编码方式。 |
pageEncoding=“ctinfo” |
表示JSP网页的编码方式。 |
isELIgnored=“true|false” |
表示是否在此JSP网页中执行或忽略EL表达式。如果为true时,JSP Container将忽略EL表达式;反之为false时,EL表达式将会被执行。 |
注意:只有import这个属性可以设定多次,其他则只能设定一次。
include指令
include指令用于在JSP编译时插入一个文本或代码的文件,这个过程是静态的,而包含的文件可以是JSP、HTML、文本文件,或Java代码等。 include指令语法:<%@ include file="文件路径" %>
taglib指令
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
核心标签
格式化标签
SQL 标签
XML 标签
JSTL 函数
taglib指令的作用是在JSP页面中将标签库描述文件(TLD)引入到该页面中,并设置前缀利用标签的前缀去使用标签库描述符文件中的标签。标签描述符文件为XML格式,包含一系列标签的说明,它的文件后缀名是.tld。taglib指令语法:<%@ taglib uri="标签库描述符文件" prefix="别名" %> ;uri属性,主要指明了标签库描述符文件的存放位置;prefix属性,主要用来区分多个标签库。首先我们要把标签库的jar包导入到项目中,这里我们举例用jstl标签,那么我们需要把standard-1.1.2.jar和jstl-1.1.2.jar拷贝到项目WEB-INF/lib文件夹下,并导入项目,jar包的版本可能不是1.1.2,也可能是别的版本,看需要导入。taglib.jsp的代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>taglib指令</title> </head> <body><c:out value="我使用了jstl的c标签"></c:out></body></html> |
注意:我们导入的JSTL库是JSP标准标签函数库 Standard Taglib Website.
JSP脚本元素
使用JSP脚本元素可将Java代码嵌入JSP页面里,使JSP将静态内容与动态内容分离开来(静态内容指刷新网页后绝对不会发生变化的内容,动态内容指刷新网页后可能会发生变化的内容)JSP脚本元素用于生成动态内容。JSP页面由3个脚本元素组成,即表达式、代码片段和声明。
表达式
JSP表达式语法如下:<%= Java表达式%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP表达式的使用</title> </head> <body> <h1>JSP表达式</h1><br> <b>PI的值:</b><%=Math.PI%><br> <b>100,99中的最大值:</b><%=Math.max(100,99)%><br> <b>100,99中的最小值:</b><%=Math.min(100,99)%><br> <b>3 + (2 - 5)的值:</b><%=3 + 2 - 5%><br> <b>3 + 2 == 5的值:</b><%=(3 + 2) == 5%><br> <b>3 + 2 != 5的值:</b><%=(3 + 2) != 5%> </body> </html>
代码片段
代码片段就是在<% ┅┅ %>里面嵌入Java代码。在形式上,代码片段和表达式的区别就是在<% ┅┅ %>中没有“=”,而且中间是一段Java代码,不是表达式,每条Java语句要以分号结尾,其实就是Java代码片段。JSP代码片段的基本语法如下:<% Java代码 %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP 代码片段示例</title> </head> <body> <h1>JSP 代码片段示例</h1><br> <% for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { out.println(i + "*" + j + "=" + (i*j)); out.println(" "); } out.println("<br>"); } %> </body> </html>
声明
JSP声明用于定义JSP页面中的变量,常量和方法。JSP声明语法:<%! Java变量,方法等 %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.Date,java.text.SimpleDateFormat" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>声明</title> </head> <body> <h1>JSP 声明</h1><br> <%! final String DATETIME_FORMAT = "yyyy/MM/dd HH:mm"; Date dt = null; public String getFormatedDateTime(Date date) { SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_FORMAT); String datetime = sdf.format(date); return datetime; } %> <% dt = new Date(); %> <h1>未格式化的日期:</h1><%=dt%><br> <h1>格式化后的日期:</h1><%=getFormatedDateTime(dt)%> </body> </html>
动作
JSP动作允许在页面间转移控制权。JSP动作语法<jsp:动作名></jsp:动作名>。
<jsp:include page="easy.jsp" flush="false"></jsp:include>
08Java Server Pages 语法的更多相关文章
- 11Java Server Pages 动作
Java Server Pages 动作 JSP标准动作 分类 JSP标准动作 存取JavaBean相关 <jsp:useBean> <jsp:setProperty> < ...
- 09Java Server Pages 错误处理
Java Server Pages 错误处理 通常JSP在执行的时候,在两个阶段会发生错误.第一个是JSP网页转译成Servlet类的时候,另一个就是Servlet类处理每一个请求的时候.在第一个阶段 ...
- jsp(java server pages):java服务器端的页面
jsp(java server pages):java服务器端的页面 JSP的执行过程1.浏览器输入一个jsp页面2.tomcat会接受*.jsp请求,将该请求发送到org.apache.jasper ...
- SQL server存储过程语法及实例(转)
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程cr ...
- 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracl ...
- 1.1(学习笔记)JSP(Java Server Pages)基础(脚本元素、指令元素)
一.JSP简介 JSP全称为Java Server Pages,是一种动态网页开发技术,可以在HTML界面中嵌入java代码, 实现动态的提供数据.访问JSP时服务器会将JSP翻译成Servlet,访 ...
- 什么是Java Server Pages?
JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet ...
- 10Java Server Pages 隐式对象
Java Server Pages 隐式对象 JSP隐式对象是Web容器加载的一组类的实例,它不像一般的Java对象那样用“new”去获取实例,而是可以直接在JSP页面使用的对象.JSP提供的隐式对象 ...
- 07Java Server Pages
Java Server Pages JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分. JSP全称Java Server Pages,是一种动态网页开发技术.它 ...
随机推荐
- 在Android程序中使用已有的SQLite数据库
已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的 ...
- Canvas: trying to use a recycled bitmap android.graphics.Bitmap@XXX
近期在做和图片相关显示的出现了一个问题,整理一下思路.分享出来给大家參考一下: Exception Type:java.lang.RuntimeException java.lang.RuntimeE ...
- AndroidStudio更改Gradle的版本
1.首先需要在Gradle官网上下载需要的gradle版本,对于imac需要放置到AndroidStudio的安装目录下的gradle目录下面 2.更改项目的build.gradle的gradle的版 ...
- HDU1851 A Simple Game
一个关于SG的博弈游戏,对于某个堆有$M_i$和$L_i$,那么这个堆的SG值为 $$SG_i = M_i \%(L_i+1)$$ 为什么这道题的$SG$函数就是这样子的呢?四个字:手算打表!! $L ...
- 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换
自动编码器是一种有三层的神经网络:输入层.隐藏层(编码层)和解码层.该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标 ...
- poj 2762(tarjan缩点+判断是否是单链)
Going from u to v or from v to u? Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19234 ...
- Ural 1517. Freedom of Choice 后缀数组
Ural1517 所谓后缀数组, 实际上准确的说,应该是排序后缀数组. 一个长度为N的字符串,显然有N个后缀,将他们放入一个数组中并按字典序排序就是后缀数组的任务. 这个数组有很好的性质,使得我们运行 ...
- oracle 统计/分析函数
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行. 语法: Sql代码 <analytic ...
- bzoj1531
背包+倍增 直接背包跑不过去,那么我们把容量分成二进制,然后原来需要枚举c次就只用枚举log(c)次了,这样还是能组合出任意小于等于c的组合方案 #include<bits/stdc++.h&g ...
- 7. ExtJS.form中msgTarget
转自:https://www.cnblogs.com/guafuli/articles/msgtarget_values.html Ext表单提示方式:msgTarget:有4中方式:qtip,tit ...