- 浏览: 85678 次
文章分类
最新评论
第十五章:servlet和JSP的集成,模型-视图-控制器构架
一MVC的需求
1.MVC框架,在复杂的应用中,使用更为复杂精致的MVC框架有时会更有利,这些框架中最流行的是Apache Struts,尽管Struts很有用且被广泛采用,但实现MVC方案并不一定要使用Struts,对于简单和中等复杂的应用,使用RequestDispatcher从零开始实现MVC更为直观和灵活。
二、用RequestDispatcher实现MVC以下是步骤:
1.定义bean来表示数据(我们也可以理解他为结果bean:表示请求结果的java对象),我们在jsp中使用getProperty访问bean中的属性,我们不需要修改和创建bean,这些工作由servlet或其他java例程来做,因此,我们可以把这个bean定义为值对象:仅表示结果的对象,只是很少甚至根本没有任何其他功能。
2.编写servlet处理请求:servlet读取请求参数,请求报头,也可以使用populateBean方法填写表单bean,注意不是结果bean。特别要注意采用MVC方案时,servlet并不创建任何输出,输出完全由JSP页面来完成。
3.填写结果bean,读取请求参数之后,由servlet调用相应的商业逻辑或数据访问代码,获得最后的结果,然后将结果放置在第一步我们定义的bean中,也就是值对象中。
4.结果的存储,这一步当中,我们需要将这些bean存储在jsp页面能够访问的位置。servlet可以在3个位置存储JSP页面所需的数据,分别是,HttpServletRequest,HttpSession,ServletContext中。对应jsp:useBean的scope属性的3种非默认值。即request,session和application。比如
5.转发请求到JSP页面,转发请求使用RequestDispatcher的forward方法,RequestDispatcher的获取需要调用ServletRequest的getRequestDispatcher的方法并提供相对地址。我们可以指定WEB-INF目录中的地址,<核心方法>如果JSP页面只在由servlet生成的数据的上下文中才有意义,则可以将页面放置在WEB-INF目录中,这样servlet可以将请求转发到该页面,但客户不能直接访问他们。<重点提示>这里要注意RequestDispatcher的forward方法时,客户看到的是初始servlet的URL,而非最终JSP页面的URL。a.我们可以把请求转发到静态资源,但静态页面只能处理get请求,不能处理post请求,因为Post请求中的请求参数是在Http请求正文内,静态页面无法取出其参数。所以我们只要把静态页面的后缀改为jsp,就既可以处理get请求,也可以处理post请求。b.重定向替代转发,即使用response.sendRedirect ,这种用法适用于重新显示不完全的HTML表单,因为我们可以把之前创建的数据从会话中取出。而如果使用RequestDispatcher的forward方法,则无法把之前创建的数据信息取出。
从第二步到第五步,都是在servlet中编写。
6.从bean中提取数据。但要注意我们不在jsp页面中创建bean,所以使用<jsp:useBean id = "" type = ""/>而不是使用
三、目的页面中相对URL的解释。1.因为RequestDispatcher的forward方法只维护最初的servlet的URL,那么它所转到的页面的相对地址也是相对于原来的servlet,这几乎会产生错误,比如<link ref = "stylesheet" href = "my-styles.css" type = "text/css"> 这里的href相对的就是原来servlet中的地址,所以我们要把它改为绝对的URL
同样<img src = "">和<a href ="">也要注意这个问题。
四、从jsp页面转发请求
五、包含页面
1[size=medium][/size].转发forward的一种替代方案是包含include,servlet依旧依靠jsp也页面生成输出,但servlet调用不同的jsp页面生成最终页面的不同部分,事实上,RequestDispatcher的include方法就是jsp:include动作在后台调用的代码。
一MVC的需求
1.MVC框架,在复杂的应用中,使用更为复杂精致的MVC框架有时会更有利,这些框架中最流行的是Apache Struts,尽管Struts很有用且被广泛采用,但实现MVC方案并不一定要使用Struts,对于简单和中等复杂的应用,使用RequestDispatcher从零开始实现MVC更为直观和灵活。
二、用RequestDispatcher实现MVC以下是步骤:
1.定义bean来表示数据(我们也可以理解他为结果bean:表示请求结果的java对象),我们在jsp中使用getProperty访问bean中的属性,我们不需要修改和创建bean,这些工作由servlet或其他java例程来做,因此,我们可以把这个bean定义为值对象:仅表示结果的对象,只是很少甚至根本没有任何其他功能。
2.编写servlet处理请求:servlet读取请求参数,请求报头,也可以使用populateBean方法填写表单bean,注意不是结果bean。特别要注意采用MVC方案时,servlet并不创建任何输出,输出完全由JSP页面来完成。
3.填写结果bean,读取请求参数之后,由servlet调用相应的商业逻辑或数据访问代码,获得最后的结果,然后将结果放置在第一步我们定义的bean中,也就是值对象中。
4.结果的存储,这一步当中,我们需要将这些bean存储在jsp页面能够访问的位置。servlet可以在3个位置存储JSP页面所需的数据,分别是,HttpServletRequest,HttpSession,ServletContext中。对应jsp:useBean的scope属性的3种非默认值。即request,session和application。比如
request.setAttribute("key",value);session.setAttribute("key",value);getServletContext().setAttribute("key",value);
5.转发请求到JSP页面,转发请求使用RequestDispatcher的forward方法,RequestDispatcher的获取需要调用ServletRequest的getRequestDispatcher的方法并提供相对地址。我们可以指定WEB-INF目录中的地址,<核心方法>如果JSP页面只在由servlet生成的数据的上下文中才有意义,则可以将页面放置在WEB-INF目录中,这样servlet可以将请求转发到该页面,但客户不能直接访问他们。<重点提示>这里要注意RequestDispatcher的forward方法时,客户看到的是初始servlet的URL,而非最终JSP页面的URL。a.我们可以把请求转发到静态资源,但静态页面只能处理get请求,不能处理post请求,因为Post请求中的请求参数是在Http请求正文内,静态页面无法取出其参数。所以我们只要把静态页面的后缀改为jsp,就既可以处理get请求,也可以处理post请求。b.重定向替代转发,即使用response.sendRedirect ,这种用法适用于重新显示不完全的HTML表单,因为我们可以把之前创建的数据从会话中取出。而如果使用RequestDispatcher的forward方法,则无法把之前创建的数据信息取出。
从第二步到第五步,都是在servlet中编写。
6.从bean中提取数据。但要注意我们不在jsp页面中创建bean,所以使用<jsp:useBean id = "" type = ""/>而不是使用
<jsp:useBean id = "" class = ""/>。第二点要注意的是,我们一般不修改bean中的属性,所以我们不使用<jsp:setProperty/>
三、目的页面中相对URL的解释。1.因为RequestDispatcher的forward方法只维护最初的servlet的URL,那么它所转到的页面的相对地址也是相对于原来的servlet,这几乎会产生错误,比如<link ref = "stylesheet" href = "my-styles.css" type = "text/css"> 这里的href相对的就是原来servlet中的地址,所以我们要把它改为绝对的URL
<link ref = "stylesheet" href = "/path/my-styles.css" type = "text/css">,
同样<img src = "">和<a href ="">也要注意这个问题。
四、从jsp页面转发请求
<jsp:forward page = "relative url">
五、包含页面
1[size=medium][/size].转发forward的一种替代方案是包含include,servlet依旧依靠jsp也页面生成输出,但servlet调用不同的jsp页面生成最终页面的不同部分,事实上,RequestDispatcher的include方法就是jsp:include动作在后台调用的代码。
发表评论
-
servlet和jsp核心编程(第2版)第十六章 简化对Java代码的访问:jsp2.0表达式语言学习笔记
2012-08-23 21:49 732第十六章:简化对Java代 ... -
servlet和jsp核心编程(第2版)第十四章 JavaBean组件在JSP文档中的应用 学习笔记
2012-08-21 11:55 702第十四章 JavaBean组件在JSP文档中的应用 一、bea ... -
servlet和jsp核心编程(第2版)第十三章 在JSP页面中包含文件和applet学习笔记
2012-08-20 15:53 862第十三章 在JSP页面中包 ... -
servlet和jsp核心编程(第2版)第十二章page指令学习笔记
2012-08-19 17:00 755第十二章 控制所生成的servlet的结构:JSP page指 ... -
servlet和jsp核心编程(第2版)第十一章jsp脚本元素的调用学习笔记
2012-08-18 21:09 815第十一章 用JSP脚本元素 ... -
servlet和jsp核心编程(第2版)第十章jsp技术概述学习笔记
2012-08-18 10:37 687第十章jsp技术概述 学习笔记: 一servlet和jsp的区 ... -
servlet和jsp核心编程(第2版)第九章会话跟踪学习笔记
2012-08-17 17:30 893第九章 会话跟踪 核心 ... -
servlet和jsp核心编程(第2版)第八章cookie管理学习笔记
2012-08-08 12:27 842第八章 cookie管理 核心方法: 1.在创建cookie对 ... -
servlet和jsp核心编程(第2版)第七章服务器响应的生成:HTTP响应报头学习笔记
2012-08-06 17:45 728第七章:服务器响应的 ... -
servlet和jsp核心编程(第2版)第六章服务器响应的生成:HTTP状态代码学习笔记
2012-08-05 10:52 736第六章:服务器响应的生成:HTTP状态代码 核心方法: 1.在 ... -
servlet和jsp核心编程(第2版)第五章客户请求的处理:HTTP请求报头学习笔记
2012-08-02 21:36 701第五章客户请求的处理:HTTP请求报头 核心方法: 1.在使用 ... -
servlet和jsp核心编程(第2版)第四章客户请求的处理,表单数据学习笔记
2012-07-31 16:05 1235第四章学习笔记 客户请 ... -
servlet和jsp核心编程(第2版)第三章servlet基础学习笔记
2012-07-29 10:43 707第三章:servlet基础 核心方法: 1.使用HTML验证器 ...
相关推荐
Servlet与JSP核心编程第二版 PDF文件 高清,内容通俗易懂.
Servlet与JSP核心编程第二版5Servlet与JSP核心编程第二版5Servlet与JSP核心编程第二版5
Servlet与JSP核心编程(第2卷 第2版)
Servlet与JSP核心编程(第二版),你是不是要学最新版本(J2EE1.4)的Servlet和 SP?这本书能让你如虎添翼。你将能很好地掌握Servlet和JSP
Servlet与JSP核心编程:综合介绍Servlet与JSP
透过《Servlet与JSP核心编程(第2卷 第2版)》,读者可以掌握如何通过部署描述文件web.xml来控制Web应用的行为,如何通过声明式安全和编程式安全来增强Web应用的安全,如何使用servlet和JSP过滤器来封装Web应用常见的...
Servlet 与 JSP 核心编程(第2版)(含源代码版) Servlet 与 JSP 核心编程(第2版)(含源代码版)
Servlet与JSP核心编程第二版代码
Servlet与JSP核心编程(第2版).pdf
Servlet与JSP核心编程(第2版),与大家分享JSP 开发技术
本书由Marty Hall,Larry Brown著 张学良译 清华大学出版社出版 原书有47M由于上传文件大小限制分为3部分,本人不是黑人,仅仅在最后一个部分才收取4分资源分
Servlet与JSP核心编程第二版(含书签)
《Servlet与JSP核心编程》由浅入深,全面而深入地介绍了servlet和jsp技术。本书重点介绍核心技术,同时对相关的内容,如web服务器的配置、安装和应用,数据库的安装和配置等都做了详细明了的介绍。本书的例子简练...
《Servlet与JSP核心编程》(第2版)叙述详尽,条理清晰。对于初学者来说是一本不可多得的入门书籍,经验丰富的Servelet和JSP开发人员也可以通过阅读《Servlet与JSP核心编程》(第2版)得到巩固和提高。
《Servlet与JSP核心编程》由浅入深,全面而深入地介绍了servlet和jsp技术。本书重点介绍核心技术,同时对相关的内容,如web服务器的配置、安装和应用,数据库的安装和配置等都做了详细明了的介绍。本书的例子简练...
《Servlet与JSP核心编程(第2卷 第2版)》
《Servlet与JSP核心编程》由浅入深,全面而深入地介绍了servlet和jsp技术。本书重点介绍核心技术,同时对相关的内容,如web服务器的配置、安装和应用,数据库的安装和配置等都做了详细明了的介绍。 网上下载的都是...
servlet与JSP核心编程,这本书我看了,自己做的目录,是高清非扫描版
第15章 servlet和jsp的集成:模型—视图—控制器构架 15.1 mvc的需求 15.2 用request dispatcher实现mvc 15.3 mvc代码汇总 15.4 目的页面中相对url的解释 15.5 mvc的应用:银行账户余额 15.6 3种数据...