




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IT资讯交流网WWW.IT315.ORG,JavaWEB开发-Servlet,讲师:佟刚petrelsky5,IT资讯交流网WWW.IT315.ORG,软件编程体系,BS系统架构,CS系统结构,IT资讯交流网WWW.IT315.ORG,软件编程体系,IT资讯交流网WWW.IT315.ORG,基于B/S结构的项目,目前主要采用两种服务器端语言:JSP(JavaServerPages)ASP(ActiveServerPages)两种语言构成两大开发体系:JSP+Oracle体系ASP+SQLServer体系,IT资讯交流网WWW.IT315.ORG,B/S架构编程体系,B/S结构的编程语言浏览器端编程语言服务器端编程语言浏览器端HTML(HypertextMarkupLanguage,超文本标记语言)CSS(CascadingStyleSheets,层叠样式表单)JavaScript语言VBScript语言,IT资讯交流网WWW.IT315.ORG,服务器端编程语言,目前主要是3P技术ASP、JSP和PHPASP是微软公司推出的,在这三种语言中是用得最为广泛的一种。JSP是SUN公司推出的是JAVAEE核心技术中最重要的一种PHP在1999年的下半年和2000年用得非常广泛,因为Linux+PHP+MySQL(一种小型数据库管理系统)构成全免费的而且非常稳定的应用平台,IT资讯交流网WWW.IT315.ORG,JAVAWEB开发环境介绍,在开发过程中,基于JSP项目通常涉及到Web服务器数据库服务器集成开发环境的选择,IT资讯交流网WWW.IT315.ORG,WEB服务器,HTTP协议:Web浏览器与web服务器的交互所遵循的规则Web服务器:Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response)。为了处理一个请求,Web服务器可以响应一个静态页面或图片,或进行页面跳转,或者把动态响应的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP脚本,ASP脚本等。无论脚本的目的何,这些服务器端(server-side)的程序通常产生一个HTML的响应来让浏览器可以浏览。,IT资讯交流网WWW.IT315.ORG,Web服务器,WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求,启动界面如图,IT资讯交流网WWW.IT315.ORG,Web服务器,另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范,启动界面如图,IT资讯交流网WWW.IT315.ORG,Web服务器,在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范,启动界面如图,IT资讯交流网WWW.IT315.ORG,数据库服务器,在Java相关的开发领域中,常用的是3种数据库:Oracle、DB2和MySQL。有时候也使用微软公司的SQLServer数据库服务器Oracle数据库是Oracle公司的产品,也是历史最悠久的数据库,世界前50强的企业中,80%使用Oracle数据库作为公司的数据库服务器。服务器的图标如图,IT资讯交流网WWW.IT315.ORG,数据库服务器,IBM公司的DB2也是一种常用的数据库,和IBM的WebSphere配合构成完整的企业级解决方案,数据库服务器的启动界面如图,IT资讯交流网WWW.IT315.ORG,数据库服务器,目前商业数据库服务器市场三足鼎立:Oracle、DB2和微软公司的SQLServer,在实际应用中,有一个常用的免费的小型数据库服务器:MySQL,启动界面如图,IT资讯交流网WWW.IT315.ORG,JSP运行环境的安装配置,JSP推荐开发的环境:Windows2000Server/2003Server+Tomcat6.x,也是企业中常用的开发环境。JSP运行环境需要JDK的支持,需要安装两个软件:j2sdk和Tomcat。,IT资讯交流网WWW.IT315.ORG,JavaWeb应用的概念,在Sun的JavaServlet规范中,对JavaWeb应用作了这样定义:“JavaWeb应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet规范的Servlet容器中运行。”JavaWeb应用中可以包含如下内容:ServletJSP实用类静态文档如HTML、图片等描述Web应用的信息(web.xml),IT资讯交流网WWW.IT315.ORG,Servelt与Servlet容器,Web浏览器,服务器,Web服务器,HTTP请求,静态页面,Servlet容器,jsp,Servlet,数据库,HTTP相应,IT资讯交流网WWW.IT315.ORG,Servlet容器的概念,Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。目前最流行的Servlet容器软件括:TomcatResinJ2EE服务器(如Weblogic)中也提供了内置的Servlet容器,IT资讯交流网WWW.IT315.ORG,Tomcat简介,Tomcat是一个免费的开放源代码的Servlet容器,它是Apache软件基金会的一个顶级项目,由Apache,Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与与支持,最新的Servlet和JSP规范总是能在Tomcat中的到体现,Tomcat6支持最新的Servlet2.5和JSP2.1规范。,IT资讯交流网WWW.IT315.ORG,Tomcat的目录结构,Tomcat的目录层次结构,存放启动和关闭Tomcat的脚本文件,存放Tomcat服务器的各种配置文件,存放Tomcat服务器和所有web应用程序需要访问的jar文件,存放Tomcat的日志文件,存放Tomcat运行时产生的临时文件,当发布web应用程序时,通常把web应用程序的目录及文件放到这个目录下,Tomcat将JSP生成的Servlet源文件和字节码文件放到这个目录下,IT资讯交流网WWW.IT315.ORG,运行Tomcat,1.配置java_home或jre_home2.双击bin目录下的startup.bat文件3.在地址栏中输入http:/localhost:8080/,IT资讯交流网WWW.IT315.ORG,关闭TomcatGenericServlet类如何实现ServletConfig接口中的方法举例:publicStringgetServletName()returngetServletConfig().getServletName();在Servlet程序中调用ServletConfig对象的方法的简单方式举例:StringservletName=getServletName();,IT资讯交流网WWW.IT315.ORG,service方法的实现技巧,Servlet接口中定义的service方法的语法格式及处理代码:publicvoidpublicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException,java.io.IOExceptionHttpServletRequestrequest=(HttpServletRequest)req;HttpServletResponseresponse=(HttpServletResponse)res;request.HttpServletRequest中定义的方法();response.HttpServletResponse中定义的方法();HttpServlet类中定义的重载service方法的语法格式及处理代码:protectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,java.io.IOExceptionreq.HttpServletRequest中定义的方法();res.HttpServletResponse中定义的方法();HttpServlet类中实现的service方法的语法格式及处理代码:publicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException,java.io.IOExceptionHttpServletRequestrequest=(HttpServletRequest)req;HttpServletResponseresponse=(HttpServletResponse)res;service(request,response);/这里调用的是那个重载的service方法,IT资讯交流网WWW.IT315.ORG,doXxx方法,如果要在service方法中对不同的请求方式进行不同的处理,那么首先必须判断客户端的请求方式,然后通过选择语句对每种方式分别进行处理。HttpServlet类为每一种HTTP请求方式都定义了一个对应的doXxx方法,例如,与GET请求方式对应的是doGet方法,与POST请求方式对应的是doPost方法。HttpServlet中重载的Service方法根据客户端的请求方式,分别调用与之对应的doXxx方法来完成具体的处理和响应细节,并将它接受的两个参数传递给该doXxx方法,例如,如果HTTP请求方式为GET,则调用doGet方法。,IT资讯交流网WWW.IT315.ORG,HttpServletRequest简介,ServletAPI中定义的ServletRequest接口类用于封装请求消息。HttpServletRequest是专用于HTTP协议的ServletRequest子接口,它用于封装HTTP请求消息。在service()方法内部调用HttpServletRequest对象的各种方法来获取请求消息。,IT资讯交流网WWW.IT315.ORG,获取请求行的相关信息,HTTP请求消息的请求行包括请求方式、资源路径和HTTP协议版本:GET/it315/servlet/RequestURI?param1=awhile(paramNames.hasMoreElements()StringparamName=(String)paramNames.nextElement();out.print(paramName+:+request.getParameter(paramName)+);/*如果要考虑同一个请求头名可能出现多次,那么应该用下面的代码段代替上面一行程序代码*/*StringparamValues=request.getParameterValues(paramName);/良好的编程习惯,在使用对象和数组之前先判断其是否为nullif(paramValues!=null)for(inti=0;i);*/,IT资讯交流网WWW.IT315.ORG,请求域属性,存储在ServletRequest对象中的对象称之为请求域属性,属于同一个请求的多个处理模块之间可以通过请求域属性来传递对象数据。与请求域属性相关的方法:setAttribute方法getAttribute方法removeAttribute方法getAttributeNames方法,IT资讯交流网WWW.IT315.ORG,请求域属性的典型应用,MVC设计模式将一次请求的响应过程分成三个功能模块(一般称之为层)来协同完成,这三个模块分别是Model(模型层)、View(视图层)、Controller(控制层)。Model是可作为JavaBean使用的业务对象;View是负责创建显示界面的JSP页面;Controller通常是一个接收用户请求的Servlet程序,它根据请求创建相应的model对象和调用model对象的业务方法,最后再选择一个View去创建网页文档内容并回送给客户端。Controller调用RequestDispatcher.forward方法将请求转发给作为View的JSP页面,同时将Model对象作为请求域属性传递过去,作为View的JSP页面再从请求域中检索出Model对象。,IT资讯交流网WWW.IT315.ORG,请求域属性的编程实例,采用MVC设计模式实现一个简单示例程序:UserRegister.html是一个包含有让用户填写注册信息的FORM表单的HTML页面;User.java是一个代表用户注册信息的普通Java类;ActionServlet.java是一个用于处理FORM表单信息的Servlet程序,它根据表单提交的信息创建一个User类的实例对象,并把这个User实例对象存储到请求域中,然后将请求转发给另外一个用于显示用户注册信息的Servlet程序;JspResultServlet.java是一个用于显示用户注册信息的Servlet程序,JspResultServlet从请求域中取出User实例对象,并显示出这个User实例对象的信息。,IT资讯交流网WWW.IT315.ORG,HttpServletResponse简介,ServletAPI中定义的ServletResponse接口类用于创建响应消息。HttpServletResponse是专用于HTTP协议的ServletResponse子接口,它用于封装HTTP响应消息。,IT资讯交流网WWW.IT315.ORG,请求重定向与请求转发,RequestDispatcher接口用forward方法实现请求转发请求转发的运行流程用sendRedirect方法实现请求重定向请求重定向的运行流程请求重定向与请求转发的比较,IT资讯交流网WWW.IT315.ORG,RequestDispatcher接口,RequestDispatcher实例对象是由Servlet引擎创建的,它用于包装一个要被其他资源调用的资源(例如,Servlet、HTML文件、JSP文件等),并可以通过其中的方法将客户端的请求转发给所包装的资源。RequestDispatcher接口中定义了两个方法:forward方法和include方法。forward和include方法接收的两个参数必须是传递给当前Servlet的service方法的那两个ServletRequest和ServletResponse对象,或者是对它们进行了包装的ServletRequestWrapper或ServletResponseWrapper对象。获取RequestDispatcher对象的方法:ServletContext.getRequestDispatcher(参数只能是以“/”开头的路径)ServletContext.getNamedDispatcherServletRequest.getRequestDispatcher(参数可以是不以“/”开头的路径),IT资讯交流网WWW.IT315.ORG,请求转发的过程示意图,IT资讯交流网WWW.IT315.ORG,用sendRedirect方法实现请求重定向,sendRedirect方法不仅可以重定向到当前应用程序中的其他资源,它还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。如果传递给sendRedirect方法的相对URL以“/”开头,则是相对于整个WEB站点的根目录,而不是相对于当前WEB应用程序的根目录。,IT资讯交流网WWW.IT315.ORG,请求重定向的过程示意图,IT资讯交流网WWW.IT315.ORG,请求重定向与请求转发的比较,RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。如果传递给HttpServletResponse.sendRedirect方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。调用HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;调用RequestDispatcher.forward方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;RequestDispatcher.forward方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。RequestDispatcher.forward方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而HttpServletResponse.sendRedirect方法调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。,IT资讯交流网WWW.IT315.ORG,ServletContext接口,Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。由于一个WEB应用程序中的所有Servlet都共享同一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政保姆中介合同范本
- 广告制作安装合同书范本3篇
- 建筑节能行业新技术应用方向
- 农业科技示范园规划初步设计中的农业市场潜力评估报告
- 农产品品牌建设资金申请报告:2025年行业发展趋势与竞争格局分析
- 河北省衡水市安平县安平中学2025-2026学年高一上学期开学测试思想政治试卷
- 2025年信号与系统试卷及答案
- 小米解锁l题库及答案
- 2025年交通设计试题及答案
- 2025年士兵军校试题及答案
- 陕西专升本英语词汇表
- 2025年乡村医生公共卫生服务考试题库基础知识试题
- 种子购买协议合同书
- 《小学美术开学第一课》课件
- 汽车行业售后
- 直播电商数据分析教学计划
- DBJ-T13-483-2025 预拌流态固化土技术标准
- 2025-2030中国卤虫行业投资新趋势动向及发展战略分析报告
- 2025中职生开学第一课主题班会课件
- 2025年湖南省高职单招《英语》高频必练考试题库400题(含答案)
- 消防工程深化设计管理体系及保障措施方案
评论
0/150
提交评论