JSP 语法

JSP开发中的基础语法。

脚本程序

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

脚本程序的语法格式:

<% 代码片段 %>

或者,您也可以编写与其等价的XML语句,就像下面这样:

<jsp:scriptlet>
代码片段
</jsp:scriptlet>

任何文本、HTML标签、JSP元素必须写在脚本程序的外面。

JSP示例

<html>
<head>
<title>Hello World</title>
</head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is" +request.getRemoteAddr());
%>
</body>
</html>

注意:请确保Apache Tomcat已经安装在C:\apache-tomcat-7.0.2目录下并且运行环境已经正确设置。

将以上代码保存在hello.jsp中,然后将它放置在 C:\apache-tomcat-7.0.2\webapps\ROOT目录下,打开浏览器并在地址栏中输入http://localhost:8080/hello.jsp。

JSP声明

一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。
在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。

JSP声明的语法格式:

<%! declaration; [ declaration; ]+ ... %>

或者,您也可以编写与其等价的XML语句,就像下面这样:

<jsp:declaration>
代码片段
</jsp:declaration>

程序示例:
<%! int i=0; %>
<%! int a,b,c; %>
<%! Circle a = new Circle(2.0);%>

JSP表达式

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

JSP表达式的语法格式:
<%=表达式 %>

同样,您也可以编写与之等价的XML语句:

<jsp : expression>
表达式
</jsp : expression>

程序示例:

<html>
<head>
<title> A Comment Test </title>
</head>
<body>
<p>
Today's date: <%=(new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>

运行后得到以下结果:

Today's date: 11-Sep-2013 21:24:25

JSP注释

JSP注释主要有两个作用:为代码作注释以及将某段代码注释掉。

JSP 注释的语法格式:

<%-- 这里可以填写 JSP 注释 --%>

程序示例:

<html>
<head>
<title>A Comment Test</title>
</head>
<body>
<h2>A Test of Comments</h2>
<%-- 该部分注释在网页中不会被显示 --%>
</body>
</html>

运行后得到以下结果:

A Test of Comments

不同情况下使用注释的语法规则:

<%-- 注释 --%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译
<!-- 注释 --> HTML注释,通过浏览器查看网页源代码时可以看见注释内容
<\% 代表静态 <% 常量
%\> 代表静态 %> 常量
\' 在属性中使用的单引号
\" 在属性中使用的双引号

JSP指令

JSP指令用来设置与整个JSP页面相关的属性。

JSP指令语法格式:

<%@ directive attribute = "value" %>

这里有三种指令标签

<%@ page ... %> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %> 包含其他文件
<%@ taglib ... %> 引入标签库的定义,可以是自定义标签

JSP行为

JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。

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

<jsp:action_name attribute="value" />

行为标签基本上是一些预先就定义好的函数,下表罗列出了一些可用的JSP行为标签::

jsp:include 用于在当前页面中包含静态或动态资源

jsp:useBean 寻找和初始化一个JavaBean组件

jsp:setProperty 设置 JavaBean组件的值

jsp:getProperty 将 JavaBean组件的值插入到 output中

jsp:forward 从一个JSP文件向另一个文件传递一个包含用户请求的request对象

jsp:plugin 用于在生成的HTML页面中包含Applet和JavaBean对象

jsp:element 动态创建一个XML元素

jsp:attribute 定义动态创建的XML元素的属性

jsp:body 定义动态创建的XML元素的主体

jsp:text 用于封装模板数据

JSP隐含对象

JSP支持九个自动定义的变量,江湖人称隐含对象。这九个隐含对象的简介见下表:

request HttpServletRequest类的实例

response HttpServletResponse类的实例

out PrintWriter类的实例,用于把结果输出至网页上

session HttpSession类的实例

application ServletContext类的实例,与应用上下文有关

config ServletConfig类的实例

pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问

page 类似于Java类中的this关键字

Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

控制流语句

