《JSP应用开发项目化教程》第5章_第1页
《JSP应用开发项目化教程》第5章_第2页
《JSP应用开发项目化教程》第5章_第3页
《JSP应用开发项目化教程》第5章_第4页
《JSP应用开发项目化教程》第5章_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1本章目标JSP隐式对象JSP隐式对象应用中常见问题1开发模式与MVC三层结构从JSP的发展过程来看,JSP的开发模式经历了三个阶段的变迁:阶段1:JSP页面独立完成所有的任务模块

(房屋交易信息系统中登录、注册功能的实现)阶段2:JSPModel1:用JSP+JavaBean实现两层的开发模式。

(个人房屋信息管理、房屋信息查询功能的实现)阶段3:JSPModel2:使用JSP+Servlet+JavaBean三层开发模式进行开发,这种模式实现了MVC三层结构,是一种规范的开发模式。开发模式与MVC三层结构阶段1:JSP文件同时负责生成网页、控制到下一个网页的流程以及完成业务逻辑。问题:Html标签和Java逻辑代码强耦合在一起,JSP文件的编写者必须既是网页设计者,又是Java开发者。页面的可读性差、调试困难、不利于维护更改业务逻辑或数据可能牵涉相关的多个网页。开发模式与MVC三层结构阶段2:Model1应用了JavaWeb开发当中的两种技术JSP:完成逻辑上的处理和显示,接受用户的请求和响应给用户数据,同时还完成流程的控制处理JavaBean技术:做辅助取得相应数据。Model1模型实现了JSP开发的两层模型,JavaBean成为实现业务逻辑的主要场所。开发模式与MVC三层结构JSPModel1的优点:结构很简单,开发人员很容易上手,适合开发一些小型的JavaWeb应用。JSPModel1的缺点:由于它是把显示代码和逻辑处理代码都放在JSP页面当中,如果开发大型的javaWeb应用的话,就显得力不从心了既不便于开发人员的维护,也不便于美工人员的修改开发模式与MVC三层结构在Model1中引入Servlet就形成了Model2模式。利用Servlet实现对系统业务逻辑的控制,Servlet是整个业务过程的控制中心。MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是一种开发模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。

