﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-大道天成-随笔分类-JSP与servlet</title><link>http://www.blogjava.net/rockblue1988/category/51759.html</link><description>好好学习，天天向上</description><language>zh-cn</language><lastBuildDate>Fri, 25 May 2012 00:20:20 GMT</lastBuildDate><pubDate>Fri, 25 May 2012 00:20:20 GMT</pubDate><ttl>60</ttl><item><title>在JSP页面、请求和用户间共享数据（oreilly.JSP设计第二版 第十章 P160）</title><link>http://www.blogjava.net/rockblue1988/archive/2012/05/21/JSP.html</link><dc:creator>Jimi Hendrix</dc:creator><author>Jimi Hendrix</author><pubDate>Sun, 20 May 2012 16:35:00 GMT</pubDate><guid>http://www.blogjava.net/rockblue1988/archive/2012/05/21/JSP.html</guid><wfw:comment>http://www.blogjava.net/rockblue1988/comments/378640.html</wfw:comment><comments>http://www.blogjava.net/rockblue1988/archive/2012/05/21/JSP.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/rockblue1988/comments/commentRss/378640.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rockblue1988/services/trackbacks/378640.html</trackback:ping><description><![CDATA[JSP页面定义了如下几个作用域：<br />页面作用域（page scope）、请求作用域（request scope）、会话作用域（session scope）、应用程序作用域（application scope）<br />页面作用域中的对象仅在当前页面可用；请求作用域中的对象在所有处理同一请求的页面中都可用；会话作用域中的对象用于同一浏览器发出的所有请求；应用程序作用域中的对象被应用程序的所有用户共享。<br />通过设置&lt;jsp:useBean&gt;行为的scope属性，制定bean应该放在哪个作用域中，例如：<br />&lt;jsp:useBean id="test" scope="request" &nbsp;class="com.testBean" /&gt;<br />会话跟踪过程解释：由于HTTP是一种无状态协议，即服务器处理完浏览器的请求后将忘掉所发生的事务，当浏览器再次发出请求时，Web服务器并不知道新的请求与之前的请求有何关系。解决这个问题主要有两种方法：<br />1、服务器在应答中返回与该用户有关的所有信息，并让浏览器将其作为下一个请求的一部分发回去<br />2、在服务器的任何位置保存状态信息，并且发回一个标识符，浏览器在下一请求中返回该标识符，然后借由该标识符定位服务器上的状态信息<br />在这两种情况下，可以用以下三种方式将状态信息发送给浏览器：<br />1、作为cookie&nbsp;&nbsp;&nbsp;&nbsp;<br />2、嵌入HTML表单作为隐藏字段<br />3、进行编码，编入应答主体的URL中，一般作为连接到其它应用程序的链接（也称作URL复写，URL rewriting）<br /><br />在浏览器和服务器间来回发送所有状态信息的效率是极低的，所以大多数现代服务器都将信息保留在服务器上，只在浏览器和服务器间传递标识符，这就是会话跟踪（session tracking），JSP隐藏了cookie会话跟踪的所以细节，并实现了对URL复写的支持，此外，JSP规范允许使用安全套接字协议层（Secure Socket Layer，SSL）内置的会话机制。在会话的生命周期中，保存在会话作用域中的信息可被同一浏览器的所有页面所用。<br />在线购物（P179）：<br />内存使用策略:<br />1、只把那些真正需要被每个会话单独拥有的对象放在会话作用域中<br />2、将会话的有效期设成比默认值更短<br />3、提供一种显示的结束会话的方法。一个好的示例就是注销功能，或者是当某件事务完成时，使会话失效。在servlet和其他自定义代码中，可以使用HttpSession invalidate()方法。<img src ="http://www.blogjava.net/rockblue1988/aggbug/378640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rockblue1988/" target="_blank">Jimi Hendrix</a> 2012-05-21 00:35 <a href="http://www.blogjava.net/rockblue1988/archive/2012/05/21/JSP.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP元素</title><link>http://www.blogjava.net/rockblue1988/archive/2012/05/20/378587.html</link><dc:creator>Jimi Hendrix</dc:creator><author>Jimi Hendrix</author><pubDate>Sat, 19 May 2012 19:47:00 GMT</pubDate><guid>http://www.blogjava.net/rockblue1988/archive/2012/05/20/378587.html</guid><wfw:comment>http://www.blogjava.net/rockblue1988/comments/378587.html</wfw:comment><comments>http://www.blogjava.net/rockblue1988/archive/2012/05/20/378587.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rockblue1988/comments/commentRss/378587.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rockblue1988/services/trackbacks/378587.html</trackback:ping><description><![CDATA[JSP有三种类型的元素：指令元素（directive element）、行为元素（action element）、和脚本元素（script element）。<br />指令元素：<br />&lt;%@ page...%&gt; &nbsp;定义了独立于页面的属性，例如会话跟踪、错误处理页面、对缓存的要求等<br />&lt;%@ include...&gt; &nbsp;在翻译阶段引入文件<br />&lt;%@ taglib...&gt; &nbsp; &nbsp;声明一个在页面中使用的包含自定义行为的标记库<br />标准行为元素：<br />&lt;jsp:usebean&gt; &nbsp;使一个JavaBeans在当前页面可用&nbsp;&nbsp;&nbsp;&nbsp;<br />&lt;jsp:getProperty&gt; &nbsp;从JavaBeans中获得某个属性值，并将其添加到应答中<br />&lt;jsp:setProperty&gt; &nbsp;设置JavaBeans的属性值<br />&lt;jsp:include&gt; &nbsp;在请求处理阶段引入来自一个servlet或页面的应答结果<br />&lt;jsp:forward&gt; &nbsp;将对请求的处理转交给一个servlet或JSP页面<br />&lt;jsp:param&gt; &nbsp;使用&lt;jsp:forward&gt; 或&lt;jsp:include&gt; 时，向这个请求添加参数<br />&lt;jsp:plugin&gt;<br /> 自定义行为元素和标准标记库：JSTL，JSP标准标记库（JSP Standard Tag Library），可以用扩展API开发自定义行为<br />脚本元素：<br />&lt;%...%&gt; &nbsp;小脚本，用于嵌入脚本代码<br />&lt;%=...%&gt; &nbsp;用于嵌入JAVA表达式<br />&lt;%!...%&gt; &nbsp;声明变量和方法<img src ="http://www.blogjava.net/rockblue1988/aggbug/378587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rockblue1988/" target="_blank">Jimi Hendrix</a> 2012-05-20 03:47 <a href="http://www.blogjava.net/rockblue1988/archive/2012/05/20/378587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>http基础</title><link>http://www.blogjava.net/rockblue1988/archive/2012/05/20/http.html</link><dc:creator>Jimi Hendrix</dc:creator><author>Jimi Hendrix</author><pubDate>Sat, 19 May 2012 19:14:00 GMT</pubDate><guid>http://www.blogjava.net/rockblue1988/archive/2012/05/20/http.html</guid><wfw:comment>http://www.blogjava.net/rockblue1988/comments/378586.html</wfw:comment><comments>http://www.blogjava.net/rockblue1988/archive/2012/05/20/http.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rockblue1988/comments/commentRss/378586.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rockblue1988/services/trackbacks/378586.html</trackback:ping><description><![CDATA[http: HyperText Transport Protocol (超文本传输协议） 是一种无状态协议，即服务器发送应答后不会保留关于客户端的任何信息<br />URI:Uniform Resource Identifier (统一资源标示符)&nbsp;<br />URL：Uniform Resource Locator (统一资源定位器) &nbsp; 是URI的特殊化，标准端口号为80&nbsp;<br />Request:<br />请求头信息<br /><table "="" cellpadding="0" cellspacing="0"><tbody role="list" aria-label="请求头信息"  "=""><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Accept</span></td><td role="list" aria-label="Accept"  "=""><code role="listitem" subfocusrow=""  "="">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Accept-Encoding</span></td><td role="list" aria-label="Accept-Encoding"  "=""><code role="listitem" subfocusrow=""  "="">gzip, deflate</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Accept-Language</span></td><td role="list" aria-label="Accept-Language"  "=""><code role="listitem" subfocusrow=""  "="">zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Connection</span></td><td role="list" aria-label="Connection"  "=""><code role="listitem" subfocusrow=""  "="">keep-alive</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Content-Length</span></td><td role="list" aria-label="Content-Length"  "=""><code role="listitem" subfocusrow=""  "="">55</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Content-Type</span></td><td role="list" aria-label="Content-Type"  "=""><code role="listitem" subfocusrow=""  "="">application/x-www-form-urlencoded; charset=UTF-8</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Cookie</span></td><td role="list" aria-label="Cookie"  "=""><code role="listitem" subfocusrow=""  "="">JSESSIONID=6E9A50496EFFEBDB7E0FA60DFE506B74</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Host</span></td><td role="list" aria-label="Host"  "=""><code role="listitem" subfocusrow=""  "="">localhost.:8080</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">Referer</span></td><td role="list" aria-label="Referer"  "=""><code role="listitem" subfocusrow=""  "="">http://localhost.:8080/SWS/login.jsp</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">User-Agent</span></td><td role="list" aria-label="User-Agent"  "=""><code role="listitem" subfocusrow=""  "="">Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0</code></td></tr><tr role="listitem"  "=""><td role="presentation"  "=""><span "="">X-Requested-With</span></td><td role="list" aria-label="X-Requested-With"  "=""><code role="listitem" subfocusrow=""  "="">XMLHttpRequest</code></td></tr></tbody></table><table "="" cellpadding="0" cellspacing="0"><tbody role="list" aria-label="来自缓存的响应头信息"  "=""></tbody></table><table "="" cellpadding="0" cellspacing="0"><tbody role="list" aria-label="Request Headers From Upload Stream"  "=""></tbody></table>Accept:浏览器所能接受的语言和格式方面的信息<br />User-Agent:浏览器类型<br />Host:URL所对应的主机名<br />请求参数：两种传递方式<br />1、通过查询字符串的形式添加在URI后面，查询字符串以&#8220;？&#8221;开始，由&#8220;&amp;&#8221;符号分隔的经过URL编码的（URL-encoded）名称/值对组成<br />2、作为消息主体的一部分发送<br />请求方法：GET和POST，GET用于从服务器上取得资源，而不引起服务器的任何其它行为，POST用于请求服务器执行某个处理过程。两者最明显的区别之一是参数的传递方式，GET请求通常以查询字符串的形式传递参数，而POST通常是把参数作为消息主体的一部分来发送。<br /><br /><br />Response:<br />响应头信息<br /><span "="">Content-Type&nbsp;</span><code role="listitem" subfocusrow=""  "="">text/html;charset=utf-8 -------应答数据类型<br /></code><span "="">Date</span><code role="listitem" subfocusrow=""  "="">Sat, 19 May 2012 18:48:50 GMT<br /></code><span "="">Server&nbsp;</span><code role="listitem" subfocusrow=""  "="">Apache-Coyote/1.1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;--------服务器信息<br /></code><span "="">Transfer-Encoding&nbsp;</span><code role="listitem" subfocusrow=""  "="">chunked</code><img src ="http://www.blogjava.net/rockblue1988/aggbug/378586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rockblue1988/" target="_blank">Jimi Hendrix</a> 2012-05-20 03:14 <a href="http://www.blogjava.net/rockblue1988/archive/2012/05/20/http.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>