jsp语法简介
参考网站:https://www.w3cschool.cn/jsp/jsp-syntax.html
脚本程序:
脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。
脚本程序的语法格式:
<%代码片段%>
或者也可以编写与其等价的xml语句,就像下面这样:
<jsp:scriptlet>
代码片段
</jsp:scriptlet>
任何文本、HTML标签、JSP元素必须写在脚本程序的外面。下面给出一个例子:
<html> <head> <title>Hello World</title> </head> <body> Hello World!<br/> <% out.println("Your IP address is " + request.getRemoteAddr()); %> </body> </html>
JSP声明:
一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。
在jsp页面中一个声明可以出现在任何地方,并且在一个页面中可以有多个声明
声明的本质就是将声明的变量和方法,作为Servlet类的变量和方法
jsp声明的语法格式:
<%! declaration; [ declaration; ]+ ... %>
或者可以编写等价的xml语句:
<jsp:declaration>
代码片段
</jsp:declaration>
程序示例:
<%! int i = 0; %>
<%! int a , b , c ; %>
<%! Circle a = new Circle(2,0); %>
看一个函数声明的例子
<%! public String getTodaysDate() { return new java.util.Date(); } %> <html> <head> <title>Declarations</title> </head> <body> Today is <%=getTodaysDate()%> </body> </html>
可以通过声明来重写JSP页面,实现类的init和destroy方法。通过声明jspInit方法,来重写init方法。声明jspDestroy方法来重写destroy方法。
jspInit Jsp页面在初始化的时候调用这个方法,不同于servlet的init方法,这个方法没有参数,因为jsp中可以通过隐式对象config来访问servletConfig对象。
jspDestroy:这个方法在jsp页面即将被销毁时使用。
看一个重写这两个方法的例子
<%! public void jspInit() { System.out.println("jspInt...."); } public void jspDestroy() { System.out.println("jspDestroy/...."); } %> <html> <head> <title>jspInit and jspDestroy</title> </head> <body> overriding jspInit and jspDestroy </body> </html>
注意,声明那里我第一次用的out.println()然后报错,因为这是jsp里面才能用。这里用
System.out.println("jspDestroy/....");的效果是,当你第一次访问页面的时候,会在tomcat的控制台上看到一行字
jspInit....注意是控制台!!不是网页!! 当你servlet/jsp容器关闭的时候也会看到那行销毁的字
JSP表达式:
表达式: 是对数据的表示,系统将其作为一个值进行计算。
每个表达式都会被jsp容器执行,并使用隐式对象out的打印方法输出结果。表达式以<%=开始以%>结束。
Today is <%=java.util.Calendar.getInstance().getTime()%>
注意表达式无须分号结尾!
一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。
由于表达式的值会被转化成String,所以您可以在一个文本行中使用表达式而不用去管它是否是HTML标签。
表达式元素中可以包含任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。
JSP表达式的语法格式:
<%= 表达式>
或者是等价的xml语句:
<jsp:expression>
表达式
</jsp:expression>
例子:
<html> <head> <title>A Comment Test</title> </head> <body> <p> Today's date is :<%= (new java.util.Date()).toLocaleString() %> </p> </body> </html>
表达式的本质:
在将JSP页面转换成Servlet后,使用out.print()将表达式的值输出。这样如果user.getName()的返回值是"liky", 那么实际上在servlet中就将转换成out.print("liky");
JSP注释:
<%--这里可以写jsp注释--%>
参考网站中有更多 的注释介绍
html注释:<!--哈哈哈哈哈啊啊哈哈--> html注释不会被容器处理,会原样发给浏览器。所以一个用途是用来确定jsp页面本身。
JSP指令:
jsp指令用来设置与整个jsp页面相关的属性,语法格式:
<%@ directive attribute = "value" %>
page指令有一个比较常用的是import属性,可以导入在jsp页面中使用的Java类型。如果没有导入的话要在代码中写Java类的全路径。
<%@page import="java.util.Date"%>
JSP行为:
JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。
行为标签只有一种语法格式,它严格遵守XML标准:
<jsp:action_name attribute="value" />
行为标签基本上是一些预先就定义好的函数,下表罗列出了一些可用的JSP行为标签::
JSP隐含对象:
JSP控制流语句和判断语句,循环语句都和Java一样,jsp提供对java语言的全面支持。
所以运算符啊,常量啊那些都~