Internet应用解决方案-MVC框架(servlet)_第1页
Internet应用解决方案-MVC框架(servlet)_第2页
Internet应用解决方案-MVC框架(servlet)_第3页
Internet应用解决方案-MVC框架(servlet)_第4页
Internet应用解决方案-MVC框架(servlet)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章,MVC框架,Internet应用解决方案,目标,MVC模式及其特点MVC的模式2介绍当今流行的MVC框架,什么是MVC,MVC架构是随着smalltalklanguage语言的发展提出的,它是一个著名的用户界面设计架构。MVC模式不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。,什么是MVC,Model(模型)模型包含应用程序的核心功能,管理这个模块中所用到的数据和值View(视图)视图提供模型的表示,管理模块如何显示给用户,它是应用程序的外观Controller(控制器)控制器对用户的输入作出反应,管理用户与视图发生的交互,MVC,尽管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础,MVC模式的好处,视图与模型分离,使程序结构清晰,不同功能模块耦合度降低,各司其职,互不干涉,可以方便改变视图而模型不变,或者保持视图不变而改变业务规则,有利于开发中的分工。多个视图共享一个模型,提高了代码复用。控制器提高了应用的灵活性和可配置性。,JSP+JavaBean模式,Model1的主要特点,表现层用HTML或JSP。JSP文件还负责所有的业务和处理逻辑JSP直接用代码访问数据或JSP通过JavaBean存取数据。以页面为中心,应用程序的业务逻辑和程序流程都在页面中出现。,Model1的缺点,JSP不仅负责表示逻辑,还负责控制逻辑大型项目中如果采取此方式,每个开发小组协调困难当输出设备不同时(比如股票信息输出到显示器、手机、PDA上),需要采用不同的输出格式(即不同的视图),那么用此方式JSP不仅要判定设备的类型,而且要为不同类型的设备提供正确的显示格式。,JSP+JavaBean+Servlet模式,在一个典型的J2EEWeb应用中,MVC设计模式包括三个部分:模型(Model):用于封装数据及数据的处理,一般是关系数据库或EJB。视图(View):数据的表现组件,通常就是JSP页面,也可以是GUI,可以有多个。控制器(Controller):接受用户动作,负责统一管理。一般是Servlet。,J2ee的MVC模式,主流MVC框架介绍,Struts:,主流MVC框架介绍,WebWorkWebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架。JSFJavaServerFaces(JSF)就是一个基于JAVA技术的Web应用框架标准,同时也是对于J2EE标准的一个重大补充,Servlet,Internet应用解决方案,Servlet概述,Servlet模型的设计目的:它能接收客户端发送的HTTP请求,这个请求包含了客户端所有需要服务器知道的信息,根据请求的类型选择一个特定的Servlet方法处理该请求,并有效地向客户端返回响应。Serlvet是在Web服务器上运行的Java小程序。,Servlet的特点,Java语言编写的类服务器端小应用程序,与Applet对应根据用户请求,产生动态页面执行效率高,速度快;使用标准的API,多种WebServer均支持;可移植性:与操作系统和服务器平台无关;功能强大:能够访问JDK平台的所有资源安全性高:Servlet本身的API和容器保证安全,Servlet的用途,协调输出,但几乎不参与生成动态页面的工作。收集和验证用户输入,但几乎不作实际处理。处理简单的业务逻辑。(以便于维护)处理JSP不便处理的后台服务。,Servlet的API,javax.servlet包和javax.servlet.http包提供编写servlet所需的类和接口。所有servlets必须实现接口javax.servlet.Servlet,在该接口中定义了Servlet生命周期的各种方法。可通过继承javax.servlet.GenericServlet创建一个与协议无关的一般的Servlet通过继承javax.servlet.http.HttpServlet创建基于HTTP协议的servlet。,HTTP到Servlet的方法映射,JavaSerlvet规范2.3作了如下规定:,HTML中.,Servlet的执行过程,Servlet在Web容器上(比如Tomcat)上运行,客户机,Web服务器,Servlet引擎,HTTPRequest,HTTPResponse,HTTPRequest,HTTPResponse,HTTPServletRequest,HTTPServletResponse,HttpServletservice()应用程序逻辑和生成的内容,Servlet的执行过程,Web容器装载、运行并管理Servlet的一般过程如下:客户向Web容器(如Tomcat)发送HTTP请求如果Servlet还没载入,容器就装入它。第一次装入之后,该Servlet就一直保留在内存中,直到容器决定把它卸载(通常是Tomcat停止运行)Web容器把HTTP请求信息送给Servlet,给每一个用户请求创建一个新的线程。,Servlet的执行过程,Servlet把HTTP请求转换成HttpServletRequest(该对象包含用户输入的数据或者请求参数),处理该请求之后,生成一个相应的HttpServletResponse,这两个对象传给Servlet的service()方法,由容器调用该方法,执行后将信息反馈到容器中。容器把这些反馈信息回送到客户端浏览器。,Servlet的生命周期,生命全过程:加载servlet需要的类及servlet类本身实例化初始化(init)处理请求(service,doGet,doPost)退出服务(destroy),Servlet的生命周期,HttpServlet中对应生命周期的方法:init()publicvoidinit(ServletConfigconfig)throwsServletExceptionservice()publicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException,java.io.IOException该方法根据HTTP请求,调用doGet()或doPost(.)用于接收来自Client的请求、获取请求中的数据,编写响应的标题、获取响应的输出流以及编写响应的数据。destroy()publicvoiddestroy()用于释放本servlet所占用的所有资源,如线程或数据库连接,并将数据保存到文件或者数据库中。,Servlet的生命周期,init(),service(),service(),service(),service(),service(),service(),destroy(),service(),时间,Servlet的生命周期,Servlet生命周期的顺序图,ServletRequest,在HTTP协议下,从客户请求传来的所有信息可通过请求字符串以http头以及请求体中的消息,从客户端传到服务器端。在HTTP请求发送到服务器后,请求对象就被转换成ServletRequest对象了。Servlet容器还将创建一个相应的ServletResponse对象,向客户端所在的浏览器发送响应数据。它们将被转换为相应的HttpServletRequest,HttpServletResponse对象,然后传给Servlet进行相应的请求处理。,ServletRequest,getParameterNames获取客户提交的表单中所有参数名的集合getParameter(ParamName)获取参数名为ParamName的参数值getParameterValues(ParamName)获取参数名为ParamName的参数值的集合getInputStream()得到一个输入流用来读取二进制数据,ServletResponse,常用方法:setContentType(text/html;charset=gb2312);设置文档输出类型ServletOutputStreamout=response.getOutputStream();获取字节形式的输出流PrintWriterout=response.getWriter();获取字符输出流sendRedirect(Stringlocation)URL重定向,ServletRequest,Form表单(first_servlet.html),第一个JSP程序FirstName:LastName:,ServletRequest,Logon.java,publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionresponse.setContentType(text/html;charset=gb2312);PrintWriterout=response.getWriter();StringUserName=request.getParameter(“FirstName);UserName=newString(UserName.getBytes(ISO8859_1),GB2312);out.println();out.println(Hello,+UserName);out.println();out.close();,WEB应用的结构,WEB应用根目录WEB-INFweb.xmlclassestrainingservletSimpleServlet.classlib,WEB应用描述文件,simpleservlettraining.servlet.SimpleServletsimpleservlet/simpleservlet,请求调度方法,将HTTP请求从一个servlet转发到另一个servlet或jsp的过程叫做请求转发(requestdispatching)ServletRequest接口提供了访问RequestDispatcher对象的方法:RequestDispatcher接口定义了一个从客户端接收请求,并能够把请求发送到任何服务器资源(比如servlet、HTML文件或者JSP文件)的对象。,请求调度方法,Stringuri=ServletTwo;Requ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论