jsp语法
jsp语法:
脚本程序
脚本程序可以包含任意量的java语句,变量,方法或表达式,只要它们在脚本语言中是有效的。
脚本语句的语法格式:
<% 代码片段%>
或者,您也可以编写与其等价的XML语句,就像下面这样:
<jsp:scriptlet>
代码片段
</jsp:scriptlet>
如下所示:
源码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 这是一个文本 -->
Hello World!
<!-- 这是一个html标签 -->
<br />
<!-- 这是jsp脚本程序 -->
<!-- 在写脚本程序时,记住要把所有的文本,HTML标签,JSP元素写在脚本程序的外面 -->
<%
out.println("You IP address is " + request.getRemoteAddr());
%>
</body>
</html>
如何处理中文乱码问题
解决方法: 如果我们要在页面正常的显示中文,我们需要在jsp文件的头部添加以下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
JSP声明
一个声明语句可以声明一个或多个变量,方法,给后面的java代码使用。在jsp文件中,您必须先声明这些变量和方法然后才能使用他们。
JSP声明的语法格式:
<%! declaration;[ declaration;]+ ...%>
当然我们也可以编写与其等价的XML代码。如下:
<jsp:declaration>
代码片段
</jsp:declaration>
程序演示:
<%!int i = 0;%>
<%!int a, b, c;%>
<%!Circle a1 = new Circle(2.0);%>
java表达式
- 一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
- 由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
- 表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
JSP表达式的语法格式:
<%=表达式%>
程序实例:
<%@page import="java.util.Date"%>
<%@page import="javafx.scene.shape.Circle"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsp语法程序</title>
</head>
<body>
<p>
今天的日期是:<%=(new Date()).toLocaleString()%>
</p>
</body>
</html>
运行结果:
注释的语法规则
语法 | 描述 |
---|---|
<%--注释--%> | 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隐含对象
对象 | 描述 |
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 块
源码分享
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>if ... else</title>
</head>
<body>
<%!int day = 3;%>
<h3>IF ... ELSE 实例</h3>
<%
if (day == 1 || day == 7) {
%>
今天是周末
<%
} else {
%>今天不是周末<%
}
%>
</body>
</html>
switch ..... case 块 .与 if .... else 块有很大的不同,它使用out.println(),,并且整个都装在脚本程序的标签中
源码分享
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>switch .... case 实例</title>
</head>
<body>
<h3>SWITCH ... CASE 实例</h3>
<%!int day = 4;%>
<%
switch (day) {
case 0:
out.println("今天是星期天");
break;
case 1:
out.println("今天是星期一");
break;
case 2:
out.println("今天是星期二");
break;
case 3:
out.println("今天是星期三");
break;
case 4:
out.println("今天是星期四");
break;
case 5:
out.println("今天是星期五");
break;
default:
out.println("今天是星期六");
}
%>
</body>
</html>
循环语句
在JSP程序中可以使用JAVA的三个基本循环类型: for while 和 do.....while
for循环实例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>for循环实例</title>
</head>
<body>
<%!int count;%>
<%
for (count = 1; count < 9; count++) {
%>
我是第<%=count%>个
<br />
<%
}
%>
</body>
</html>
运行结果:
while循环演示:
do...while循环演示(略)
JSP 字面量
JSP语言定义了以下几个字面量:
- 布尔值(boolean):true 和 false;
- 整型(int):与 Java 中的一样;
- 浮点型(float):与 Java 中的一样;
- 字符串(string):以单引号或双引号开始和结束;
- Null:null。