JSP提供对Java语言的全面支持。您可以在JSP程序中使用Java API甚至建立Java代码块,包括判断语句和循环语句等等。

判断语句
If…else块,请看下面这个例子:

<%! int day = 3; %>
<html>
<head>
<title> IF ... ELSE Example </title>
</head>
<body>
<% if (day ==1 | day ==7){ %>
<p> Tody is weekend</p>
<% }else{%>
<p> Today is not weekend</p>
<%}%>
</body>
</html>

运行后得到以下结果:

Today is not weekend

现在来看看switch…case块,与if…else块有很大的不同,它使用out.println(),并且整个都装在脚本程序的标签中,就像下面这样:

<%! int day = 3; %>
<html>
<head><title>SWITCH...CASE Example</title></head>
<body>
<%
switch(day) {
case 0:
out.println("It\'s Sunday.");
break;
case 1:
out.println("It\'s Monday.");
break;
case 2:
out.println("It\'s Tuesday.");
break;
case 3:
out.println("It\'s Wednesday.");
break;
case 4:
out.println("It\'s Thursday.");
break;
case 5:
out.println("It\'s Friday.");
break;
default:
out.println("It's Saturday.");
}
%>
</body>
</html>

循环语句

在JSP程序中可以使用Java的三个基本循环类型:for,while,和 do…while。

让我们来看看for循环的例子:

<%! int fontSize; %>
<html>
<head><title>FOR LOOP Example</title></head>
<body>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color="green" size="<%= fontSize %>">
JSP Tutorial
</font><br />
<%}%>
</body>
</html>

运行后得到以下结果:
(有颜色,并且字体大小不一样)
JSP Tutorial
JSP Tutorial
JSP Tutorial

将上例改用while循环来写:

<%! int fontSize; %>
<html>
<head><title>WHILE LOOP Example</title></head>
<body>
<%while ( fontSize <= 3){ %>
<font color="green" size="<%= fontSize %>">
JSP Tutorial
</font><br />
<%fontSize++;%>
<%}%>
</body>
</html>

运行后得到同样的结果

JSP运算符

JSP支持所有Java逻辑和算术运算符。

下表罗列出了JSP常见运算符,优先级从高到底:

类别 操作符 结合性

后缀 () [] . (点运算符) 左到右

一元 ++ - - ! ~ 右到左

可乘性 * / % 左到右

可加性 + - 左到右

移位 >> >>> << 左到右

关系 > >= < <= 左到右

相等/不等 == != 左到右

位与 & 左到右

位异或 ^ 左到右

位或 | 左到右

逻辑与 && 左到右

逻辑或 || 左到右

条件判断 ?: 右到左

赋值 = += -= *= /= %= >>= <<= &= ^= |= 右到左

逗号 , 左到右

JSP常量

JSP语言定义了以下几个常量:

Boolean:true and false
Integer:与Java中的一样
Floating point:与Java中的一样
String:以单引号或双引号开始和结束。 " 被转义成 \",'被转义成 \', \ 被转义成\\
Null:null

