jsp语法
来源:互联网 发布:mac系统上好玩的游戏 编辑:程序博客网 时间:2024/05/16 00:47
JSP语法
Jsp语法:JSP模版元素、JSP表达式、JSP脚本片断、JSP声明、JSP注释、JSP指令、JSP标签、JSP内置对象、如何查找JSP页面中的错误
一.JSP模版元素
1、JSP页面中的HTML内容称之为JSP模版元素。
2、JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。
二.JSP脚本表达式
1、JSP脚本表达式(expression)用于将程序数据输出到客户端
语法:<%=变量或表达式 %>
当前时间:<%= new java.util.Date() %>
2、JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应位置用out.print(…)将数据输给客户端。
3、JSP脚本表达式中的变量或表达式后面不能有分号(;)。
三、JSP脚本片断
1、JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码。语法:
<%多行java代码 %>
注意:JSP脚本片断中只能出现java代码,不能出现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP脚本片断中的Java代码将被原封不动地放到Servlet的_jspService方法中。
2、JSP脚本片断中的Java代码必须严格遵循Java语法,例如,每执行语句后面必须用分号(;)结束。
3、在一个JSP页面中可以有多个脚本片断,在两个或多个脚本片断之间可以嵌入文本、HTML标记和其他JSP元素。
4、多个脚本片断中的代码可相互访问,犹如将所有的代码放在一对<%%>之中的情况。
5、单个脚本片断中的Java语句可以是不完整的,但是,多个脚本片断组合后的结果必须是完整的Java语句,
四、JSP声明
1、JSP页面中编写的所有代码,默认会翻译到servlet的service方法中,而Jsp声明中的java代码被翻译到_jspService方法的外面。语法:
<%! java代码%>
所以,JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法。
2、多个静态代码块、变量和函数可以定义在一个JSP声明中,也可以分别单独定义在多个JSP声明中。
3、JSP隐式对象的作用范围仅限于Servlet的_jspService方法,所以在JSP声明中不能使用这些隐式对象。
五.JSP注释
1、JSP注释的格式:<%--注释信息 --%>
2、JSP引擎在将JSP页面翻译成Servlet程序时,忽略JSP页面中被注释的内容。
3、注释
(1)HTML注释(输出注释):指在客户端查看源代码时能看见注释。例如,
<!-- this is an html comment.it willshow up int the response. -->
(2)JSP页注释(隐藏注释):指注释虽然写在JSP程序中,但不会发送给客户,因此在客户端查看源代码时不能看见注释。这样的注释在JSP编译时被忽略掉。
<%--this is a JSP comment.it will onlybe seen in jsp code--%>
(3)Java注释:只能出现在Java代码区中,不允许直接出现在页面中。//单行注释 /*多行注释*/
六、JSP指令
1、JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
2、在JSP 2.0规范中共定义了三个指令:page指令、Include指令、taglib指令
3、JSP指令的基本语法格式:<%@指令属性名="值" %>
如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。
<%@ 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页面难以维护。
1、JSP常用标签
<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>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
(2)而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个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页面中的错误
1、JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息。
2、JSP页面中的JSP语法格式没有问题,但被翻译成的Servlet源文件中出现了Java语法问题,导致JSP页面翻译成的Servlet源文件不能通过编译,JSP引擎也将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息。
3.JSP页面翻译成的Servlet程序在运行时出现异常,这与普通Java程序的运行时错误完全一样,Java虚拟机将提示错误发生在Servlet源文件中的位置(行和列)以及相关信息。
- jsp语法
- JSP语法
- JSP语法
- JSP语法
- jsp语法
- Jsp语法
- JSP语法
- jsp语法
- JSP语法
- JSP语法
- JSP语法
- JSP语法
- JSP语法
- JSP语法
- jsp语法
- JSP语法
- JSP语法
- jsp语法
- 黑莓断网引起的彩信无法接受
- Java初学者都应该搞懂的六个问题
- Map 容器接口 及类中的方法的使用
- 【转】John The Ripper附图教程
- 想要成为java大牛必须知道的25点
- jsp语法
- const小练习一则,把const int*去除常量性赋给int*
- Smarty-基础
- JDK环境变量配置的步骤
- METHODS
- 修改openJDK7的javac,使得java支持单引号字符串
- 大奖赛打分程序设计
- vps上搭建基于lnmp的wordpress站点
- page和include指令