JSP语法基础

JSP基本语法


JSP网页由两部分组成

  1. Template Data:固定模板数据
  2. Elements:元素数据
Template Data:  JSP容器不处理的部分,如HTML的内容,直接送到客户端执行。

Elements:必须经由JSP容器处理的,而大部分都以XML作为语法基础,且大小写必须一致。


Elements分为四类:

  • 指令元素:提供JSP网页的相关信息和属性。语法格式一般为 <%@elements ….%>
  • java脚本:<% …%>,<%!...%>
  • 动作元素:<jsp:…>
  • 表达式语言:${…}

jSP中的批注

  • 客户端可见的(通过浏览器可以看到源码)

<!--  现在时间为:January 29 , 2006 -->

<!--  现在时间为:<%= (new   java.util.Date()).toLocaleString() %> -->

  • 程序员专用的,客户端不可见
<%--   comment  --%>

<% /**  this is a comment  **/ %> 



JSP中的转义规则

为了避免显示内容和HTML标签产生语法混淆,部分标签在当内容显示的时候要修改:

  • 斜线 \       —— \\
  • <%           ——   &lt;%
  • %>           ——   %\>单引号‘ --   \’
  • 双引号”    ——   \”
  • ${              ——   \${ 

直接使用这些标签的时候会出现异常。






JSP脚本元素

<%%>,<%!%>称为界定符,其中包含java 代码,如变量或方法声明,表达式求值

脚本元素分为三类:

  • 声明元素:
<%!    int   i=0;  %>
<%!  变量或方法声明 %>可一次声明多个变量或方法,编译后最终转换成servlet代码,变量和方法只在当前一个页面有效

变量为页面级的全局变量,若有N个请求执行该JSP页面,将启动多个线程共享此变量。建议改用<% %


  • 表达式元素:

<%=   expression  %>

<%=   getName()  %>

<%=   i  %> 

注意:Expression的值必须能转换成字符串,否则异常

在expression中不能用;作为其结束符号
Expression能包含任何java语法

等价于<%out.print(expression)%>


  • Scriptlets:

<%   合乎JAVA标准语法的程序片断 %>

Scriptlet能够包含多个语句,变量,表达式;
注意:
可使用声明中定义的变量和方法
包含的小程序片段必须符合java语法规范
可以使用JSP中包含的隐含对象
可使用表达式或<jsp:useBean>声明过的对象
若有注释其方法和java中的注释方法一样。


JSP指令元素

指令 主要用来提供整个JSP网页相关的信息,并且用来设定JSP网页的相关属性,例如:网页的编码方法、语言、信息等等

起止符号为:<%@...%>内文部分为一些指令和一连串的属性设定:

<%@ directive  attr1=“value1” attr2=“value2”…    %>


包含三种指令:
  1. page:   页面属性指令
  2. include:包含指令
  3. taglib: 自定义标签指令

Page指令:设定整个JSP网页的属性和相关功能。
<%@page  attri1=“  ” attri2=“  ”  ....   %>

Attribute可选值:
  • Import =“   ” 指明该JSP可以使用那些JAVA API
  • session=“true/false” 指明该JSP是否可以用session对象
  • pageEncoding=“ ”     指明该JSP网页的编码方式
  • contentType   =“ ”   表示MIME类型和JSP的编码方式
  • buffer=”none/size kb”    设置缓冲区,默认8KB
  • autoFlush=“true/false”  是否自动清楚缓冲
  • Langugae=指明小脚本片断使用的语言,默认java
  • Extends  =“   ”   指明生成的servlet继承那个父类
  • errorPage=“  ”   异常后的重定向UTL
  • isThreadSafe=true|false
<%@page  import =“java.net.*, java.util.List” %>

<%@page  contentType=“text/html;charset=gbk” %>

注意点:导入多个包的时候可以分开写,也可以用,隔离

除import属性外,其他属性只能设置一次


include指令

Include指令:在JSP编译时插入一个包含文本或代码的文件,这个包含过程是静态的。


<%@include  file=“relativeURLspec”    %>包含的文件类型:jsp,html,文本,java程序段。

relativeURLspec值不能是变量URL。

<%@include file=“<%= URL%>”  %>relativeURLspec后不能加任何参数。

relativeURLspec所指的路径必须是相对于此JSP的网页的路径。

文件中要避免有<html></html><body></body>



JSP动作

动作控制标签用于执行一些标准的JSP网页动作。例如:页面跳转,引入javabean对象等。
动作指令必须通过 JSP引擎来实现。
动作指令以xml语法为基础,严格区分大小写。


常用动作指令
  • <jsp:include>
包含指令:用来动态包含另一个jsp页面
  • <jsp:forward>
转发指令:用来将请求转发至一个新的页面
  • <jsp:param>
参数标签:一般与其他动作指令搭配使用


<jsp:include>动作指令

<jsp:include>元素允许你包含动态和静态文件。被包含文件中不要带有HTML标签

若是静态文件,内容直接加到JSP网页中

若是动态文件,被包含的文件也会被JSP引擎编译执行。


语法格式:<jsp:include page={“urlSpec” | “ <%=urlExpress%>”}” flush=“true | false” />

<jsp:include page={“urlSpec” | “<%=urlExpress%>”}” flush=“true | false”  >
     
          <jsp:param name=“pn” value=“{ pv | <%=expression %>}”/>                
  
</jsp:include>


示例:

1、<jsp:include page=“Hello.html”/>

2、<jsp:include page=“script/login.jsp”>
<jsp:param name=“username”  value=“rose”/>
<jsp:param name=“password”  value=“1234”/>
</jsp:include>




<jsp:include> 与<%@include >的区别


动态包含使用<jsp:include> 标签来实现
  • <jsp:include page=“included.jsp” flush=“true” />它总是会检查所含文件中的变化,适合用于包动态页面,并且可以带参数。
  • 动态包含可以给被包含的页面传递参数

静态包含使用include伪码实现
  • 不会检查所含文件的变化,适用于包含静态页面
  • 静态包含不能给被包含的页面传递参数


<jsp:forward>动作指令
<jsp:forward>操作将客户端所发出的请求从当前页面转交到另一个HTML或JSP页面。
<jsp:forward>标签之后的程序将不会在执行。


语法格式:
<jsp:forward page={“ relativeURL ” | “ <%=urlExpress%> ”}”  />

<jsp: forward page={“ relativeURL ” | “ <%=urlExpress%> ”}”   >

<jsp:param name=“pn” value=“{ pv | <%=expression %>}”/>

</jsp: forward >



<jsp:param>指令
<jsp:param>用来提供key/value值,常与<jsp:include><jsp:forward>一起使用。

<jsp:param name=“pname” value=“pvalue”/>

当与<jsp:include>和<jsp:forward>一起用时,被包含的网页或转向后的网页会先看看request对象里面除原来的参数值之外,是否有新的参数值,如果有,则新参数值会替换原来的参数值















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值