您好,欢迎访问三七文档
内容提要理解服务器动作指令行所有HTML文件可以在资源管理器中双击执行介绍JSP页面的结构但是JSP文件必须先放到Web服务器中,然后通过HTTP的方式访问。因为文件内所有%%内代码是被Web服务器解释执行的。JSP的编译指令、操作指令和代码理解服务器端执行%@pagelanguage=javacontentType=text/html;charset=GBK%%@pageimport=java.util.*%%Datednow=newDate();intdhours=dnow.getHours();intdminutes=dnow.getMinutes();intdseconds=dnow.getSeconds();out.print(服务器时间:+dhours+:+dminutes+:+dseconds);%SCRIPTLANGUAGE=JavaScriptvardnow=newDate();dhours=dnow.getHours();dminutes=dnow.getMinutes();dseconds=dnow.getSeconds();document.write(br浏览器时间:+dhours+:+dminutes+:+dseconds);/SCRIPTJava程序片在Jsp中,在“%”和“%”之间书写的程序代码为Java程序片在程序片中声明的变量只在页面有效,是局部变量,不能共享。但是,在“%!”和“%”之间声明的变量可以在不同的客户间共享,有效范围是整个Jsp页面,声明周期是服务器关闭后变量才会被释放。JSP表达式用来把Java数据直接插入到输出。其语法如下:<%=JavaExpression%>计算Java表达式得到的结果被转换成字符串,然后插入到页面。计算在运行时进行(页面被请求时),因此可以访问和请求有关的全部信息。例如,下面的代码显示页面被请求的日期/时间:Currenttime:<%=newjava.util.Date()%>Java程序片在表达式中JSP应遵守以下规则:JSP表达式的内容必须是一个“完整”的Java表达式。JSP表达式的内容必须是一个“单独的”Java表达式。一定不能以分号结束一个Java表达式(与JSP声明不同)。注释JSP注释语法格式如下:!--comment[%=expression%]--或!--注释[%=表达式%]--这种注释发送到客户端,但不直接显示,在源代码中可以查看到。JSP另外一种注释语法格式如下:%--注释--%不发送到客户端。JSP页面结构在一个JSP页面中,主要分为三种元素:编译指令、动作指令和JSP代码。编译指令告诉JSP的解释引擎(比如:Tomcat),需要在编译时做什么动作,比如引入一个其它的类动作指令JSP页面的使用什么语言编码等。动作指令(操作指令)则是在JSP页面被请求时,动态执行的,比如可以根据某个条件动态跳转到另外一个页面。JSP代码指的就是我们自己嵌入在JSP页面中的Java代码,这又分为两种:第一种是JSP页面中一些变量和方法的声明,在声明时,使用“!%”和“%”标记。另外一种,就是常用到的用“%”和“%”包含的JSP代码块page指令page指令是针对当前页面的指令。page指令由“%@”和“%”字符串构成的标记符来指定。在标记符中是代码体,包括指令的类型和值。例如:%@pageimport=“java.sql.*”%指令告诉JSP容器将java.sql包中的所有类都引入当前的JSP页面。编译指令常用的page指令标记有8个:language、extends、import、errorPage、isErrorPage、contentType、isThreadSafe和session。page指令language设置JSP页面中用到的语言,默认值为“Java”,也是目前唯一有效的设定值。使用的语法是:%@pagelanguage=java%。编译指令import设置目前JSP页面中要用到的Java类,这些Java类可能是SunJDK中的类,也有可能是程序员自己定义的类。例如:%@pageimport=java.sql.*,java.util.*%。有些类在默认情况下已经被加入到当前JSP页面,而不需要特殊声明,包括四个类:java.lang.*;java.servlet.*;java.servlet.jsp.*和java.servlet.http.*。page指令extends设定目前JSP页面要继承的父类。一般情况下不需要进行设置。在默认情况下,JSP页面的默认父类是HttpJspBase。例如:当前JSP页面要继承mypackage包下的myclass类,相应的声明语句为:“%@pageextends=mypackage.myclass%”。编译指令errorPage用来设定当JSP页面出现异常(Exception)时,所要转向的页面。如果没有设定,则JSP容器会用默认的当前网页来显示出错信息。例如:“%@pageerrorPage=/error/error_page.jsp%”isErrorPage用来设定当前的JSP页面是否作为传回错误页面的网页,默认值是“false”。如果设定为“true”,则JSP容器会在当前的页面中生成一个exception对象。使用errorPage指令捕获异常%@pagelanguage=javaerrorPage=“error.jspcontentType=text/html;charset=GBK%%intdividend=0;intdivisor=0;intresult=0;try{result=dividend/divisor;}catch(ArithmeticExceptionzz){thrownewArithmeticException(除数不能为零!);}%%@pageisErrorPage=truecontentType=text/html;charset=GBK%当前页面是:errortest.jspbr%out.print(exception.toString());%contentType这个属性用来设定传回网页的文件格式和编码方式,一般使用“text/html;charset=GBK”。page指令编译指令isThreadSafe定义JSP容器执行JSP程序的方式,默认值为“true”,代表JSP容器会以多线程方式运行JSP页面。当设定值为“false”时,JSP容器会以单线程方式运行JSP页面。session定义当前JSP页面中是否要用到session,默认值为“true”。include指令include指令用来指定怎样把另一个文件包含到当前的JSP页面中,这个文件可以是普通的文本文件,也可以是一个JSP页面。例如:“%@includefile=”logo.htm“%”。采用include指令,可以实现JSP页面的模块化,使JSP的开发和维护变得非常简单。实例:includeSample1.jsp动作指令JSP编译指令是让JSP容器自动采取的动作,但对于Web开发人员,有些时候想要自己控制JSP页面的运行,这时可以采用JSP中的操作指令。JSP标准动作jsp:useBean标记jsp:getProperty标记jsp:setProperty标记jsp:forward标记jsp:include标记动作指令JSP动作的作用通过标记库定义自定义标记–实例化对象–与服务器端资源进行通信–提高组件的可重用性,增强应用的可维护性–使JSP页面可与JavaBean对象进行交互JSP标准动作JSP动作的语法JSP动作标记遵循XML语言的语法具有一个名称具有前缀jsp:用一对尖括号(和)括起来在尖括号内定义标记:起始标记-以元素的名称开头结束标记-以正斜线开头,后面紧跟元素名称空标记-以元素名称开头,以正斜线结束jsp:include指令jsp:include标准动作用于在当前的JSP页面中加入静态和动态的资源。语法格式为:jsp:includepage=“top.jsp”/不能引用top.jsp里面的变量%@includefile=“top.jsp”%可以引用top.jsp里面的变量jsp:include指令必须以“/”结束,功能和include指令大致相同。区别:include(操作指令):编译时包括,形成一个整体include(动作):运行时包括jsp:forward指令jsp:forward动作指令用于把当前的JSP页面转发到另一个页面上。基本语法为:jsp:forwardpage=”test2.jsp“/使用该功能时,浏览器的地址栏中地址不会发生任何变化。jsp:param指令jsp:param操作指令以标记“jsp:param”开始,以“/”结束比如:jsp:paramname=“oper”value=“add”/。可以将jsp:forward操作指令和jsp:param操作指令结合到一起来使用。使用jsp:param操作指令可以在执行jsp动作指令forward操作动作时,追加参数.以动作指令字/值的方式进行传递。实例:forwardExample1.jspparamExample1.jspjsp:pluginJSP语法格式如下:jsp:plugintype=bean|appletcode=classFileNamecodebase=classFileDirectoryName使用“jsp:plugin”插入一个applet或Bean,必要的话还要下载一个Java插件用于执行它。jsp:plugin[jsp:params[jsp:paramname=parameterNamevalue={parameterValue|%=expression%}/]+/jsp:params][jsp:fallbacktextmessageforuser/jsp:fallback]/jsp:pluginJSPBean标记与JavaBean交互的三个标记jsp:useBeanjsp:getPropertyjsp:setPropertyjsp:useBean创建一个Bean实例并指定它的名字和作用范围。JSP语法格式如下:jsp:useBeanid=beannamescope=page|request|session|applicationclass=classname/或者jsp:useBeanid=beannamescope=page|request|session|applicationclass=classname初始化代码/jsp:useBean属性以及用法1.id=beanInstanceName在所定义的范围中确认Bean的变量,使之能在后面的程序中使用此变量名来分辨不同的Bean,这个变量名对大小写敏感,必须符合所使用的脚本语言的规定,这个规定在JavaLanguage规范已经写明。如果Bean已经在别的“jsp:useBean”标记中创建,则当使用这个已经创建过Bean时,id的值必须与原来的那个id值一致;否则则意味着创建了同一个类的两个不同的对象。2.scope=page|request|session|application属性以及用法bean存在的范围以及id变量名的有效范围。缺省值是page,以下是详细说明:page-能在包含“jsp:useBean”元素的JSP文件以及此文件中的所有静态包含文件中使用这个Bean,直到页面执行完毕向客户端发回响应或转到另一个文
本文标题:jsp教学
链接地址:https://www.777doc.com/doc-3384710 .html