#1113-JSP 语法的更多相关文章

  1. JSP JSP工作原理 JSP语法 JSP声明 JSP注释 JSP指令 jsp九大隐式/内置对象

    1 什么是JSP   1)为什么说,Servlet是一个动态Web开发技术呢?     Servlet是基于服务端的一种动态交互技术,     HttpServletRequest表示客户端到服务端的 ...

  2. 在MyEclipse中如何去掉JS或jsp语法错误提示!

    在MyEclipse中如何去掉JS或jsp语法错误提示! 关于在 MyEclipse 上 WEB 工程里面的 JS/JSP 经常会有语法错误提示,这是由于 MyEclipse 对其语法要求相当严格所造 ...

  3. JSP语法

    第3章  JSP语法 [本章专家知识导学] JSP是建立在Java语言基础上的一种Web程序设计语言,具有自己特有的用法和指令.本章首先介绍JSP页面的程序结构,然后讲述JSP程序中经常用到基本的面向 ...

  4. JSP 语法/标签

    ┣1.declaration Declaration定义了JSP脚本语言使用的变量和函数,这类似于Java中定义全局变量,或可以把它想像成pascal编程语言中的单元文件的interface部分.声明 ...

  5. Jsp语法九大内置对象和四大作用域

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

  6. JSP 语法

    JSP 语法 本小节将会简单地介绍一下JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. 脚本程序的语法格式: <% 代 ...

  7. JSP-Runoob:JSP 语法

    ylbtech-JSP-Runoob:JSP 语法 1.返回顶部 1. JSP 语法 本小节将会简单地介绍一下JSP开发中的基础语法. 脚本程序 脚本程序可以包含任意量的Java语句.变量.方法或表达 ...

  8. Jsp语法简介

    1.JSP指令 jsp指令用来设置整个JSP网页想关闭的属性,如网页的编码和脚本语言等.常用的3种指令为page,include和taglib. 2.JSP声明 jsp声明用于声明JSP代表的Serv ...

  9. Jsp语法、指令及动作元素

    一.JSP的语法 1.JSP的模板元素:(先写HTML) 就是JSP中的那些HTML标记 作用:页面布局和美化 2.JSP的Java脚本表达式: 作用:输出数据到页面上 语法:<%=表达式%&g ...

  10. jsp语法与标签

    语法: <% 多行java代码 %> 在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本.HTML标记和其他JSP元素. 举例: <% int x = 10; ...

随机推荐

  1. VM CentOS建立共享文件夹实现VS Code在windows环境下go开发,在centos环境里编译

    简介 笔记本没办法更换系统,但是开发又必须在linux环境下进行,直接在vm界面环境下开发,卡的都蒙13.无奈之下想到这个法子,来解决现有尴尬的局面>>> 共分3个部分安装: (1) ...

  2. SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二

    SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 方法一 使用原生sql查询 或者 为方法名增加 ...

  3. [Web 前端] 028 jQuery 事件

    目录 jQuery 的事件 1. 事件绑定 1.1 事件的获取 1.2 基本绑定 1.3 动态绑定 2. 事件触发 2.1 触发的写法 2.2 常用的鼠标事件 3. 事件冒泡和默认行为 3.1 事件冒 ...

  4. Eclipse连接SQL Server 2008数据库

    一.准备材料 要能够使用数据库就要有相应的JDBC,所以我们要去Microsoft官网下载 https://www.microsoft.com/zh-cn/download/details.aspx? ...

  5. [AGC040B]Two Contests

    Description 给出若干条线段 \((L[i], R[i])\) ,把他们分成两个非空的集合,最大化集合内线段交的和. \(n\le 10 ^ 5\) Solution 考虑最小的一个右端点 ...

  6. JProfiler> ERROR: Invalid license key. Aborting.

    用IDEA+Tomcat的方式打开JProfiler,出现错误 1,Event Log 出错 16:10 Application Server was not connected before run ...

  7. RabbitMq学习3-工作队列(Work queues)

    工作队列(又称:任务队列——Task Queues)是为了避免等待一些占用大量资源.时间的操作.当我们把任务(Task)当作消息发送到队列中,一个运行在后台的工作者(worker)进程就会取出任务然后 ...

  8. Ubantu创建热点并共享——2019年5月10日更新

    只需要两步,参考以下两篇文章: ubuntu16.04上安装配置DHCP服务的详细过程 Ubuntu18.04 创建与编辑热点的方法

  9. http请求响应丢包问题

    在与合作方联调某个明细数据接口的时候发现 1.当请求条数为4,content-length<1500时,数据可以正确返回. 2.当请求条数为5,content-length>1500时,无 ...

  10. Zabbix--02 自定义监控主机

    目录 一. Zabbix 监控基础架构 二. zabbix 快速监控主机 1.安装zabbix-agent 2.配置zabbix-agent 3.启动zabbix-agent并检查 4.zabbix- ...