??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美在线视频全部完,亚洲国产成人久久综合一区,国内精品久久久久久久久电影网http://www.aygfsteel.com/todd841026/category/21423.htmlZ所qQ和爱我的h努力zh-cnMon, 17 Dec 2007 16:15:51 GMTMon, 17 Dec 2007 16:15:51 GMT60节省使用httpsessionQ此文引用于Effective Enterprise javaQ?9Q?/title><link>http://www.aygfsteel.com/todd841026/archive/2007/12/17/168150.html</link><dc:creator>C</dc:creator><author>C</author><pubDate>Mon, 17 Dec 2007 02:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/todd841026/archive/2007/12/17/168150.html</guid><wfw:comment>http://www.aygfsteel.com/todd841026/comments/168150.html</wfw:comment><comments>http://www.aygfsteel.com/todd841026/archive/2007/12/17/168150.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/todd841026/comments/commentRss/168150.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/todd841026/services/trackbacks/168150.html</trackback:ping><description><![CDATA[<p>    Zhtml/http的应用中Qؓ了维护代表客L的瞬时状态,servlet容器提供了一U称Z话空间的设施Q被表示为HttpSession接口。这个思想本n是简单而直接的QservletE序员可以将L的可序列化对象置于会话空_而下一ơ,同一个用户对同一个Web应用的Q何部分发求时Qservlet容器确保同L对象会处在HttpSession对象中。这使得servlet开发者可以ؓ在服务器上的Web应用在多个HTTPh之间l护每个客户端的状态信息;</p>     遗憾的是Q这U机制ƈ非完全免费的。首先,在服务器端ؓ每个客户端存储数据将会减该服务器上的可用资源,q意味着服务器的最大负载能力会成比例下降。这个算式很单:在会话空间中保存多的数据,机器能够处理的会话就少。由此推导出Qؓ了ol定的机器能够支持尽可能多的客户端,必须会话的存储量保持在最。实际上Q对于真正具备可扩展性的pȝ而言Q无Z旉应该避免使用会话。如果在服务器端可以不生Q何ؓ每个客户端进行处理的开销Q那么机器的负蝲能力Q在理论上)可以到达无限Q能够支持Q意多q接到它的客L?br /> <img src ="http://www.aygfsteel.com/todd841026/aggbug/168150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/todd841026/" target="_blank">C</a> 2007-12-17 10:04 <a href="http://www.aygfsteel.com/todd841026/archive/2007/12/17/168150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2EEȝ---JNDI技? 我的所有随W属于个人ȝQ有不之处请回复指?/title><link>http://www.aygfsteel.com/todd841026/archive/2007/04/09/JNDI.html</link><dc:creator>C</dc:creator><author>C</author><pubDate>Mon, 09 Apr 2007 00:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/todd841026/archive/2007/04/09/JNDI.html</guid><wfw:comment>http://www.aygfsteel.com/todd841026/comments/109315.html</wfw:comment><comments>http://www.aygfsteel.com/todd841026/archive/2007/04/09/JNDI.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/todd841026/comments/commentRss/109315.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/todd841026/services/trackbacks/109315.html</trackback:ping><description><![CDATA[  <p><span><span>1.<span>       </span></span></span><span>什么是</span><span>JNDI</span><span>Q?/span><span>Java Naming and Directory Interface</span><span>Q?/span></p> <p><span>JNDI</span><span>是用于访问不同命名和目录服务的统一</span><span>API</span><span>接口Q?/span></p> <p><span><span>2.<span>       </span></span></span><span>JNDI</span><span>的架构和原理</span></p> <p><span><span>      1.<span>       </span></span></span><span>架构Q?/span></p> <p><span>         W一层:</span><span>java</span><span>代码Q是讉K</span><span>JNDI</span><span>的代码;</span></p> <p><span>         W二层:</span><span>JNDI API</span><span>Q统一的命名和目录服务接口</span></p> <p><span>         W三层:</span><span>JNDI Naming Manager</span><span>Q?/span><span>JNDI</span><span>理?/span></p> <p><span>         W四层:</span><span>JNDI SPI</span><span>Q用于构?/span><span>JNDI</span><span>实现的框Ӟ能够动态的插入命名和目录服务提供商的品;</span></p> <p><span>         W五层:命名和目录服务提供商的品;</span></p> <p><span>         命名和目录服务提供商的?/span><span>,</span><span>例如Q?/span><span>DNS,LDAP,NIS,NDS……..;</span><span>因ؓq些产品都是不同的提供商提供的品,所以他们的命名和目录服务的标准不一_各个目录服务采用的访问协议也是不一LQ所以,要是直接讉K他们的话Q就要编写不同的</span><span>java</span><span>代码来访问他们;因此Q?/span><span>JNDI SPI</span><span>p决了q个问题Q它能动态的插入q些命名和目录服务,能够其协议专属的目录品集成到pȝ中,使得我们能只需要调用一个统一?/span><span>javaAPI</span><span>p够访问插入的产品了;</span></p> <p><span>         2</span><span>Q原理:</span></p> <p><span>               JNDI</span><span>其实很好理解Q他是一个树状的l构Q它的最是一?/span><span>initialContext</span><span>节点Q然后它的下面就是绑定的一些对象或是一?/span><span>subContext</span><span>Q用</span><span>JNDI</span><span>树就能够查找到树中每一个绑定上的节点上的对象的引用Q?/span></p> <p><span>3.</span><span>怎样q接?/span><span>JNDI</span><span>上?</span> </p> <p><span><span>         </span><span>         </span>Environment environment = new Environment() ;//</span><span>创徏一个环境对?/span></p> <p><span><span>                   </span>environment.setProviderurl(“t3://www.aygfsteel.com”) ;</span></p> <p><span><span>                   </span>environment.setSecurityPrincipal(“todd”) ;//</span><span>认证的用户名</span></p> <p><span><span>                   </span>environment.setSecurityCredentials(“841026”) ;//</span><span>密码</span></p> <p><span><span>                   </span>Context context = environment.getInitialContext() ;</span></p> <p><span><span>         </span>//</span><span>创徏一?/span><span>subContext</span><span>q绑定一个对象:</span></p> <p><span><span>                   </span>Context subContext = context.createSubcontext(“subContext”) ;</span></p> <p><span><span>                   </span>subContext.rebind(“newObject”,object) ;//</span><span>l定的对象必L可序列化?/span></p> <p><span><span>                   </span>subContext.close() ;</span></p> <p><span><span>                   </span>context.close() ;</span></p> <p><span>4.</span><span>如何通过</span><span>JNDI</span><span>查找</span><span>bind</span><span>的对象?</span></p> <p><span><span>         </span>Object object = context.lookup(“User”) ;</span></p> <p><span><span>         </span>//</span><span>?/span><span>user</span><span>H化到原?/span></p> <p><span><span>         </span>User user = (User)javax.rmi.PortableRemoteObject.narrow(object, User.class) ;</span></p> <p><span><span>         </span>context.close() ;</span></p> <img src ="http://www.aygfsteel.com/todd841026/aggbug/109315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/todd841026/" target="_blank">C</a> 2007-04-09 08:16 <a href="http://www.aygfsteel.com/todd841026/archive/2007/04/09/JNDI.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2EEȝ--Servlet技? 我的所有随W属于个人ȝQ有不之处请回复指?/title><link>http://www.aygfsteel.com/todd841026/archive/2007/04/08/Servlet.html</link><dc:creator>C</dc:creator><author>C</author><pubDate>Sun, 08 Apr 2007 05:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/todd841026/archive/2007/04/08/Servlet.html</guid><wfw:comment>http://www.aygfsteel.com/todd841026/comments/109227.html</wfw:comment><comments>http://www.aygfsteel.com/todd841026/archive/2007/04/08/Servlet.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.aygfsteel.com/todd841026/comments/commentRss/109227.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/todd841026/services/trackbacks/109227.html</trackback:ping><description><![CDATA[  <p><span>Servlet</span><span>技术:</span></p> <p><span><span>1.<span>       </span></span></span><span>什么是</span><span>servlet</span><span>Q?/span></p> <p><span>Servlet</span><span>是一?/span><span>java</span><span>c,是一个提供基于协议请求和响应?/span><span>java</span><span>c;</span></p> <p><span><span>2.<span>       </span></span></span><span>它的生命周期</span></p> <p><span><span>      1.<span>       </span></span></span><span>启动服务器时׃实例化ƈ加蝲</span><span>servlet</span><span>实例Q?/span></p> <p><span><span>      2.<span>       </span></span></span><span>q行初始化:自动调用</span><span>init</span><span>Q?/span><span>ServletConfig servletConfig</span><span>Q方法;</span></p> <p><span><span>      3.<span>       </span></span></span><span>Servlet</span><span>qAQ调?/span><span>service</span><span>Q?/span><span>HttpServletRequest request</span><span>Q?/span><span>HttpServletResponse response</span><span>Q方法(?nbsp;  ?/span><span>     service</span><span>   是</span><span>dopost</span><span>Q)?/span><span>doget</span><span>Q)ҎQ,q是客户提交Ӟ自动调用的;</span></p> <p><span><span>      4.<span>       </span></span></span><span>Servlet</span><span>销毁:自动调用调用</span><span>distory</span><span>Q)</span> <span>Q?/span></p> <p><span>   注意Q在实例化ƈ加蝲</span><span>servlet</span><span>后,步骤二和四只调用一ơ,而步骤三Q是在每ơ客L发出h旉调用Q?/span></p> <p><span><span>3.<span>       </span></span></span><span>怎样部v一?/span><span>servlet</span><span>Q?/span></p> <p><span>Servlet</span><span>cL必须?/span><span>web.xml</span><span>中注册才能用的Q例如,我有一?/span><span>MyServlet</span><span>c:</span></p> <p><span>必须?/span><span>web.xml</span><span>中注册:</span></p> <p><span><web-app></span></p> <p><span>//-----------------------Servlet</span><span>声明</span><span>----------------------</span></p> <p align=left><span><span>           </span></span><span><servlet></span></p> <p align=left><span><span>           </span><span>      </span><servlet-name>myServlet</servlet-name></span></p> <p align=left><span><span>           </span><span>      </span><servlet-class>servletPakage.MyServlet</servlet-class></span></p> <p><span><span>      </span></servlet></span></p> <p><span>//------------------------Servlet</span><span>注册</span><span>(</span><span>镜像</span><span>)---------------</span></p> <p align=left><span><span>           </span><servlet-mapping></span></p> <p align=left><span><span>           </span><span>      </span><servlet-name>myServlet</servlet-name></span></p> <p align=left><span><span>           </span><span>      </span><url-pattern>myServletURL</ url-pattern ></span></p> <p><span><span>      </span></servlet-mapping></span></p> <p><span></web-app></span></p> <p><span>q样你在提交时的</span><span>Url</span><span>地址是</span><span>/myServletURL</span><span>了;</span></p> <p><span><span>4.<span>       </span></span></span><span>什么是</span><span>service</span><span>Q?/span><span>HttpServletRequest request</span><span>Q?/span><span>HttpServletResponse response</span><span>Q方法?</span></p> <p><span>其中</span><span>service</span><span>Q?/span><span>HttpServletRequest request</span><span>Q?/span><span>HttpServletResponse response</span><span>Q方法包括两U:</span></p> <p><span><span>      1.<span>       </span></span></span><span>doget</span><span>Q?/span><span>HttpServletRequest request</span><span>Q?/span><span>HttpServletResponse response</span><span>Q方法:</span></p> <p><span>      q种Ҏ被称为显式提交方法,主要原因是它的得到的参数攑֜</span><span>url</span><span>中,可以被看刎ͼ所以称为显C提      交;</span></p> <p><span>      例如Q有个表单:</span></p> <p><span>      <form action<a href="http://www.aygfsteel.com/myServletURL?name=todd">=”/myServletURL?name=todd</a>” method=”get”></span></p> <p><span>      </form></span></p> <p><span>      q种Ҏ?/span><span>request</span><span>获得的参数就是你看到?/span><span>name=todd</span><span>Q?/span></p> <p><span>      例如Q?/span><span>String s=request.getParameter(“name”);</span></p> <p><span><span>            </span></span><span>其结?/span><span>s=”todd”;</span></p> <p><span><span>      2.<span>       </span></span></span><span>dopost</span><span>Q?/span><span>HttpServletRequest request</span><span>Q?/span><span>HttpServletResponse response</span><span>Q方法:</span></p> <p><span>         q种Ҏ被称为隐式提交方法,它的参数不会?/span><span>url</span><span>里得刎ͼ而是在请求数据体得到参数Q?/span></p> <p><span>         例如Q有个表单:</span></p> <p><span><span>            </span><form action=”/myServletURL” method=”post”></span></p> <p><span><span>            </span><span>         </span><input type=”text” name=”name” value=”todd”></span></p> <p><span>         </form></span></p> <p><span>      q种Ҏ?/span><span>request</span><span>获得的参数就是表单体?/span><span>name=todd</span><span>Q?/span></p> <p><span><span>            </span></span><span>例如Q?/span><span>String s=request.getParameter(“name”);</span></p> <p><span><span>            </span></span><span>其结?/span><span>s=”todd”;</span></p> <p><span><span>5.<span>       </span></span></span><span>什么是</span><span>ServletContext?</span></p> <p><span>         ServletContext</span><span>是一个接口,?/span><span>WebApplication</span><span>的视图,它的作用域时</span><span>Application</span><span>Q它能访?/span><span>Application</span><span>中的初始化参数和属性,它不局限域一?/span><span>Servlet</span><span>Q它属于整个</span><span>Application</span><span>Q?/span></p> <p><span>ServletContext</span><span>的初始化参数Q?/span></p> <p><span>?/span><span>web.xml</span><span>中:</span></p> <p><span><web-app></span></p> <p><span><span>    </span><context-param></span></p> <p><span><param-name>myBlog</param-name></span></p> <p><span><param-value>www.aygfsteel.com/todd841026</param-value></span></p> <p><span></context-param></span></p> <p><span></web-app></span></p> <p> <span>q样?/span><span>application</span><span>中Q意一?/span><span>Servlet</span><span>中可以得到这个参敎ͼ</span></p> <p><span>例如Q?/span><span>ServletContext sc = getServletContext ();</span></p> <p><span><span>         </span> String s = sc.getInitParameter(“myBlog”);</span></p> <p><span>那么l果</span><span>s</span><span>是</span><span>”www.aygfsteel.com/todd841026”</span></p> <p><span><span>6.<span>       </span></span></span><span>什么是</span><span>ServletConfig</span><span>Q?/span></p> <p><span>是单独的</span><span>Servlet</span><span>初始化配|;</span></p> <p><span>例如Q在</span><span>web.xml</span><span>?/span></p> <p><span><web-app></span></p> <p align=left><span><span>      </span><span>      </span></span><span><servlet></span></p> <p align=left><span><span>           </span><span>      </span><servlet-name>myServlet</servlet-name></span></p> <p align=left><span><span>           </span><span>      </span><servlet-class>servletPakage.MyServlet</servlet-class></span></p> <p><span><span>      </span></servlet></span></p> <p><span><span>      </span><init-param></span></p> <p><span><span>            </span><param-name>cache</param-name></span></p> <p><span><span>            </span><param-value>off</param-value></span></p> <p><span></init-param></span></p> <p><span></web-app></span></p> <p><span>在这?/span><span>Servlet</span><span>中:</span><span>ServletConfig sc = getServletConfig();</span></p> <p><span><span>                            </span>String s = sc.getInitParameter(“cache”);</span></p> <p><span>那么l果</span><span>s</span><span>是</span><span>”</span><span>off”;</span></p> <p><span><span>7.<span>       </span></span></span><span>Servlet</span><span>怎样处理多线E?/span></p> <p><span>在默认的情况下,单个</span><span>Servlet</span><span>实例是可以处理多个ƈ发请求的Q所以要考虑到多U程的共享同一对象的问题,例如Q?/span></p> <p><span>//</span><span>做个</span><span>Servlet</span><span>中生了多少?/span><span>object</span><span>对象一个变量的例子</span></p> <p><span>Private int count = 0 ;</span></p> <p><span>Public void dopost(HttpServletRequest request,HttpServletResponse response){</span></p> <p><span><span>           </span>Object object = new Object() ;</span></p> <p><span><span>           </span>count++ ;</span></p> <p><span><span>           </span>System.out.println(“count = ” + count) ;</span></p> <p><span>}</span></p> <p><span>当有</span><span>5</span><span>个用h交数据时Q因?/span><span>Servlet</span><span>是处理多U程的,所以可能出玎ͼW四个用LE序已经执行?/span><span>count++</span><span>Q而第五个用户刚执行完</span><span>Object object = new Object() </span><span>Q就会出现数据不一致性,因ؓ当前?/span><span>5</span><span>?/span><span>object</span><span>对象Q但?/span><span>count</span><span>却是</span><span>4</span><span>Q?/span></p> <p><span>解决Ҏ一Q?/span></p> <p><span>Private boolean flag = false </span><span>Q?/span></p> <p><span>Private int count = 0 ;</span></p> <p><span>Public void dopost(HttpServletRequest request,HttpServletResponse response){</span></p> <p><span><span>           </span>synchronized(flag){</span></p> <p><span><span>                    </span>Object object = new Object() ;</span></p> <p><span><span>           </span><span>         </span>count++ ;</span></p> <p><span>}<span>                 </span></span></p> <p><span><span>           </span>System.out.println(“count = ” + count) ;</span></p> <p><span>}</span></p> <p><span>用同步程序块解决多线E的问题Q这样在同一时刻只能有一个访问该E序块了Q?/span></p> <p><span>解决Ҏ二:</span></p> <p><span>Private int count = 0 ;</span></p> <p><span>Public void dopost(HttpServletRequest request,HttpServletResponse response)</span></p> <p><span>Implements SingleThreadModel{</span></p> <p><span><span>           </span>Object object = new Object() ;</span></p> <p><span><span>           </span>count++ ;</span></p> <p><span><span>           </span>System.out.println(“count = ” + count) ;</span></p> <p><span>}</span></p> <p><span>实现</span><span>SingleThreadModel</span><span>接口Q可以解军_U程问题Q?/span></p> <p><span><span>8.<span>       </span></span></span><span>什么是</span><span>servlet</span><span>qo器?</span></p> <p><span>也是一?/span><span>java</span><span>c,只是它实C</span><span>Filter</span><span>q个接口Q?/span></p> <p><span><span>9.<span>       </span></span></span><span>servlet</span><span>qo器的生命周期Q?/span></p> <p><span>初始化:自动调用</span><span>init(FilterConfig config)</span><span>Ҏ</span></p> <p><span>执行Q自动调?/span><span>doFilter()</span><span>ҎQ?/span></p> <p><span>销毁:自动调用</span><span>destory()</span><span>ҎQ?/span></p> <p><span><span>10.<span>   </span></span></span><span>servlet</span><span>qo器有什么用途?</span></p> <p><span>      个h认ؓ目前自己用到的Servlet</span><span>qo器的主要用途:是安全性检?/span></p> <p><span>         当然qo器在</span><span>Servlet</span><span>之前也可以修改请求,要是?/span><span>Servlet</span><span>之后Q也可以修改响应Q?/span> </p> <p><span><span>11.<span>   </span></span></span><span>servlet</span><span>qo器怎样部vQ?/span></p> <p><span>?/span><span>web.xml</span><span>中:</span></p> <p><span><web-app></span></p> <p><span><span>    </span><filter></span></p> <p><span><span>      </span><filter-name>myFilter</filter-name></span></p> <p><span><span>      </span><filter-class>filterPage.MyFilter</filter-class></span></p> <p><span></filter></span></p> <p><span><filter-mapping></span></p> <p><span><span>      </span><filter-name>myFilter</filter-name></span></p> <p><span><span>      </span><url-pattern>/Todd/*</url-pattern></span></p> <p><span></filter-mapping></span></p> <p><span></web-app></span></p> <p><span>q样是说要讉K</span><span>WEB-INF</span><span>下的</span><span>Todd</span><span>包下?/span><span>jsp</span><span>?/span><span>Servlet</span><span>的话Q就必须要先通过</span><span>myFilter</span><span>q个c;</span></p> <img src ="http://www.aygfsteel.com/todd841026/aggbug/109227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/todd841026/" target="_blank">C</a> 2007-04-08 13:31 <a href="http://www.aygfsteel.com/todd841026/archive/2007/04/08/Servlet.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϲ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˶</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˷</a>| <a href="http://" target="_blank">Ű</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ѽ</a>| <a href="http://" target="_blank">ⶫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">«</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>