JSP基本语法

JSP基本语法

1.1 JSP页面的基本结构

1、在传统的HTML页面文件中加入Java程序片和JSP标记就构成了一个JSP页面。

JSP页面有五种元素组成:

  • 普通的HTML标记和JavaScript标记
  • JSP标记,如指令标记、动作标记。
  • 变量和方法的声明。
  • Java程序片
  • Java表达式

2、转载于:https://www.cnblogs.com/friendan/archive/2012/05/13/2838181.html

一个JSP页面由两部分组成:

一部分是JSP页面的静态部分,如HTML,CSS标记等,用来完成数据显示和样式。

一部分是JSP页面的动态部分,如脚本程序,JSP标签等,用来完成数据处理。

  • JSP页面动态部分包括4部,分别为:

    • 脚本元素(ScriptingElement) //脚本元素用来嵌入Java代码;

    • 指令(Directive) //JSP指令用来从整体上控制Servlet的结构;

    • 动作(Action) //动作用来引入现有的组件或者控制JSP引擎的行为。

    • 注释

  • JSP页面构成元素详细信息如下图:

在这里插入图片描述

1.2 声明变量和定义方法

1、在“<%!” 和 “%>”标记符号之间声明变量和定义方法。其内容可放于JSP页面指令之后 HTML标签之前或放于HTML标签之间。

“<%!” “%>”标记符号之间声明的变量作为类的成员变量,这些变量占用的内存空间直到Tomcat服务器关闭才释放。

例:利用成员变量被所有用户共享这一性质,实现了一个简单的计数器。

<%@ page contentType="text/html" %>
<%@ page pageEncoding="utf-8" %>
<html>
	<body bgcolor=yellow>
		<%! int i=0;    //声明在<%! %>内的变量,全局变量(成员变量)
		%>
		<% i++;        //声明在<% %>内的变量,局部变量
		%>
		<p style="font-family:宋体;font-size:36">
		您是第<%=i %>个访问本站的用户。
		</p>
	</body>
</html>

结果如下:

在这里插入图片描述

启动tomcat运行这个JSP文件时,会发现当我们不断刷新页面时count的值会不断增加而i的值始终不变,也就是说定义在<%! %>内的变量会累加,而定义在<% %>内的变量不会累加。

2、定义方法和类

可以在“<%!” 和 “%>”标记符号之间定义方法,可在Java程序片中调用该方法。

可以在“<%!” 和 “%>”标记符号之间定义类,可在Java程序片中使用该类创建对象。

例:在“<%!” 和 “%>”之间定义了 multi(int x,int y)和div(int x,int y)两个方法,同时定义类一个Circle类,在程序片中使用该类创建对象,计算了圆的面积。

<%@ page contentType= "text/html" %>
<%@ page pageEncoding= "utf-8" %>
< HTML><body bgcolor= #ffccff>
<p style= "font一family:宋体;font - size:36;color:blue">
<%! double multi(double x, double y){//定义方法
		return x*y;
		}
	double div(double x, double y) {//定义方法
		return x/y;
		}
	class Circle{//定义类
		double t;
		double getArea(){
			return 3.141526*r*r;
		}
	}
%>
<% double x=8.79;
   double y=20.8;
   out.print("调用multi方法计算"+x+"与"+y+"的积:<br>");
   out.print(multi(x,y));
   out.print("<br>调用div方法计算"+y+"除以"+x+"的商,<br>");
   String s=String.format("小数点保留3位:%10.3f",div(y,x));
   out.println(s);
   Circle circle=new Circle();  //创建  Circle对象
   circle.r=3.6;
   out.print("<br>半径是"+circle.r+"的圆面积:"+circle.getArea());
%>
</p>
</body>
</HTML>
1.3 Java程序片

在JSP中,在"<% %>"之间书写的程序代码称为Java程序片,并且可以在其中插入HTML语句。

一个JSP页面中可以有多个Java程序片。

但是,在Java程序片中声明的变量在它们所在的JSP页面的所用程序片及表达式中都有效。

在程序片中声明的变量只在页面有效,是局部变量,它在不同的客户访问同一个页面的时,此变量是不能共享的。

但如果是在"<%! %>"之间声明的变量就可以在不同的客户之间共享,其有效范围是整个web应用,在服务器关闭时变量才会被释放.

