《Web编程技术》学习笔记(四)

本文介绍了JSP的基本语法,包括注释、脚本元素、编译指令和操作指令等内容。重点讲解了JSP页面如何通过整合HTML标记与Java代码实现动态内容生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


JSP页面=HTML标记+JSP标签+JSP标签(变量和方法的声明、java程序片、java表达式)
JSP页面程序是在静态页面中加入用Java描写的动态页面处理部分。
JSP的元素类型只有3种:脚本元素、指令元素和标准操作元素。
JSP脚本元素书写在标签<%和%>之间包括:声明、表达式和Java程序语句。
注意:JSP元素的命名对大小写敏感。

JSP的执行顺序:
1、服务器接受请求;
2、JSP引擎将JSP代码转换成Servlets代码;
3、JSP引擎调用Java编译器将Servlets代码编译为.class文件;
4、JVM解释执行.class文件。
5、结果返回给请求的客户端。

JSP基本语法

一、注释
1、JSP网页自身注释

<%-- JSP网页自身的注释内容  --%>
不会出现在网页的源代码中,编译时会被忽略掉,“隐式注释”
注释内容中有--%>,要用--%\>

2、JSP网页的普通注释

<%   程序段
/*  多行注释内容
  多行注释内容   */
   程序段
 //单行注释内容
   程序段
%>

3、JSP网页的HTML注释

<!--  发送到客户端的注释  -->
注释中可以出现动态数据(通过表达式表示),这是与一般HTML注释最大的不同之处。
<!--  注释 <%=expression %> 注释    -->
表达式内容可以是动态的,如
<!--  Comment generate Date is <%= (new java.util.Date()).toString () %> -->

“<%”、“%>”、“‘”等符号被JSP引擎视作具有特定意义的符号;
JSP程序包含这些符号需使用转换符来表示。 

在这里插入图片描述
二、脚本元素
脚本元素有:注释声明、表达式、程序代码段(Scriptlet)

以<%开始并以%>结束
通常是Java代码,它允许声明变量和方法,包含任意脚本代码和对表达式的求值。

1、JSP声明元素

<%! Declaration(s)  %>
  • 在JSP中使用变量和方法前,必须事先声明。
  • 声明语句必须符合指定Java的语法规范。
  • 声明变量时要用分号“;”作为结束符。
  • 可以直接使用<%@page %>包含的变量和方法,无须对其声明。
  • 一个声明仅在一个页面中有效。,如果想重复使用某声明,可以把其放入<%@include%>或< jsp:include>。

2、JSP表达式元素

<%= expression %>
如果表达式的结果不能转化成String,将抛出错误异常。
  • 表达式不能用分号“;”作为结束符。
  • 表达式元素可以很复杂,由多个表达式组成。
  • 表达式有时也能作为其他JSP标签的属性值。

3、JSP脚本小程序元素

<% JSP脚本小程序元素(Scriptlet)  %>
  • 遵循脚本语言语法规范。
  • 分号原则
  • 自由使用隐含的和jsp:useBean声明对象
  • 符合Java注释格式

JSP编译指令

<%@ 指令名称  属性1 =,属性2 =,…  %>

接下来介绍三个指令是page、include和taglib
一、page指令元素
网页指令page用于定义与整个JSP页面相关的属性,对整个页面有效。

<%@page contentType="text/html;charset=GB2312"%>

对page指令的各个属性值解释如下:
在这里插入图片描述
二、include指令元素
文件加载指令include只有一个属性file,值为被包含文件的名称。文件可以为.txt或.jsp

<%@include file=“被包含的文件名”%>

三、taglib指令元素
用于定义一个标签库及自定义标签的前缀

<%@taglib uri=“扩展标签库的URI” prefix=“扩展标签的前缀” %>

定义标签库pe4j-taglib和前缀pe4j的代码为:

<%@taglib uri="/pe4j-taglib" prefix="pe4j" %>

JSP操作指令

