《第五章 Java Web编程技术1.ppt》由会员分享,可在线阅读,更多相关《第五章 Java Web编程技术1.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Web编程技术编程技术nWEB编程技术分为:n浏览器端编程技术nHTML、CSS、JavaScript语言和VBScript语言。n服务器端编程技术n3P(ASP、JSP和PHP)nServletnJavaBeannJDBCn编程架构和框架第五章第五章 JSP编程技术编程技术JSP简介简介nJSP技术是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP、PHP类似,它们都是在通常的网页文件中嵌入脚本代码来生成动态内容,不过JSP文件中嵌入的是Java代码和JSP标记。JSP网页(*.jsp)就是在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标记(T
2、ag)构成的。MyJSPmyfist.jspstartingpageThisismyJSPpage.我的第一个JSP网页Jsp的本质是servletnJSP技术是在Servlet技术上发展起来的,JSP最终将编译成一个Servlet,所以其本质仍是一个Servlet。这个编译过程发生在首次访问JSP页面的时候,编译完成后其实是一个Servlet对外提供服务,当后继的访问者再访问这个JSP时,不再重新编译,直接由Servlet响应请求,这也是为什么JSP网页比其它动态网页响应更快的原因。案例探密jsp如何变成servletJsp比servlet有什么好处?-改进输出方便界面设计nServlet输
3、出全部使用输出流来输出,形如out.print()这样的语句,这对于复杂的网页来说非常不方便,JSP正是对Servlet输出这部分作出重大的改进,允许使用直接使用允许使用直接使用HTML和和JavaScript来输出,并可在一些工具中来输出,并可在一些工具中可视的编写网页,极大方便了网页的设计可视的编写网页,极大方便了网页的设计和修改。和修改。Jsp相比servlet有何缺点?-多种代码影响可读性不利逻辑处理n但与此同时,如果大量的Java、HTML、JavaScrpt三种代码混合在一起,会影响程序的结构和可读性,不利于业务逻辑的处理。我们怎样办?-各取之长jsp做页面、servlet处理业务
4、n所以Sevlet和JSP各有优点,JSP侧重于页面的表现,Servlet更侧重于业务逻辑的实现。在MVC模式中JSP技术用于表现层View,Servlet主要用于控制层Controller或业务逻辑层,JavaBean用于模型层Model。Jsp主要用于表现层主要是html代码nJSP技术虽然从Servlet技术发展而来,但它主要用于表现层,在网页中主要的代码是HTML代码,这些HTML代码是JSP网页的模板,是显示的框架。(分析第一个页面的框架)Jsp和htmln功能:都是表现层UI,即界面n本质不同:html是纯静态网页、jsp是动态网页,这种动态的含义是指内容可以变化的,要由程序运行的
5、结果(或数据库)来决定的。n所以可以把JSP页面可以看成是加强版的HTML,它由各种元素组成,可实现动态交互。理解理解JSP程序的执行程序的执行n理解静态和动态的本质区别nHTML网页是静态,这些网页早就存放在WEB服务器的WEB容器中,当我通过HTTP协议访问时,WEB服务器只是简的把该网页发回给浏览器进行显示。nJSP网页的内容是动态的,其内容事先并没有固定,当我们访问JSP网页时,WEB服务器把该请求转发给后端的JSP容器,它是WEB容器的一个扩展,JSP容器把该JSP编译成Servlet,转到Servlet容器,运行这个Servlet,产生的输出形成一个网页,再由WEB容器发回给浏览器
6、显示图解jsp运行过程例5-1理解服务器端运行n程序名:程序名:ch5_1/WebRoot/5_01.jspnnnnnvardnow=newDate();ndhours=dnow.getHours();ndminutes=dnow.getMinutes();ndseconds=dnow.getSeconds();ndocument.write(浏览器时间:+dhours+:+dminutes+:+dseconds);n运行结果结果后面的秘密-服务器运行与浏览器端运行的不同的内容服务器端运行,输出只是结果(以html、script形式存在)其他的html、script照样输出所有输出的html、
7、script代码传到浏览器,由浏览器负责解释显示出来再探jsp变servelt5.2JSP页面元素页面元素nJSP页面的基本结构页面的基本结构JSP页面是由多种元素构成的,可以分为注释、指令、脚本元素、动作和模板数据5个部分。Jsp家谱JSP的脚本元素的脚本元素n脚本标识(Script)包括三个部分:声明(Declaration),表达式(Expression)和脚本代码(Scriptlet)。声明声明(Declaration)n声明的作用是在其脚本元素中声明可以使用的变量、方法和类。声明是以“”为结尾的标记。其语法格式为:声明的例子声明的规则n声明必须以”;”结尾(Scriptlet有同样的
8、规则,但是表达式就不同).n可以直接使用在中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明.n在%!中声明的变量在整个一个页面中有效,而在方法内声明的变量,只在方法被调用期间有效。如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用或元素包含进来。深入理解声明的本质nJSP文件中用内声明的变量或方法将变成为Servlet的成员变量,这些变量或方法将被所有访问该页面的线程所共享,不具有线程安全性。因此应尽量不用声明来定义变量,若需要局部变量时,则直接在java脚本代码(Scriptlet)中定义。例:页面计数器页面计数器-理解声明的多用户单页面共享的本质个人访问本站共享
9、的麻烦与解决n这种共享变量或方法是一种临界资源,可能会发生与时间有关的错误,我们可以在声明时在变量或方法前加上synchronized关键字,互斥的访问这些共享资源,当一个用户访问该变量或方法时,其它的用户必须等待,直到该用户完成操作,互斥访问函数的声明与使用程序名:程序名:5_03.jsp您是第个访问本站的客户。表达式(Expression)nn例如:n表达式被执行后的结果被自动转化为字符串返回到客户端。表达式等效于JSP预定义变量out.print()方法。n例如:等效于注意事项n不能用分号(”;”)来作为表达式的结束符,但是同样的表达式用在声明中就需要以分号来结尾。n表达式元素能够包括任
10、何在Java中有效的表达式。一个表达式在形式上可以很复杂,可能由一个或多个表达式组成,而这些表达式的运算顺序是从左到右,依次计算,然后转换为字符串。n因表达式的结果自动转化字符串,所以表达式可以出现任何需要字符串的地方。表达式也能作为其它JSP元素的属性值。n例如:tablewidth=height=程序把表格的宽设置为a的值,高设置为a/2。可见表达式的使用非常灵活。脚本代码脚本代码(Scriptlet)nScriptlet包含在之间,它遵循Java语法规则。一个JSP页面可以有一个或者多个Scriptlet,在经过容器编译后,生成一个整体的Servlet。n脚本代码可以用于JSP变量和方法的声明、显示表达式以及调用JavaBean等,也可以与HTML混合使用。脚本与html的混合使用%if(xX是负数X是正数