Servlet与JSP核心编程读书笔记.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 servlet 基础 servlet 的生命周期。 init方法:首次创建servlet时,它的init方法会得到调用,因此,init是放置一次性设置代码的地方。 可以使用此方法进行常规初始化,用来创建或载入在Servlet生命期用到的一些数据,或者执行某些一次性的计算。 由初始化参数控制的初始化。 要理解init参数的动机,您需要了解什么样的人可能希望对Servlet的行为方式进行定制。其中包括:开发人员、最终用户、部署人员。 开发人员通过改变代码改变Servlet的行为。 最终用户通过向HTML表单提供数据改变Servlet的行为。 部署人员为了能够在不修改Servlet的源代码的情况下,就可以将Servlet在机器间移动,以及改变特定的参数(例如,数据库的地址,连接共享大小,或者数据文件的位置)。init参数的目的就是为了提供这项能力。 service方法:在init之后,针对每个用户请求,都会创建一个线程,该线程调用前面创建的实例的service方法。service方法检查HTTP请求的类型(GET,POST,PUT,DELETE等)并相应地调用doGet,doPost,doPut,doDelete等方法。 doGet,doPost和doXxx方法 GET请求起因于正常的URL请求,或没有指定METHOD的HTML表单。POST请求起因于特别将POST列为METHOD的HTML表单。你可以覆盖doGet和/或doPost方法来处理。 DELETE 请求由doDelete处理,PUT 由doPut方法处理,OPTIONS 由doOptions处理,TRACE 由doTrace方法处理。OPTIONS和TRACE的请求在Servlet中是自动支持的。 doHead以处理HEAD请求(HEAD请求规定,服务器应该只返回正常的HTTP头,不含与之相关联的文档)。为了能够更快地生成对HEAD请求的响应(例如来自定制客户的请求,只需要HTTP报头,不需构建实际的文档输出),会实现doHead方法。 SingleThreadModel接口 通过让Servlet实现这个接口,系统会保证不会有多个请求线程同时访问该servlet的单个实例。大多数和情况下,系统将所有的请求排队,一次只将一个请求转给单个servlet实例。 此接口已经过时,如果要同步最好使用synchronized关键字。 第4章 客户请求的处理:表单数据 表单数据的读取。 单个值的读取:getParameter(表单项名称),表单项名称大小写敏感。如果表单项存在但没有相应的值,返回空的String;如果没有这样的表单项,则返回null。 多个值的读取:getParameterValues(表单项名称),如果同一表单项名称在表单数据中多次出现,则应该调用getParameterValues(返回字符串的数组)。对于不存在的表单项名称,getParameterValues的返回值是null,如果参数只有单一的值,则返回只有一个元素的数组。 如果是HTML表单的设计者,最好保证每个文本字段、复选框或其他用户界面元素都有一个唯一的名称。 参数名的查找:getParameterNames和getParameterMap getParameterNames以Enumeration的形式返回表单项名称列表,其中的的每一项都可以转换成String,并可以用在getParameter或getParameterValues调用中。如果当前请求中没有表单名称返回空的Enumeration(不是null)。 Enumeration只是一个接口,它保证实际的类实现了hasMoreElements和nextElement方法:它并不保证具体的实现会采用某种特定的底层数据结构。 getParameterNames的替代方案是getParameterMap。这个方法返回一个Map:表单名称(字符串)是表的键,表单项的值是表的值。 读取上载的文件和原始数据:getReader或getInputStream 当数据不是HTML表单提交,而是来自于定制的客户程序时,可能需要自己读取和分析这些数据。最常见的客户程序是applet。 当数据来自于上载的文件时,可能需要自己读取数据。servlet的API没有定义任何机制来读取<input type=”file”>元素的文件。 多字符集输入的读取:setCharacterEncoding(字符集名称) request.getParameter使用服务器的当前字符集解释输入。要改变这种默认行为,需要使用ServletRequest的setCharacterEncoding方法。setCharacterEncoding必须在访问任何请求参数之

文档评论(0)

linlin921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档