jsp语法

来源:互联网 发布:mac系统上好玩的游戏 编辑:程序博客网 时间:2024/05/16 00:47

JSP语法

Jsp语法:JSP模版元素、JSP表达式、JSP脚本片断、JSP声明、JSP注释、JSP指令、JSP标签、JSP内置对象、如何查找JSP页面中的错误

一.JSP模版元素

1JSP页面中的HTML内容称之为JSP模版元素。

2JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。

二.JSP脚本表达式

1JSP脚本表达式(expression)用于将程序数据输出到客户端

       语法:<%=变量或表达式 %>

       当前时间:<%= new java.util.Date() %>

2JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应位置用out.print()将数据输给客户端。

3JSP脚本表达式中的变量或表达式后面不能有分号(;

三、JSP脚本片断

1JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码。语法:

<%多行java代码 %>

注意:JSP脚本片断中只能出现java代码,不能出现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP脚本片断中的Java代码将被原封不动地放到Servlet_jspService方法中。

2JSP脚本片断中的Java代码必须严格遵循Java语法,例如,每执行语句后面必须用分号(;)结束。

3在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。

       4、多个脚本片断中的代码可相互访问,犹如将所有的代码放在一对<%%>之中的情况。

5、单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句,

四、JSP声明

1JSP页面中编写的所有代码,默认会翻译到servletservice方法中,而Jsp声明中的java代码被翻译到_jspService方法的外面。语法:

<% java代码%>

所以,JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法。

2、多个静态代码块、变量和函数可以定义在一个JSP声明中,也可以分别单独定义在多个JSP声明中。

3JSP隐式对象的作用范围仅限于Servlet_jspService方法,所以在JSP声明中不能使用这些隐式对象。

五.JSP注释

1JSP注释的格式:<%--注释信息 --%>

2JSP引擎在将JSP页面翻译成Servlet程序时,忽略JSP页面中被注释的内容。

3、注释

1HTML注释(输出注释):指在客户端查看源代码时能看见注释。例如,

<!-- this is an html comment.it willshow up int the response. -->

2JSP页注释(隐藏注释):指注释虽然写在JSP程序中,但不会发送给客户,因此在客户端查看源代码时不能看见注释。这样的注释在JSP编译时被忽略掉。

<%--this is a JSP comment.it will onlybe seen in jsp code--%>

3Java注释:只能出现在Java代码区中,不允许直接出现在页面中。//单行注释   /*多行注释*/

六、JSP指令

1JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。

2、在JSP 2.0规范中共定义了三个指令:page指令、Include指令、taglib指令

3JSP指令的基本语法格式:<%@指令属性名="" %>

如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。

              <%@ pagecontentType="text/html;charset=gb2312"%>

              <%@ pageimport="java.util.Date"%>

       也可以写作:

       <%@ pagecontentType="text/html;charset=gb2312"import="java.util.Date"%>

七.JSP标签

JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。

1JSP常用标签

<jsp:include>标签 

<jsp:forward>标签 

<jsp:param>标签 

 <jsp:include>标签

2、 <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。

语法:<jsp:include page="relativeURL | <%=expression%>"flush="true|false" />

page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。

flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。 

3<jsp:include>include指令的比较

1<jsp:include>标签是动态引入, <jsp:include>标签涉及到的2JSP页面会被翻译成2servlet,这2servlet的内容在执行时进行合并。

2)而include指令是静态引入,涉及到的2JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。

3)不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,否则输出给客户端的内容将会是一个格式混乱的HTML文档。

 4<jsp:forward>标签

<jsp:forward>标签用于把请求转发给另外一个资源。

语法:<jsp:forward page="relativeURL | <%=expression%>"/>

page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

 5<jsp:param>标签

当使用<jsp:include><jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。

语法1<jsp:include page="relativeURL |<%=expression%>">

<jsp:paramname="parameterName" value="parameterValue|<%= expression%>" />

   </jsp:include>

语法2

<jsp:forward page="relativeURL |<%=expression%>">

<jsp:paramname="parameterName" value="parameterValue|<%= expression%>" />

   </jsp:include>

区别:<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include><jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

八,映射JSP

<servlet>

   <servlet-name>SimpleJspServlet</servlet-name>

   <jsp-file>/jsp/simple.jsp</jsp-file>

   <load-on-startup>1</load-on-startup>

</servlet>

   ……

<servlet-mapping>

   <servlet-name>SimpleJspServlet</servlet-name>

   <url-pattern>/xxx/yyy.html</url-pattern>

</servlet-mapping>

九.如何查找JSP页面中的错误

1JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息。

2JSP页面中的JSP语法格式没有问题,但被翻译成的Servlet源文件中出现了Java语法问题,导致JSP页面翻译成的Servlet源文件不能通过编译,JSP引擎也将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息。

3.JSP页面翻译成的Servlet程序在运行时出现异常,这与普通Java程序的运行时错误完全一样,Java虚拟机将提示错误发生在Servlet源文件中的位置(行和列)以及相关信息。  

 

原创粉丝点击