JSP学习一

来源:互联网 发布:mysql 唯一约束 编辑:程序博客网 时间:2024/06/14 03:56

一、JSP页面组成

在一个JSP页面中,可以包括指令标识、HTML代码、JavaScript代码、嵌入的Java代码、注释和JSP动作动作标识等内容。

例如:

<%@ page language="java" contentType="text/html;charset=GB18030" pageEncoding="GB18030"%><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %><html><head><meta http-equiv="Content-Type" content="text/html;charset=GB18030"><title>我的第一个jsp页面</title></head><body><% Date date=new Date();SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String today=df.format(date);%>当前时间:<%=today %><!-- 输出系统时间 --></body></html>


二、指令标识

指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中,对客户端浏览器是不可见的,JSP指令标识的语法格式:<%@ 指令名 属性1="属性值1" 属性2="属性2的值"  ... %>

说明:

1.指令名:用于指定指令的名称,JSP包含3条指令:page,include,taglib

2.各属性间可用逗号或空格分隔

3. <%@ %>是完整的标记,不能添加空格

2.1 page指令

JSP页面中最常用的命令,用于定义整个JSP页面的相关属性,这些属性在JSP被服务器解析成Servlet时会转换为响应的Java程序代码。page指令的语法格式如下:

<%@ page atr1="value1" att2="value2" ... %>

page指令包含15个属性:language,extends,import,...

2.2 include指令

通过该指令可以在一个JSP页面中包含另一个JSP页面,不过该指令是静态包含(被包含文件中的所有内容会被原样包含到该JSP页面中,所以在被包含文件和包含文件中不能含有相同名称的变量),语法格式如下:

<%@ include file="path"%>只有一个file属性,指定要包含的文件路径。

例如:

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>使用文件包含include指令</title></head><body style="margin:0px;"><%@ include file="copyright.jsp" %></body></html>

2.3 taglib指令

声明该页面中所使用的标签库,同时引用标签库,并指定标签的前缀。在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。指令语法格式如下:

<%@ taglib prefix="tagPrefix" url="tagURL" %>

prefix:指定标签的前缀

url:指定标签库文件的存放位置

三、脚本标识

脚本标识能够很方便、灵活的生成页面中的动态内容,包括3部分:JSP表达式,声明标识和脚本程序。

3.1  JSP表达式

用于向页面中输出信息,其语法格式为:

<%= 表达式%>

说明:

1.%和=之间不可以有空格,=与其后边的表达式之间可以有空格

2.表达式可以是任何java语言的完整表达式。该表达式的最终运算结果将被转换为字符串。

例如:

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>JSP表达式</title></head><body><%String manager="mr"; %>管理员:<%=manager %><%="管理员:"+manager %><%=5+6 %><%String url="my.jpg"; %><img src="imag/<%=url %>"></body></html>

3.2 声明标识

用于定义全局的变量或方法。语法格式如下:

<%! 声明变量或方法的代码 %>

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>JSP声明标识</title></head><body><%!int number=0;int count(){number++;return number;}%>刷新次数:<%=count() %></body></html>

3.3 代码片段

在JSP页面中嵌入的Java代码或是脚本代码。语法格式:

<% Java代码或是脚本代码 %>

说明:

声明标识声明周期:从创建开始到服务器关闭结束;

代码片段声明周期:创建开始到页面关闭后;二者有效范围均为当前JSP页面

例如:

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>JSP代码片段</title></head><body><%String str="";for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){str+=j+"*"+i+"="+j*i;str+=" ";}str+="<br>";}%><table ><tr><td height="30" align="center">九九乘法表</td></tr><tr><td style="padding:3pt"><%=str %></td></tr></table></body></html>

3.4 JSP注释

1. 单行注释://

2. 多号注释:/*  */

3.提示文档注释:/** */

4. 隐藏注释:<%--  注释内容 --%>

5. 动态注释:<!-- 动态注释 -->

3.5 动作标识

1. 包含文件标识:<jsp:include>

被包含的文件可以是动态文件,也可以是静态文件。语法格式如下:

<jsp:include page="url" flush="false|true" />

或:

<jsp:include page="url" flush="false|true" >

子动作标识<jsp:param>
</jsp:include>

2.请求转发标识:<jsp:forward>

将请求转发到其他web资源。语法格式如下:

<jsp:forward page="url"  />

或:

<jsp:forward page="url"  >

子动作标识<jsp:param>

</jsp:forward>

例如:

<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>中转页</title></head><body><jsp:forward page="login.jsp" /></body></html>


3. 传递参数标识<jsp:param>

可作为其它标识的字标识,用于为其他标识传递参数。语法格式为:

<jsp:param name="参数名" value="参数值" />

如下列代码实现在请求转发到modify.jsp页面的同时,传递了参数userId,其参数值为7:

<jsp:forward page="modify.jsp"><jsp:param name="userId" value="7" /></jsp:forward>



















































































































0 0