JSP学习3-JSP语法

JSP语法

JSP表达式

先来看这样的一个例子:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<p>
    这里为什么能这么使用呢?↓
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html> 

一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。

由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。

表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式

在JSP中,可以使用表达式标签(<%=直接输出变量的值,这实际上是一个方便的语法糖,它背后是使用jspWriterout对象来输出的。因此,使用<%= %>来生成内容是一个简化的方式,等价于使用out.print(content1);

JSP注释

注释语法规则:

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

JSP指令

JSP指令用来设置与整个JSP页面相关的属性。详细资料去查文档。

JSP指令语法格式:

<%@ directive attribute="value" %>

这里有三种指令标签:

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

JSP行为(action)/JSP动作元素

比较重要,涉及JSP是怎么样控制servlet引擎的,能够完成插入文件、重用JavaBean组件、页面跳转(用的多)、产生HTML等多个功能。会开一个.md文档详细分析。

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

<jsp:action_name attribute="value" />
语法描述
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隐含对象(9个)

9个自动定义的变量,它们是在 JSP 页面中自动可用的对象,无需额外的声明或初始化。会专门开一个.md文档来讲。

JSP支持控制流语句

JSP中支持判断语句和循环语句,这也就意味着,JSP支持复杂的代码逻辑结构。

If/Else语句

输出的语句在判断块中,但不属于代码,因此多次使用了开始标记和结束标记

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好呀周五!</title>
</head>
<body>
<h3>IF...ELSE 实例</h3>
<% if (day == 1 || day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>
</body> 
</html> 

Switch/Case语句

它使用out.println(),并且整个都装在脚本程序的标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好呀周五!</title>
</head>
<body>
<h3>SWITCH...CASE 实例</h3>
<% 
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> 

For循环

和判断语句if/else一样,语句块内包含了HTML语法,HTML语法中又能内嵌Java变量fontSize

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>你好呀周五!</title>
</head>
<body>
<h3>For 循环实例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    我是傻瓜!
   </font><br />
<%}%>
</body> 
</html> 

While循环语句

和for循环语句类似。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize=0; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h3>While 循环实例</h3>
<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    我是傻瓜!
   </font><br />
<%fontSize++;%>
<%}%>
</body> 
</html> 

JSP运算符

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

JSP字面量

字面量是指直接在页面中使用的固定值,通常是字符串、数字或布尔值。这些字面量会被直接输出到客户端的HTML中。

在JSP(JavaServer Pages)中,字面量是指直接在页面中使用的固定值,通常是字符串、数字或布尔值、浮点值。这些字面量会被直接输出到客户端的HTML中。

举例:

  1. 字符串字面量

    <h1>欢迎来到我的网站</h1>
    

    这里的 “欢迎来到我的网站” 就是一个字符串字面量,它会在浏览器中显示为标题。

  2. 数字字面量

    <p>今天是第 <%= 10 %> 天</p>
    

    在这个例子中,数字 10 是一个数字字面量,它会被输出到网页上。

  3. 布尔字面量

    <c:if test="${true}">
        <p>条件为真,显示此段文字。</p>
    </c:if>
    

    这里的 true 是一个布尔字面量,根据条件渲染页面内容。

posted @ 2024-11-15 08:30  Ackley  阅读(43)  评论(0)    收藏  举报  来源