博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP基础(二)JSP语法概述
阅读量:6940 次
发布时间:2019-06-27

本文共 2465 字,大约阅读时间需要 8 分钟。

 

JSP基础(二)JSP语法概述

 

JSP语法概述

  JSP原始代码中包含了JSP元素Template(模板)data两类。

  Template data指的是JSP引擎不处理的部分,即标记<%...%>以外的部分,例如代码中的HTML的内容等,这些数据会直接传送到客户端的浏览器。

  JSP元素则是指将由JSP引擎直接处理的部分,即标记<%...%>以内的部分,这一部分必须符合Java语法,否则会导致编译错误。

 

JSP语法

  JSP语法分为三种不同的类型:

1.编译器指令(DIRECTIVE)

  编译器指令包括“包含指令”“页指令”和“taglib指令”,它们包含在<%@  %>卷标里。

  两个主要的指令是page与include。

 

  Page指令用于定义JSP文件中的全局属性。

  Page指令作用于整个JSP页面,同样包括静态的包含文件,但是不能作用于动态的包含文件。

  可以在一个页面中用上多个Page指令,但是其中的属性只能用一次,但是import属性是个例外,可以用多次。

  无论Page指令放在哪里,它的作用范围都是整个JSP页面,为了可读性,最好还是放在文件顶部。

 

  比如:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

  import属性用于导入包,多个包可以用逗号隔开,也可以多次写page指令,导入不同的包。

 

  包含指令:

  include指令:向当前页中插入一个静态文件的内容。

  JSP语法格式如下:

<%@ include file="relativeURL" %><%@ include file="相对位置" %>

 

 

  taglib指令

  语法:  

<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>

  用于引入定制标签库。

 

2.脚本语法(SCRIPTING)

  脚本语法包括:

  1.HTML注释:
  2.隐藏注释(JSP注释):<%-- comments --%>  3.声明;  4.表达式;  5.脚本段;

 

 

  HTML注释会发送到客户端(浏览器查看源代码可见),但是隐藏注释(JSP注释)不会发送到客户端,仅在JSP的源文件里有;两种注释都不会显示在页面上。

<%-- 这是JSP注释:页面不可见,查看源文件也不可见 --%> <%-- new java.util.Date()--%>

 

 

JSP声明语法格式如下:

<%! declaration; [declaration;]...%><%! 声明; [声明;]...%>

 

  引入一个声明的例子:

  用声明的方式定义一个变量a,用脚本段的方式定义一个变量b,输出a和b的值并且递减。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://"            + request.getServerName() + ":" + request.getServerPort()            + path + "/";%>My JSP 'index.jsp' starting page
This is my JSP page. —— 圣骑士Wind<%= new java.util.Date().toLocaleString() %>
<%-- 这是JSP注释:页面不可见,查看源文件也不可见 --%> <%-- new java.util.Date()--%>
<%! int a = 3; %>
<% int b = 3; %>
<%= a-- %>
<%= b-- %>

  每次刷新页面,可以看到a的值递减,但是b的值仍然保持为3。

 

  为什么呢?

  可以查看生成的Servlet代码,a在JSP中是声明,生成的Servlet,即Java代码中,a被转换成成员变量

  b在JSP中是脚本段,生成的Servlet代码中,b是方法的局部变量

 

  Servlet是单实例的,所以多次访问时访问的都是同一个对象,成员变量a是同一个,而b,每次都会生成新的。

 

  声明很少用,通常用脚本段。

  因为多个用户访问时,需要互不影响,脚本段中的值是局部变量,每个用户访问的时候各有一份;成员变量的值只有一个,每个用户都会访问到它。

 

表达式:

  表达式用于在页面上输出信息,语法格式如下:

<%= expression %>      <%= 表达式 %>

 

脚本段:

<% code fragment %>      <% 代码 %>

 

  其中代码是任何符合语法要求的Java代码

 

3.动作语法(ACTION)

  动作语法包括:

  <jsp:forward> 该指令用于转向页面,在该指令后面的所有代码都没有机会执行了,因为页面的流程已经转向了另外一个页面。

  <jsp:include> 包含一个静态或动态文件,可以向被包含的文件传递参数。

  <jsp:getProperty>

  <jsp:setProperty>

  <jsp:useBean>

 

参考资料

  圣思园张龙老师视频教程。

转载地址:http://mrnnl.baihongyu.com/

你可能感兴趣的文章
O’Reilly发布“微服务成熟度状态”报告:微服务是成功的
查看>>
Submarine:在 Apache Hadoop 中运行深度学习框架
查看>>
《Clojure Recipes》书评与问答
查看>>
腾讯集团与光大集团签署战略合作 共建金融科技创新实验室
查看>>
怀疑在软件测试中所起的作用
查看>>
5G一周热闻:华为夺联通5G大单,首张5G电话卡发放
查看>>
2018年Github最受欢迎机器学习语言Python稳坐冠军,numpy、scipy是最受欢迎软件包...
查看>>
GitHub 重磅更新:无限私有仓库免费使用
查看>>
“10%时间”:优点和缺点——敏捷海滩会议上Elizabeth Pope的报告
查看>>
Rico Mariani对Visual Studio不是64位的解释
查看>>
破译密码、设计飞机和建设团队:Randy Shoup谈高绩效团队
查看>>
缓存分享会小记
查看>>
正则匹配常见链接地址
查看>>
Yii2.0 框架中如何创建自定义小部件
查看>>
亚马逊DevOps的实践指南
查看>>
PHP|关于对象复制的一些事
查看>>
Python 性能分析大全
查看>>
GoJS 绘图 (十) :链接(完结)
查看>>
PHP|什么是CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI?
查看>>
【算法】递归算法之n阶矩阵行列式求解
查看>>