在JSP中操作指令有:< jsp:include>,< jsp:forward>,< jsp:plugin>,< jsp:param>,< jsp:useBean>,< jsp:setProperty>和< jsp:getProperty>
一、< jsp:include>
在JSP文件中包含一个静态或动态文件。文件名一般为相对路径。注意jsp与:与include之间不能有空格,否则出错。
静态文件:根据include放置的位置导出。当静态文件发生改变时,必须将JSP文件重新保存和转译。
动态文件:当动态文件发生改变时,运行JSP文件会进行同步变化。
<jsp:include page =URL flush=“true" >
<jsp:param NAME = “参数名称1” VALUE = “值1” />
<jsp:param NAME = “参数名称2” VALUE = “值2” />
……
</jsp:include>
参数设置可以省略,省略时还可以使用如下简单格式:
<jsp:include page =URL flush=“true” />
二、< jsp:forward>
将浏览器显示的页面重定向到另一HTML或JSP文件。

<jsp:forward page = URL>
<jsp:param NAME="参数名称1" VALUE="值1" />
<jsp:param NAME="参数名称2" VALUE="值2" />
</jsp:forward>
若使用<jsp:param>将参数传递给JSP网页时,JSP网页可通过  request.getParameter("参数名称") 取得传入的参数。

三、< jsp:plugin>
让客户端执行一个小的JAVA程序,有可能的话还要下载一个java插件。
< jsp:plugin>动作标签将根据浏览器的版本被替换成HTML标签< object>或< applet>元素

<jsp:plugin
TYPE = "bean|applet"
code="保存类的文件名称"
codebase="类路径"
[NAME = "对象名称"] 
[archive = "相关文件路径"]
[ALIGN = "对齐方式"]
[height = "高度"]
[width = "宽度"]
[hspace = "水平间距"]
[vspace = "垂直间距"]
[jrevesion = "Java环境版本"]
[nspluginurl = "供NS使用的plugin加载位置"]
[iepluginurl = "供IE使用的plugin加载位置"] >
 <jsp:params>
	 <jsp:param  NAME = "参数名称1"  VALUE = "值1" />
	 <jsp:param  NAME = "参数名称2"  VALUE = "值2" />
	 ……	
</jsp:params>
<jsp:fallback> 错误信息</jsp:fallback> 
</jsp:plugin>

四、< jsp:useBean>
定义JSP网页中要使用的JavaBean对象。
与useBean操作配合使用的还有< jsp:setProperty>和< jsp:getProperty>标签。

  • < jsp:setProperty>用来设置JavaBean对象的属性。注意:在使用< jsp:setProperty>之前必须使用< jsp:useBean>标记对Bean进行声明。

  • < jsp:getProperty>用来获取JavaBean对象的属性值。

      <jsp:useBean
      id = "..."//Bean的对象名
      scope="作用域,默认为page"
      {
      	class="package.class"/  //Bean所引用的类的名字,要求这个类不能是抽象的,且必须有一个公用的、没有参数的构造方法。
      	type="package.class"/  
      	//如果Bean已经在指定域存在,type定义了脚本变量定义的类型;在没有使用class或beanName的情况下使用type,Bean不会被实例化。
      	beanName="{package.class/<%=expression%>}"type="package.class"
      	//BeanName的属性值为包、类、表达式,它作为参输穿个java.beans.BeansBeans的方法instantiate()。该方法检查参数是一个类还是一个连续模板,然后调用相应的方法来实例化一个Bean。type的值可以和Bean相同。
      }
      >
      </jsp:useBean>
    

待补充!!!见:《Web编程技术》学习笔记(六)中JSP使用bean

Bean这块感觉了解的不够深刻,主要就是beanName、instantiate了解不够,

五、< jsp:param>
为其他标签提供附加信息

<jsp:param name=" " value=" "/>
该标签必须配合<jsp:include><jsp:forward>等动作标签一起使用。
当<jsp:include>使用该标签则会将参数传入至include包含的文件中的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值