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语言的全面支持。

所以运算符啊,常量啊那些都~

原文地址:https://www.cnblogs.com/wangshen31/p/7512836.html