主要内容JSP概述JSP开发环境的配置JSP的执行过程第一个JSP程序JSP语法JSP内置对象JavaBeanJSP连接数据库JSP实例——库存管理系统JSP概述目前浏览的网页主要可以分为两种:静态网页和动态网页。静态网页是指网页一旦制作完成,就不能随意更改,或者需要专业的技术人员才能修改,而且这种网页不能实现用户与服务器之间的交互,这种网页制作成本较高,制作周期长,更改困难,只适合于一些不需经常更改内容的网页。动态网页正好弥补了静态网页的不足,所谓动态网页是指能根据用户的要求而动态的改变的页面,这种页面不需要维护人员经常手动更新,它能根据不同的时间、不同的人产生不同的页面,目前绝大多数网站采用的都是动态网页技术,如ASP、PHP、JSP等。JSP概述JSP是JavaServerPage(Java服务器页面)的简称,它是由SunMicrosystems公司倡导,多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。JSP继承了Java语言的特点,允许Web开发人员开发和维护与平台无关、信息丰富、动态的Web页面,它能使Web开发人员轻易搭建网络平台,建立起功能强大的Web网站。JSP可以把用户界面从内容层次中分离出来,使Web开发人员不必修改底层的动态内容,就可以修改整体的页面布局。JSP概述JSP的主要特点:一次编写,随处运行有统一的技术标准自由扩展JSP标签执行性能高开发工具多而强大JSP的不足:必须熟悉Java语言难以调试JSP的开发环境要开发JSP,服务器端必须有相应的开发环境,开发环境主要由以下3部分组成:(1)JDK(JavaDeveloperKit,Java开发工具包)(2)JSP服务器(Tomcat6.0)(3)JSP开发IDE(IntegratedDevelopmentEnvironment,集成开发环境)(Eclipse)JDK的下载及安装JDK下载地址:JDK的安装:C:\ProgramFiles\Java\jre6JDK的配置JAVA_HOME用鼠标右击“我的电脑”,选择“属性”-“高级”-“环境变量”-“系统变量”-“新建”。在“变量名”输入框中写入“JAVA_HOME”,在“变量值”输入框中写入“C:\ProgramFiles\Java\jdk1.6.0”(安装路径),然后点击“确定”,JAVA_HOME就设置完成了。PATH“变量值”输入框填写“C:\ProgramFiles\Java\jdk1.6.0\bin”(根据安装路径填写)。CLASSPATH是.;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jarTomcat的下载及安装Tomcat6.0下载Tomcat安装验证安装运行C:\apache-tomcat-6.0.32\bin\startup.bat浏览器输入网址:的下载、安装及配置Eclipse下载Eclipse安装配置字符编码Window-Preferences-General-Workspace配置TomcatWindow-Preferences-Server-RuntimeEnvironmentsJSP的执行过程JSP执行过程1.客户端通过Web浏览器向JSP服务器发出请求。2.JSP服务器检查是否已经存在JSP页面对应的Servlet源代码,若存在则继续下一步,否则转至(4)。3.JSP服务器检查JSP页面是否有更新修改,若存在更新修改则继续下一步,否则转至(5)。4.JSP服务器将JSP代码转译为Servlet的源代码。5.JSP服务器将Servlet源代码经编译后加载至内存执行。6.将产生的结果返回至客户端。第一个JSP程序1、打开Eclipse2、New-Project-DynamicWebProject3、JSP项目目录结构4、Web.xml5、编写index.jsp6、部署到Tomcat7、运行服务器8、用浏览器浏览JSP语法1、JSP页面的构成2、注释3、指令4、脚本元素5、动作元素6、错误处理JSP页面构成JSP注释HTML注释HTML注释主要是用于在客户端动态地显示一个注释,格式如下:!--comment[%=expression%]--JSP注释JSP隐藏注释在JSP源代码中,它不会被JSP引擎处理,也不会在客户端的Web浏览器上显示,格式如下:%--comment--%eg:chapter04/hidden-comment.jspJSP指令在JSP中,指令(Directive)主要用来与JSP引擎进行沟通,并为JSP页面设置全局变量、声明类以及JSP要实现的方法和输出内容的类型等。需要注意的是,指令元素在JSP整个页面范围内有效,并且它不在客户端产生任何输出。使用指令的格式如下:%@directivenameattribute=value%同时,一个指令可以声明多个属性,如下所示:%@directivenameatttibute1=value1,……,atttibuteN=valueN%JSP指令JSP语法规范定义了以下3种不同的指令。page指令:定义与JSP页面相关的属性,并和JSP引擎进行通信。eg:chapter04/index.jspinclude指令:定义JSP编译时需要插入的资源。eg:chapter04/include.jsptaglib指令:定义JSP页面可以调用的一个客户标记库。eg:Dining/index.jspJSP脚本元素脚本元素(ScriptingElements)是JSP代码中使用最频繁的元素,它是用Java写的脚本代码。所有的脚本元素均是以“%”标记开始,以“%”标记结束,它可以分为如下三类:声明表达式Scriptlet脚本元素-声明在JSP中,声明是用来定义在程序中使用的实体,它是一段Java代码,可以声明变量也可以声明方法,它以“%!”标记开始,以“%”标记结束,格式如下:%!declaration;[declaration;]……%每个声明仅在一个JSP页面内有效,如果要想在每个页面中都包含某些声明,可将这些声明包含在一个JSP页面中,然后利用前面介绍的include指令将该页面包含在每个JSP页面中。eg:chapter04/helloJSP.jsp脚本元素-表达式表达式(Expression)以“%=”标记开始,以“%”标记结尾,中间的内容为Java一个合法的表达式,格式如下:%=expression%其中expression表示Java表达式。表达式在执行时会被自动转换为字符串,然后显示在JSP页面中eg:chapter04/helloJSP.jsp脚本元素-ScriptletScriptlet是以“%”标记开始,以“%”标记结尾的一段Java代码,它可以包含任意合乎Java语法标准的Java代码,格式如下:%Java代码%eg:chapter04/helloJSP.jspEg:chapter04/dec-method.jspJSP动作元素大多数的JSP处理都是通过JSP中的动作元素来完成的,动作元素主要是在请求处理阶段起作用,它能影响输出流和对象的创建、使用、修改等。JSP动作元素是利用XML(ExtensibleMarkupLanguage,可扩展标记语言)语法写成的,JSP2.0规范定义了20种标准的动作元素,它们均以“jsp”作为前缀。JSP动作元素-jsp:paramjsp:param操作提供了“名称──值”信息,通常和jsp:include、jsp:forward、jsp:plugin一起使用,包含的页面或重定向的页面将看到新参数增加的原始request对象。该操作若独立于jsp:include、jsp:forward、jsp:plugin这些操作将没有任何作用。jsp:param操作的格式如下:jsp:paramname=paramNamevalue=paramValue/其中paramName表示参数名称,paramValue表示参数值。JSP动作元素-jsp:includejsp:include允许在JSP页面中包含静态和动态页面。如果包含的是静态页面,则只是将静态页面的内容加入至JSP页面中,如果包含的是动态页面,则所包含的页面将会被JSP服务器编译执行。jsp:include操作的格式如下:jsp:includepage=relativeURL|%=expression%flush=true|false/page:表示所要包含的文件的相对URL,它可以是一个字符串,也可以是一个JSP表达式。flush:默认值为false,若该值为true则表示当缓冲区满时,缓冲区将被清空。eg:chapter04/jsp_include.jspJSP动作元素-jsp:forwardjsp:forward操作允许将当前的请求运行转发至另外一个静态的文件、JSP页面或含有与当前页面相同内容的Servlet。jsp:forward的格式如下:jsp:forwardpage=relativeURL|%=expression%/eg:chapter04/login.jspJSP动作元素-jsp:pluginjsp:plugin主要用来在客户端的浏览器中显示一个对象,通常为Applet或Bean。eg:chapter04/usingPlugin.jspJSP错误处理在编写JSP页面的过程中,无论是初学者还是编程高手都会遇到各种各样的问题,谁也无法保证编写的JSP页面不会出现任何错误。在JSP页面的处理过程中,在下面两个阶段会发生错误。编译阶段:该阶段将JSP源文件编译为Servlet类文件。处理客户请求阶段:Servlet类在该阶段处理每个客户的请求JSP错误处理处理客户请求阶段的错误处理处理客户请求阶段的错误是指JSP编译成功后Servlet类处理客户请求发生的错误,这类错误往往不是语法错误,而是由于逻辑上的错误,例如获取的参数类型不匹配、被零除等错误。当这些错误发生时,JSP程序将抛出异常,由异常处理机制进行处理。发生这类错误时,通常将错误交由errorPage处理,例如制作一个“error.jsp”页面eg:chapter04/pageError.jspJSP内建对象JSP规范中定义了9种内建对象,它们分别为request、response、out、session、application、config、pageContext、page和exception,在JSP中并不需要编写任何额外的代码就可以自动使用这些内建对象。其中网页输出对象out和包含客户端请求信息的response对象是最基本的对象。out对象可以在Java代码中轻松地输出网页内容,而不必将HTML语法和属于JSP程序的部分区分开来。而request对象则包含了所有关于客户端的信息,只有通过该对象才能取得客户端传送过来的信息JSP内建对象-out对象out对象的主要作用是在Web浏览器内输出信息。out对象被封装为javax.servlet.jsp.JspWriter接口,它是JSP编程过程中经常用到的一个对象,在编程过程中通过该对象可以对缓冲区进行操作。通过调用pageContext.getOut()方法可以获取out对象。eg: