out.print(response.encodeURL(“SessionExample?
database=foo&datavalue=bar”));
out.println(“\”>URLencoded”);
3.SingleThreadModel
默认的,每一个servletdefinitioninacontainer只有一个servletclass的实例。
只有实现了SingleThreadModel,container才会让servlet有多个实例。
Servletspecification上建议,不要使用synchronized,而使用SingleThreadModel。
SingleThreadModel(没有方法)
保证servlet在同一时刻只处理一个客户的请求。
SingleThreadModel是耗费资源的,特别是当有大量的请求发送给Servlet时,SingleThreadModel的作用是使包容器以同步时钟的方式调用service方法。
这等同于在servlet的service()方法种使用synchronized.
SingleThreadModel一般使用在需要响应一个heavyrequest的时候,比如是一个需要和数据库打交道的连接。
2.在重载Servlet地init()方法后,一定要记得调用super.init();
3.theclient通过发送一个blankline表示它已经结束request
而theserver通过关闭thesocket来表示response已结束了。
4.一个HttpServlet可以送三种东西给Client
1)asinglestatuscode
2)anynumberofhttpheaders
3)aresponsebody
5.Servlet之间信息共享的一个最简单的方法就是
System.getProperties().put(“key”,”value”);
6.Post和Get
Post:
将form内各字段名称和内容放置在htmlheader内传送给server
Get:
?
之后的查询字符串要使用URLEncode,经过URLEncode后,这个字符串不再带有空格,以后将在server上恢复所带有的空格。
Get是Web上最经常使用的一种请求方法,每个超链接都使用这种方法。
7.Web.xml就是WebApplicatin的deploymentdescriptor
作用有:
组织各类元素
设置initparam
设置安全性
8.RequestDispatcher用来把接收到的requestforwardprocessing到另一个servlet
要在一个response里包含另一个servlet的output时,也要用到RequestDispatcher.
9.Servlet和Jsp在同一个JVM中,可以通过ServeltContext的
setAttribute()
getAttribute()
removeAttribute()
来共享对象
10.利用request.getParameter()得到的String存在字符集问题。
可以用strTitle=request.getParameter(“title”);
strTitle=newString(strTitle.getBytes(“8859-1”),”gb2312”);
如果你希望得到更大得兼容性
Stringencoding=response.getCharacterEncoding();
//确定Applicationserver用什么编码来读取输入的。
strTitle=newString(strTitle.getBytes(encoding),”gb2312”);
XML
1.XML基础知识
1.一个xml文档可以分成两个基本部分:
首部(header)
内容(content)
2.xml名字空间规范中指定:
xml文档中的每一个元素都处在一个名字空间中;如果没有指定的名字空间,缺省的名字空间就是和该元素相关联的名字空间。
3.Adocumentthatiswell-formedobeysalloftherulesofXMLdocuments(nestedtags,etc.)
"Ifawell-formeddocumentusesaDocumentTypeDefinition(moreontheseinaminute),anditfollowsalltherulesoftheDTD,thenitisalsoavaliddocument
4.Atagisthetextbetweenthe
"Anelementisthestarttag,theendtag,andeverything(includingotherelements)inbetween
5.标签(tags)实际上包含了“元素”(elements)和“属性”(attributes)两部分。
用元素(elements)来描述有规律的数据。
用属性(attributes)来描述系统数据。
如果你有一些数据要提供给某个应用程序,该数据就可能要用到一个元素。
如果该数据用于分类,或者用于告知应用程序如何处理某部分数据,或者