开发模式与MVC三层结构视图(View)是用户看到并与之交互的界面。向用户显示相关的数据、接受用户的输入;不进行任何实际的业务处理;视图向模型查询业务状态,接受数据更新事件对界面进行同步更新。模型(Model)是应用程序的主体部分,模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以提高了代码的可重用性。控制器(Servlet)接受用户的输入并调用模型完成用户的需求,之后能够根据不同要求导航到不同的视图页面或其他的Servlet控制中心。控制器工作过程如下:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户开发模式与MVC三层结构MVC三层模型优点:多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。了解ServletServlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的WEB服务器端编程技术,运行在WEB服务器端,获得客户端的访问请求信息和动态生成对客户端的响应消息。Servlet具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载。Servlet运行在服务器。了解Servlet一个Servlet程序就是一个实现了特殊接口的Java类,用于支持Servlet的Web服务器调用和运行,只能运行于具有Servlet引擎的Web服务器端。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,接收访问请求信息和产生响应内容。Servlet与普通Java程序相比,只是输入信息的来源和输出结果的目标不一样。普通Java程序所能完成的大多数任务Servlet程序都可以完成。Servlet程序具有如下的一些基本功能:获取客户端请求及数据;创建对客户端的响应消息内容;访问服务器端的文件系统;调用其它的Java类。了解Servlet一个Servlet程序就是一个在Web服务器运行的特殊Java类,这个特殊Java类必须实现javax.servlet.Servlet接口,Servlet接口定义了Servlet容器与Servlet程序之间通信的协议约定。ServletAPI中还提供了一个专用于HTTP协议的Servlet类,其名称是javax.servlet.http.HttpServlet,它在GenericServlet类的基础上进行了一些针对HTTP特点的扩充。为了充分利用HTTP协议的功能,Servlet类继承HttpServlet类。了解ServletServlet的创建了解Servlet了解Servlet了解ServletServlet中的常用方法:(1)init()方法在Servlet的生命期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的。无论有多少客户机访问Servlet,都不会重复执行init()。缺省的init()方法通常是符合要求的,但也可以用定制init()方法来覆盖它。(2)service()方法service()方法是Servlet的核心。每当一个客户请求一个HttpServlet对象,该对象的service()方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。在HttpServlet中已存在service()方法。缺省的服务功能是调用与HTTP请求的方法相应的doXXX功能。例如,如果HTTP请求方法为GET,则缺省情况下就调用doGet()。了解Servlet(3)doGet()方法doGet()方法是Servlet中的方法之一,用于接受由get模式提交的数据,与此对应还有一个doPost()方法,用于接受由post模式提交的数据。当一个客户通过Html表单发出一个HTTPGET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。(4)doPost()方法当一个客户通过Html表单发出一个HTTPPOST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。(5)destroy()方法destroy()方法仅执行一次,即在服务器停止且卸装Servlet时执行该方法。典型的将Servlet作为服务器进程的一部分来关闭。缺省的destroy()方法通常是符合要求的,但也可以覆盖它。了解Servlet了解Servlet复习servlet的创建JSP开发模式JSPmodel1JSPmodel2servlet的创建过程回顾MVC三层架构模型视图控制器Servlet的创建创建过程Web.xml文件6.2.3创建一个简单的Servlet使用Servlet实现用户登录LoginCheck的主要工作:接收界面输入调用JavaBean中的方法访问数据库根据访问数据库的情况进行页面跳转JSP页面视图层(View)LoginServlet登录校验Servlet控制层(C)Java业务类模型层(M)ViewControlModel创建一个简单的Servlet实现步骤:1.创建login.jsp、index.jsp、error.jsp。2.编写业务类查询数据库,判断用户是否存在。3.创建Servlet,定义Servlet中的doGet()方法或doPost()方法,用于接收请求数据并调用后台类检验用户登录信息。4.修改登录页面登录请求地址,将请求地址改为映射的Servlet地址。创建一个简单的Servlet1.login.jsp页面2.LoginCheck.java类(loginCheck()方法)3.LoginServlet.java类定义接收变量(用户名、密码)实例化后台模型类,通过模型对象调用业务方法根据业务方法的执行结果,进行相应的导航用户存在:设置session(username、userid、isLogined)跳转到index.jsp页面用户不存在:跳转到相应的错误信息提示页面创建一个简单的ServletLoginServlet.java的创建过程创建一个简单的ServletLoginServlet.java的创建过程创建一个简单的ServletLoginServlet.java的创建过程创建一个简单的Servlet4.修改登录页面登录请求地址,将请求地址改为映射的Servlet地址。注:在Servlet开发过程中若是修改了Web.xml中的Servlet的配置信息,要重新发布、启动服务器重新加载配置信息。6.2.3创建一个简单的Servlet5.创建error.jsp页面。6.2.3创建一个简单的Servlet6.改进index.jsp页面。回顾Servlet的创建与使用Servlet中session隐式对象的使用HttpSessionsession=request.getSession();Servlet生命周期1)当Servlet第一次被调用的时候会触发init方法,该方法会把servlet实例加载到内存。该方法只会被调用一次;2)然后去调用servlet的service方法;3)当第二次包括第二次以后就直接调用service方法;4)当web应用需要reload或者是关闭tomcat或者关机都会去调用destroy方法。该方法就会去销毁servlet。下面三种情况会调用destroy方法:第一种就是关闭tomcat,第二种就是web应用reload,第三种情况就是关机。Request与Servlet容器相关的方法Request与Servlet容器相关的方法ServletContext容器ServletContext容器1)Tomcat服务器启动→读入web.xml文件;2)Tomcat容器为这个应用建立一个新的ServletContext实例,应用的所有部分都共享这个上下文;

3)如果web.xml文件中有定义上下文的初始参数,则容器首先创建初始参数实例;

4)把初始化参数实例的引用交给ServletContext上下文;5)容器创建servlet,这时建立一个新的ServletConfig对象,并且为这个ServletConfig对象提供一个ServletContext的引用;6)调用servlet的init()方法初始化servlet。请求转发与重定向的区别请求转发与重定向的区别请求转发只能将请求转发给同一个WEB应用中的组件;而重定向还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。重定向对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求。重定向调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。请求转发的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程。请求转发与重定向的区别请求转发与重定向的使用场合对于同一个WEB应用程序的内部资源之间的跳转,特别是跳转之前要对请求进行一些前期预处理,并要使用HttpServletRequest.setAttribute方法传递预处理结果,那就应该使用forward方法进行请求转发;不同WEB应用程序之间的重定向,特别是要重定向到另外一个WEB站点上的资源的情况,都应该使sendRedirect方法。通常情况下,请求转发速度更快,而且能保持request内的对象,要想在request对象中保存读取的后台数据,应该选用请求转发导航。数据的保存

session.setAttribute("username",username);session.getAttribute("use

温馨提示

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

评论

0/150

提交评论