资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,动态网页技术的发展,当,www,网初现江湖时,当时主要是,html,(,19,9,3,),由于,html,只支持静态的文字和图片,不能参与用户进行交互,为弥补这个不足,陆续出现了下列网页技术:,(,1,),cgi,(,common gateway interface,),特点:,a,:,cgi,技术是早期动态技术使用最多,发展比较成熟并且功能强大,b,:效率比较低,编程比较困难,c,:,cgi,可以用不同的语言编写(,vb,,,delphi,,,c/c+,,,perl,)常用的,c/c+,和,perl,语言,d,:现在使用,cgi,做动态网页比较少,但是还是有,主要用于,linux/unix,操作系统中,(,2,),asp,asp,是,html+javascript,(,vbscript,),+com,组件的形式,,,asp,的功能强大不在于能使用相关的脚本语言而是,com,组件,但是,com,组件的开发是比较困难的。,优势:,1.,简单易学,2.,安装使用方便(,windows+iis,)在,win98,是使用(,pws,作为,asp,的服务器),3.,效率比,cgi,高,不足:,1.,功能扩张比较困难,因为,asp,的功能扩展在,com,组件,而开发,com,组件是比较困难的,2.,安全性。因为,asp,是与,windows,系统和,iis,一起工作的,所以,windows,和,iis,的安全漏洞会对,asp,造成影响,3.,跨平台性,4.,实现企业级的功能困难,如服务器的集群、负载均衡,动态网页技术的发展,2,动态网页技术的发展,(,3,),php,官方网站:,优势:,1.,跨平台性良好,多种数据库支持,2.,效率比较高,具有良好的安全性,3.,免费使用,不足:,1.,安装复杂(,php,的很多功能需要安装相应的应用库,如要更好的支持图形就要安装,gd,库),2.,缺少企业级的支持(,php,是由,php,开发组支持的,如果要增加新功能就要开发相应的组件),3.php,是自由软件组织开发的,缺少正规的公司对其负责,动态网页技术的发展,(,4,),jsp,jsp=html+java,片段,+jsp,语法,+js,优势:,1.,一次编写,到处运行,2.,良好的跨平台性,3.,多种开发工具支持,4.,强大的可伸缩性(,jsp+javabean,)的方式,不足:,1.jsp,产品的复杂度高(,jsp,入门比,asp,难),2.jsp,要求运行的机器配置要高,因为,jsp,使用,class,常驻内存,的方式运行的,效率高,但是需要占用更多的内存,动态网页技术的发展,jsp VS asp,jsp,asp,运行速度,很快,较快,安全性,很高,较高,跨平台性,很好,支持,windows,对数据库的支持性,支持所有主流数据库,支持所有主流数据库,对组件的支持性,良好,良好,对,xml,的支持性,良好,良好,b/s,与,c/s,的比较,b/s,的优势:,1.,开发成本低,2.,管理维护简单,3.,产品升级便利,4.,对用户的培训费用低,5.,用户使用方便,出现故障的概率小,b/s,的不足:,1.,安全性不足,2.,客户端不能随心变化,受浏览器的限制,3.,利于管理用户,服务器,ie,浏览器,ie,浏览器,b/s,服务器,客户端,客户端,c/s,servlet,的介绍,什么是,servlet,?,servlet,技术是在,java ee,出现之前就存在了,在开发动态网页中得到广泛的应用,直到现在的,java ee,项目中也是非常重要的,同时,jsp,也是在,servlet,的基础上发展起来的。,servlet,(,java,服务器小程序)是用,java,编写的服务器程序,它的特点:,1.,由服务器调用和执行,2.,用,java,语言编写的,3.,按照,servlet,规范开发,4.,功能强大,可以完成几乎所有的网站功能,5.,是学习,jsp,的基础,servlet/jsp,开发工具,servlet/jsp,运行环境,Tomcat,是一个免费的开源的,servlet,容器,,它是,Apache,基金会的,Jakarta,项目中的一个核心项目,由,Apache,,,Sun,和其它一些公司及个人共同开发而成。,普通的文本编辑器,notepad,,,uedit32,集成开发工具,jcreator,,,jbuilder,,,eclipse,,,editplus,,,netbean,浏览器,Web,服务器,数据库,绝大部分浏览器,ie,,,netscape,,,firefox,,,Maxthon,Tomcat,Bea weblogic,Ibm websphere,Resin,Sql 200,Sybase,Mysql,,,Access,Oracle,,,db2,。,tomcat,在网络中的位置,IE,浏览器,Web,服务器,jsp/servlet,容器,*.java,*.jsp,Tomcat,三个功能:,1.web,服务器,2.jsp,容器,3.servlet,的容器,Tomcat,http,请求,返回静态页面,转发,返回结果,服务器,ie,浏览器,ie,浏览器,servlet,体系结构,javax.servlet.*;,java.lang.Object,javax.servlet.GenericServlet,java.io.InputStream,java.io.OutputStream,java.lang.Throwable,javax.servlet.ServletInputStream,javax.servlet.ServletOutput,java.lang.Exception,java.io.Serializable,javax.serlet.Servlet,javax.servlet.ServletConfig,javax.servlet.ServletException,javax.servlet.UnavailableException,界面层,(美工),逻辑层,(程序员),数据层,(数据库分析员),网络拓扑图,servlet,的几个实例,开发,servlet,有三种方法:,1.,实现,servlet,接口,2.,继承,GenericServlet,3.,继承,HttpServlet,servlet,开发流程,1.,在,%TOMCAT_HOME%/webapps,下,WEB-INF,的文件夹,写一个文件,web.xml,(该网站的配置信息),建立一个,classes,的子文件夹,也可以从别的目录,ROOT,下拷贝,2.,开发,servlet,(引入,Tomcat,文件夹下,lib,文件夹里的,servlet-api.jar,),3.,部署你的,servlet,(,servlet,开发流程,),4.,启动,Tomcat,,访问你的,servlet,,在浏览器的地址栏中输入:,http:/127.0.0.1:8080/myWebSite/hello,回车就可以看到,servlet,的输出,注意:,127.0.0.1,是服务器所在的,IP,,,8080,是端口号,要根据实际情况定。,servlet,开发流程,在,web.xml,文件中添加如下代码:,hello,com.test.Hello,hello,/hello,servlet,的生命周期,servlet,部署在容器里(我们使用的是,Tomcat,,也可是别的,比如,jboss,,,weblogic,。),它的生命周期由容器来管理。,servlet,的生命周期分为以下几个阶段:,1.,装载,servlet,,由相应的容器来完成,2.,创建一个,servlet,实例,3.,调用,servlet,的,init,()方法,,该方法只会在第一次访问,servlet,时被调用一次,4.,服务:调用,servlet,的,service,()方法,一般,业务逻辑,在这里处理,该方法在访问该,servlet,时,会被调用,5.,销毁:调用,servlet,的,destroy,()方法,销毁该,servlet,实例,,该方法在以下情况被调用:,a,),tomcat,重新启动,b,),reload,该,webapps,c,)重新启动电脑,通过,GenericServlet,去开发,servlet,,只需要重写,service,方法,相对来说要简单一些。,通过,HttpServlet,去开发,servlet,,需要重写,doGet,、,doPost,方法,这是目前用的最多的一种方法。,表单提交数据,get,请求和,post,请求的区别:,1.,从安全性看,getpost,。,get,提交的数据会在浏览器的地址栏显示,2.,从提交的内容大小看,getpost,。,get,请求服务,器立即处理请求,,而,post,请求可能形成一个队列请求,通过继承,GenericServlet,开发,servlet,通过继承,HttpServlet,开发,servlet,同一用户的不同页面共享数据,四种方法:,1.,cookie,技术,2.sendRedirect,()跳转,3.,隐藏表单提交(,form,),4.session,技术,同一用户的不同页面共享数据,什么是,cookie,?,(,客户端,),cookie,可以用来做什么?,服务器在客户端保存用户的信息,比如登录名、密码,就是,cookie,这些信息就像是小甜饼一样,,数据量并不大,,,服务器端在需要的时候可以从客户端读取,服务器,客户端,客户端,客户端,1.,保存用户名、密码,在一定时间不用重新登录,2.,记录用户访问网站的喜好,比如有无背景音乐、网页的背景色是什么,3.,网站的个性化,比如定制网站的服务、内容,cookie,使用,1.cookie,有点像一张表,分两列,一个是名字,一个是值,数据类型都是,String,2.,如何创建一个,cookie,(在服务器端创建的),Cookie c=new Cookie(String name,String val);,3.,如何将一个,cookie,添加到客户端,response.addCookie(c);,4,。如何读取,cookie,(从客户端读到服务器),request.getCookie();,名字,String,值,String,cookie,cookie,其它说明,1.,可以通过,IE,工具,internet,选项,隐私,高级来启用或是禁用,cookie,2.,由于,cookie,的信息是保存在客户端的,因此,安全性不高,3.cookie,信息的生命周期可以在创建时设置(比如,30s,),从创建那一时刻起,就开始计时,到时该,cookie,的信息就无效了,同一用户的不同页面共享数据,sendRedirect,()方法,通过该方法可以将一个页面的信息传送给另外的页面,比如:,sendRedirect(“welcome?uname=aaa”);,优点:传送信息的速度比较快,缺点:,它只能传送字符串,而不能传送一个对象,sendRedirect(“welcome?uname=aaa”);,注意点:,1.welcome,代表你要跳转的那个,servlet,的,url,2.servlet url,名和变量之间有个?,3.,如要传递两个以上的值,它们之间要用符号,&,分开,比如,sendRedirect(“welcome?uname=aaa,4.,如果传递的是中文,那你将得到乱码,需要处理一下,res.setContentType(“text/html,charset=gbk”);,同一用户的不同页面共享数据,隐藏表单,这是最常见的一种方式,也是最简单的,但有时该技巧非常管用,形如:,通过隐藏表单,我们也可以将一个页面信息,传递给另外的页面。,同一用户的不同页面共享数据,什么是,session,?,(,服务器端,
展开阅读全文