"<%= %>"可以直接输出变量或表达式的值,变量或表达式的值将作为一个字符串在浏览器中输出。

下面是一个简单的计数器,用于统计当前已访问网站的人数:

<%! int counter=0;
        void counterFun(){
            counter++;
        }
     %>
    <%counterFun(); %>
    网站计数器<br>
    你是第<%=counter %>位访问者

反复刷新网页,可以看见counter在不断增加,即使同时打开多个页面counter依旧在依次整体增加

但是,我们将服务器关闭之后再打开,counter又回到了1

可见,计数器变量将在客户间共享,直至服务器关闭!

转载于:http://t.csdn.cn/GsMfa

补充:Java程序执行特点如下图所示:

在这里插入图片描述

1.4 Java表达式

可以在"<%=“和”%>"之间插入一个可求值得表达式。表达式的值有服务器负责计算,并将计算结果用字符串形式发送到用户端显示。其内容可放于JSP页面指令之后 HTML标签之前或放于HTML标签之间。

1.5 Java中的注释

1、HTML注释:在标记符号"<!–“和”-- >"之间加入注释内容。

<!--注释内容-->

2、JSP注释:在标记符号"<% --“和”-- %>"之间加入注释内容。

<% --注释内容-- %>
1.6 JSP指令标记
1.6.1 page指令标记

page指令用来定义整个JSP页面的一些属性和这些属性的值,属性用单引号或双引号括起来。

可使用多个page指令分别为每个属性指定值。

<%@ page 属性1="属性1的值" %>
<%@ page 属性2="属性2的值" %>
...
<%@ page 属性n="属性n的值" %>

也可以用一个page指令指定多个属性的值。

<%@ page 属性1="属性1的值" 属性2="属性2的值" ... %>

属性:

1、contentType:contentType属性值确定JSP页面响应的MIME类型。属性值一般形式是:

"MIME 类型"

例:用户的浏览器启用HTML解析器来解析执行所收到的信息。

<%@ page contenType="text/html" %>

​ 用户的浏览器启用本地的MS-Word应用程序来解析执行所收到的信息。

<%@ page contenType="application/msword" %>

注:contentType默认属性值为"text/html" ,page指令只能为contentType指定一个值,不允许两次使用age指令为contentType指定不同属性的值。

2、其他属性可参考一下转载链接

http://t.csdn.cn/7TANW

http://t.csdn.cn/sle2Q

http://t.csdn.cn/zkang

1.6.2 include指令标记

include指令标记用于把JSP文件,HTML网文文件等文件静态嵌入当前JSP网页中,语法如下:

<%@ include file="文件的URL"%>
1.7 JSP动作标记

动作标记是一种特殊的标记,它影响JSP运行时的功能。

1.7.1include动作标记

动作标记是将JSP等文件 动态嵌入当前JSP网页中,语法如下:

<jsp:include page="文件的URL"/>
<jsp:include page="文件的URL">
   子标记
<jsp:include/>

动态嵌入就是“先处理后包含”在运行阶段完成对文件嵌入,即在把JSP页面转译为JAVA文件时,并不合并两个页面。
注:书写动作标记<jsp:include page=“文件的URL”/>时,“JSP”“:”"include"三者之间不要有空格。

1.7.2 param动作标记

1、jsp:param动作标记,是以”名字 - 值“对的形式为其他标记提供附加信息。

<jsp:param name="参数" value="参数值" />

2、jsp:param动作标记的作用

指定某个参数的值,必须和jsp:forward,jsp:include,jsp:plugin 等一起协同使用。

1.7.3 forward动作标记

作用:从该指令处停止当前页面,转向执行page属性指定的JSP页面。
语法:

<jsp:forward page=”要转向的页面” />

<jsp:forward page=”要转向的页面”>
	param子标记
</jsp:forward>

注:当forward动作标记不需要param子标记时,必须使用第一种情况。
说明:使用forward转向新的页面之后,浏览器的地址栏中显示的仍然是转向前的JSP页面的URL地址。
子标记语法:

<jsp:param name=”名字” value=”指定给param的值”/>

使用request.getParameter(“名字”);获取子标记的属性值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子ya♛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值