﻿<?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-想飞就别怕摔-随笔分类-S2SH</title><link>http://www.blogjava.net/hhhaaawwwkkk/category/34836.html</link><description>大爷的并TM骂人</description><language>zh-cn</language><lastBuildDate>Wed, 14 Dec 2011 06:08:12 GMT</lastBuildDate><pubDate>Wed, 14 Dec 2011 06:08:12 GMT</pubDate><ttl>60</ttl><item><title>spring-security学习笔记--配置文件</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 13 Dec 2011 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/366222.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/366222.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/366222.html</trackback:ping><description><![CDATA[记录一下配置文件中的配置介绍<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">beans&nbsp;</span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;xmlns:sec</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/security"</span><span style="color: #FF0000; ">&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&nbsp;http://www.springframework.org/schema/security&nbsp;http://www.springframework.org/schema/security/spring-security-2.0.4.xsd"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;default-lazy-init</span><span style="color: #0000FF; ">="true"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auto-config&nbsp;=&nbsp;true&nbsp;则使用from-login.&nbsp;如果不使用该属性&nbsp;则默认为http-basic(没有session).&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lowercase-comparisons：表示URL比较前先转为小写。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path-type：表示使用Apache&nbsp;Ant的匹配模式。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-denied-page：访问拒绝时转向的页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-decision-manager-ref：指定了自定义的访问策略管理器。当系统角色名的前缀不是默认的ROLE_时，需要自定义访问策略管理器。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:http&nbsp;</span><span style="color: #FF0000; ">auto-config</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;servlet-api-provision</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;lowercase-comparisons</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-denied-page</span><span style="color: #0000FF; ">="/html/error_page_access_denied.html"</span><span style="color: #FF0000; ">&nbsp;path-type</span><span style="color: #0000FF; ">="ant"</span><span style="color: #FF0000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-decision-manager-ref</span><span style="color: #0000FF; ">="accessDecisionManager"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login-page：指定登录页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;login-processing-url：指定了客户在登录页面中按下&nbsp;Sign&nbsp;In&nbsp;按钮时要访问的&nbsp;URL。与登录页面form的action一致。其默认值为：/j_spring_security_check。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;authentication-failure-url：指定了身份验证失败时跳转到的页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default-target-url：指定了成功进行身份验证和授权后默认呈现给用户的页面。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;always-use-default-target：指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:form-login&nbsp;</span><span style="color: #FF0000; ">login-page</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;login-processing-url</span><span style="color: #0000FF; ">="/admin/login"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default-target-url</span><span style="color: #0000FF; ">="/admin/page!main.action"</span><span style="color: #FF0000; ">&nbsp;authentication-failure-url</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;always-use-default-target</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;"记住我"功能，采用持久化策略（将用户的登录信息存放在数据库表中）&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:remember-me&nbsp;</span><span style="color: #FF0000; ">key</span><span style="color: #0000FF; ">="e37f8888-0ooo-22dd-bd0b-9900211c9a66"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout-url：指定了用于响应退出系统请求的URL。其默认值为：/j_spring_security_logout。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout-success-url：退出系统后转向的URL。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;invalidate-session：指定在退出系统时是否要销毁Session。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:logout&nbsp;</span><span style="color: #FF0000; ">invalidate-session</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;logout-success-url</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout-url</span><span style="color: #0000FF; ">="/admin/logout"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-sessions:允许用户帐号登录的次数。范例限制用户只能登录一次。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exception-if-maximum-exceeded:&nbsp;默认为false，此值表示：用户第二次登录时，前一次的登录信息都被清空。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当exception-if-maximum-exceeded="true"时系统会拒绝第二次登录。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:concurrent-session-control&nbsp;</span><span style="color: #FF0000; ">max-sessions</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; ">&nbsp;exception-if-maximum-exceeded</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;后台登录&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;intercept-url:拦截器,可以设定哪些路径需要哪些权限来访问.&nbsp;filters=none&nbsp;不使用过滤,也可以理解为忽略&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/admin/page!login.action"</span><span style="color: #FF0000; ">&nbsp;filters</span><span style="color: #0000FF; ">="none"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;商品管理&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/admin/goods!**"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_GOODS"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;基础管理权限&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/admin/**"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_BASE"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面是对Struts2的Action请求时的配置。注意在前面加/，否则不会被拦截验证。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表示具有访问/unitsManager资源的用户必须具有ROLE_PLATFORMADMIN的权限。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当用户登录时,将用户的所有权限从数据库中提取出来，形成列表。&nbsp;当用户访问该资源时，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将登录用户的权限列表提出来跟下面配置的权限进行比对，若有，则允许访问，若没有，<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;则给出AccessDeniedException。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/unitsManager"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/usersManager"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/horizontalQuery"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:intercept-url&nbsp;</span><span style="color: #FF0000; ">pattern</span><span style="color: #0000FF; ">="/verticalQuery"</span><span style="color: #FF0000; ">&nbsp;access</span><span style="color: #0000FF; ">="ROLE_PLATFORMADMIN"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; ">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">sec:http</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:authentication-provider&nbsp;</span><span style="color: #FF0000; ">user-service-ref</span><span style="color: #0000FF; ">="adminDetailsServiceImpl"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">sec:password-encoder&nbsp;</span><span style="color: #FF0000; ">hash</span><span style="color: #0000FF; ">="md5"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">sec:authentication-provider</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000FF; ">&gt;</span></div><img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/366222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2011-12-13 13:07 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2011/12/13/366222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用annotation来配置spring2.5+hibernate3.2+struts2 (转)</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/10/22/299429.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Thu, 22 Oct 2009 13:58:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/10/22/299429.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/299429.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/10/22/299429.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/299429.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/299429.html</trackback:ping><description><![CDATA[<a href="http://pipe.javaeye.com/blog/290644">此文章转自：http://pipe.javaeye.com/blog/290644</a><br />
在这3种框架搭配使用的时候，我们往往需要写很多xml配置文件来配置各个框架的依赖关系。大的项目中，xml配置文件的过多，过于繁琐，导致查找起来会很不方便。 <br />
在这种情况下，我们需要简化我们的配置文件，同时结合部分xml来进行配置,这时候我们想到了annotation，这个近几年炒得很火的玩意。annotation和xml各自的好处和弊端我就不多说了，看代码吧。 <br />
开发环境要求:<span style="color: red">jdk6.0以上</span>。tomcat5.5以上(也许tomcat5.0也行 不过没试过) <br />
先从hibernate入手吧： <br />
按照以往的写法，我们需要有.hbm文件来完成po映射。现在我们通过annotation省去了这部分工作。 <br />
具体代码如下：这是一个po类<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.persistence.Column;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.persistence.Entity;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.persistence.GeneratedValue;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.persistence.Id;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.persistence.Table;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">@Entity&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">@Table(name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">userlog</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;UserLog&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;@Id&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;@GeneratedValue&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Long&nbsp;id;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;@Column(name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">loginName</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;loginName;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />.下面是setter</span><span style="color: #000000">/</span><span style="color: #000000">getter方法。&nbsp;&nbsp;<br />
</span><span style="color: #008080">18</span>&nbsp;</div>
<br />
我们没在spring配置文件中配置hibernate连接信息，还是采用传统的hibernate.cfg.xml，当然也可以在spring中配置。代码如下：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;hibernate-configuration&nbsp;PUBLIC&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #ff00ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"-//Hibernate/Hibernate&nbsp;Configuration&nbsp;DTD&nbsp;3.0//EN"&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #ff00ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">hibernate-configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">session-factory</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="connection.datasource"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">java:/comp/env/jdbc/ExampleDB</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dialect"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.hibernate.dialect.MySQL5Dialect</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;&nbsp;&lt;property&nbsp;name="hbm2ddl.auto"&gt;create&lt;/property&gt;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="show_sql"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">true</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">mapping&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="com.nuctech.po.UserLog"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">session-factory</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">hibernate-configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;</span></div>
<br />
通过mapping class 我们就完成了po映射。 <br />
<br />
OK!我们再看dao层: <br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">@Component&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestDao{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;@Resource&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;SessionFactory&nbsp;sessionFactory;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;SessionFactory&nbsp;getSessionFactory()&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sessionFactory;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setSessionFactory(SessionFactory&nbsp;sf)&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.sessionFactory&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sf;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Session&nbsp;getSession()&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sessionFactory.getCurrentSession();&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;save(Object&nbsp;obj){&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;getSession().save(obj);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">}&nbsp;&nbsp;<br />
</span><span style="color: #008080">20</span>&nbsp;</div>
<br />
在这里,我们的dao采用了@Component 表示它是一个组件，在别的类中将会去调用。 <br />
@Resource 引用SessionFactory 的bean. <br />
关于annotation 可以参考Spring-Reference_zh_CN.chm <br />
<br />
再来看我们的Action: <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">@Component(</span><span style="color: #000000">"</span><span style="color: #000000">TestAction</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TestAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ActionSupport&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;@Resource&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;TestDao&nbsp;dao;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">这里引用上面的Component&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;UserLog&nbsp;log;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />setter</span><span style="color: #000000">/</span><span style="color: #000000">getter方法&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其他的写法都一样了。&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">}&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;</div>
<br />
再看我们的struts配置文件 <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;struts&nbsp;PUBLIC&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #ff00ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN"&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #ff00ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">struts</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">include&nbsp;</span><span style="color: #ff0000">file</span><span style="color: #0000ff">="struts-default.xml"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">constant&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="struts.objectFactory"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="spring"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">constant&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="struts.devMode"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">package&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="com.nuctech.action"</span><span style="color: #ff0000">&nbsp;extends</span><span style="color: #0000ff">="struts-default"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="queryUserLogByPage"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="TestAction"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="queryUserLogByPage"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />省略<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />.&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">package</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">struts</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;</div>
<br />
注意这个action名字与@Component("TestAction")一致。 <br />
在没有annotation的情况下，我们在spring的配置文件中需要有很多的bean注入。现在都已经在类中注入了 那么我们现在来看spring配置文件:<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">beans&nbsp;</span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:context</span><span style="color: #0000ff">="http://www.springframework.org/schema/context"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:tx</span><span style="color: #0000ff">="http://www.springframework.org/schema/tx"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:jee</span><span style="color: #0000ff">="http://www.springframework.org/schema/jee"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff">="&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context&nbsp;http://www.springframework.org/schema/context/spring-context-2.5.xsd&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/jee&nbsp;http://www.springframework.org/schema/jee/spring-jee-2.5.xsd&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #0000ff">&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/tx&nbsp;http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">context:annotation-config&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="configLocation"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="classpath:/hibernate.cfg.xml"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">21</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="org.springframework.orm.hibernate3.HibernateTransactionManager"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">context:component-scan&nbsp;</span><span style="color: #ff0000">base-package</span><span style="color: #0000ff">="com.xxxx"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:annotation-driven</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">27</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span></div>
<br />
我们只在这个配置文件中配置了sessionFactory.以前需要配置的bean不见了。 <br />
另外附上我们的jndi配置文件，在WebContent(WebRoot)下面的META-INF文件夹下面的context.xml。<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">Context&nbsp;</span><span style="color: #ff0000">antiResourceLocking</span><span style="color: #0000ff">="false"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;以下段配置session在tomcat重启时的持久化策略，saveOnRestart为false时不进行持久化，方便调试时使用&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Manager&nbsp;</span><span style="color: #ff0000">className</span><span style="color: #0000ff">="org.apache.catalina.session.PersistentManager"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;saveOnRestart</span><span style="color: #0000ff">="false"</span><span style="color: #ff0000">&nbsp;maxActiveSessions</span><span style="color: #0000ff">="-1"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minIdleSwap</span><span style="color: #0000ff">="-1"</span><span style="color: #ff0000">&nbsp;maxIdleSwap</span><span style="color: #0000ff">="-1"</span><span style="color: #ff0000">&nbsp;maxIdleBackup</span><span style="color: #0000ff">="-1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Store&nbsp;</span><span style="color: #ff0000">className</span><span style="color: #0000ff">="org.apache.catalina.session.FileStore"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;directory</span><span style="color: #0000ff">="mydir"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Manager</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;MySQL配置</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Resource&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/ExampleDB"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="javax.sql.DataSource"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driverClassName</span><span style="color: #0000ff">="com.mysql.jdbc.Driver"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span><span style="color: #0000ff">="jdbc:mysql://localhost:3306/book?useUnicode=true&amp;amp;characterEncoding=utf-8"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username</span><span style="color: #0000ff">="root"</span><span style="color: #ff0000">&nbsp;password</span><span style="color: #0000ff">="123"</span><span style="color: #ff0000">&nbsp;validationQuery</span><span style="color: #0000ff">="select&nbsp;1"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxIdle</span><span style="color: #0000ff">="4"</span><span style="color: #ff0000">&nbsp;maxWait</span><span style="color: #0000ff">="5000"</span><span style="color: #ff0000">&nbsp;maxActive</span><span style="color: #0000ff">="8"</span><span style="color: #ff0000">&nbsp;removeAbandoned</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;removeAbandonedTimeout</span><span style="color: #0000ff">="120"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Resource</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">20</span>&nbsp;</div>
<br />
注意这个jndi名字与hibernate.cfg.xml中一致。 <br />
<br />
先就这样吧。
<img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/299429.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2009-10-22 21:58 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2009/10/22/299429.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML语言剖析-frameset(转)</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/05/293977.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Sat, 05 Sep 2009 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/05/293977.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/293977.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/05/293977.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/293977.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/293977.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="word-spacing: 0px; font: 16px Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; line-height: 18px; font-family: Arial; text-align: left">
<table cellspacing="0" cellpadding="5" width="100%" border="0">
    <tbody>
        <tr valign="top">
            <td class="article" style="font-size: 1em"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; &lt;FRAME&gt;<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;NOFRAMES&gt;<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;IFRAME&gt;</span></td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em">
            <div><span style="color: rgb(202,0,202)">■ 框架概念 ：</span></div>
            </td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em"><span>所谓框架便是网页画面分成几个框窗，同时取得多个 URL。只　要 &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; &lt;FRAME&gt; 即可，而所有框架标记　要放在一个总起的<span class="Apple-converted-space">&nbsp;</span><span class="hilite1" style="background-color: rgb(255,255,0)">html</span><span class="Apple-converted-space">&nbsp;</span>档，这个档案只记录了该框架 如何划分，不会显示任何资料，所以不必放入 &lt;BODY&gt; 标记，浏览这框架必须读取这档 案而不是其它框窗的档案。&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; 是用以划分框窗，每一框窗由一个 &lt;FRAME&gt; 标 记所标示，&lt;FRAME&gt;必须在 &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; 范围中使用。如下例：</span>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>&lt;<span style="color: rgb(255,128,192)"><span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span></span><span class="Apple-converted-space">&nbsp;</span>cols="50%,*"&gt;</span></p>
            <dd><span>&lt;<span style="color: rgb(0,88,176)">frame</span><span class="Apple-converted-space">&nbsp;</span>name="hello" src="up2u.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
            <dd><span>&lt;<span style="color: rgb(0,88,176)">frame</span><span class="Apple-converted-space">&nbsp;</span>name="hi" src="me2.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;<span style="color: rgb(255,128,192)">/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span></span>&gt;</span>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>此例中 &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; 把画面分成左右两相等部分，左便是显示 up2u.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>，右边则会显示 me2.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span><span class="Apple-converted-space">&nbsp;</span>这档案，&lt;FRAME&gt; 标记所标示的框窗永远是按由上而下、由左至右的次序。</span></p>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>本节与 Composer 教室的【运用框架】大部分相同，只是本节增加了内容及较为详细，正 如其它篇章一样并不会提及网页制作工具，若馈下学会了<span class="Apple-converted-space">&nbsp;</span><span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>相信你亦不会选用 Composer ， FrontPage 一类的工具了。</span></p>
            </dd></td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em">
            <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em">
                        <div><span style="color: rgb(202,0,202)">■ &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; &lt;FRAME&gt; ：</span></div>
                        </td>
                        <td style="font-size: 1em" align="right">
                        <div>▲Top</div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; 称框架标记，用以宣告<span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span>文件为框架模式，并设定视窗如何分割。<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;FRAME&gt; 则只是设定某一个框窗内的参数属性。</span>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; 参数设定：<span class="Apple-converted-space">&nbsp;</span><br />
            例子：&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">rows</span>="90,*"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">frameborder</span>="0"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">border</span>=0<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">framespacing</span>="2"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">bordercolor</span>="#008000"&gt;</span></p>
            <ul style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1.5em; padding-top: 0px">
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">COLS="<span style="color: rgb(255,0,128)">90,*</span>"</span><span class="Apple-converted-space">&nbsp;</span><br />
                垂直切割画面(如分左右两个画面)，接受<span style="color: rgb(255,0,128)">整数值</span>、<span style="color: rgb(255,0,128)">百分数</span>，<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,128)">*</span><span class="Apple-converted-space">&nbsp;</span>则代表占用馀下空 间。数值的个数代表分成的视窗数目且以逗号分隔。例如 COLS="30,*,50%" 可以 切成三个视窗，第一个视窗是 30 pixels 的宽度，为一绝对分割，第二个视窗是当 分配完第一及第三个视窗後剩下的空间，第三个视窗则占整个画面的 50% 宽度 为 一相对分割。<span style="color: rgb(251,179,57)">您可自己调整数字</span>。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">ROWS="<span style="color: rgb(255,0,128)">120,*</span>"</span><span class="Apple-converted-space">&nbsp;</span><br />
                就是横向切割，将画面上下分开，数值设定同上。唯 COLS 与 ROWS 两参数尽量 不要同在一个 &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">FRAMESET</span>&gt; 标记中，因 Netacape 偶然不能显示这类形的框架，尽 采用多重分割。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">frameborder="<span style="color: rgb(255,0,128)">0</span>"</span><span class="Apple-converted-space">&nbsp;</span><br />
                设定框架的边框，其值只有 0 和 1 ， 0 表示不要边框， 1 表示要显示边框。（避 免使用 yes 或 no ）</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">border="<span style="color: rgb(255,0,128)">0</span>"</span><span class="Apple-converted-space">&nbsp;</span><br />
                设定框架的边框厚度，以 pixels 为单位。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">bordercolor="<span style="color: rgb(255,0,128)">#008000</span>"</span><span class="Apple-converted-space">&nbsp;</span><br />
                设定框架的边框颜色。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">framespacing="<span style="color: rgb(255,0,128)">5</span>"</span><span class="Apple-converted-space">&nbsp;</span><br />
                表示框架与框架间的保留空白的距离。</span></li>
            </ul>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>&lt;FRAME&gt; 参数设定：<span class="Apple-converted-space">&nbsp;</span><br />
            例子：&lt;frame<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">name</span>="top"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">src</span>="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">marginwidth</span>="5"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">marginheight</span>="5"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">scrolling</span>="Auto"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">frameborder</span>="0"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">noresize</span><span style="color: rgb(255,0,0)">framespacing</span>="6"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">bordercolor</span>="#0000FF"&gt;</span></p>
            <ul style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1.5em; padding-top: 0px">
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">SRC="<span style="color: rgb(255,0,128)">a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span></span>"</span><br />
                设定此框窗中要显示的网页档案名称，每个框窗一定要对应著一个网页档案。你可 使用绝对路径或相对路径，有关此两者详见於【连结进阶】。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">NAME="<span style="color: rgb(255,0,128)">top</span>"</span><br />
                设定这个框窗的名称，这样才能指定框架来作连结，必须但任意命名。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">frameborder=<span style="color: rgb(255,0,128)">0</span></span><br />
                设定框架的边框，其值只有 0 和 1 ， 0 表示不要边框， 1 表示要显示边框。（避 免使用 yes 或 no ）</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">framespacing="<span style="color: rgb(255,0,128)">6</span>"</span><br />
                表示框架与框架间的保留空白的距离。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">bordercolor="<span style="color: rgb(255,0,128)">#008000</span>"</span><br />
                设定框架的边框颜色。颜色值请参考【<span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>剖析】。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">scrolling="<span style="color: rgb(255,0,128)">Auto</span>"</span><br />
                设定是否要显示卷轴，YES 表示要显示卷轴，NO 表示无论如何都不要显示， AUTO是视情况显示。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">noresize</span><br />
                设定不让使用者可以改变这个框框的大小，亦没有设定此参数，使用者可以很随 意地拉动框架，改变其大小。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">marginhight=<span style="color: rgb(255,0,128)">5</span></span><br />
                表示框架高度部份边缘所保留的空间。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(27,7,163)">marginwidth=<span style="color: rgb(255,0,128)">5</span></span><br />
                表示框架宽度部份边缘所保留的空间。</span></li>
            </ul>
            <span>以下是一些例子：（与 Composer 教室的【运用框架】相同）</span>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"></p>
            <table cellspacing="2" cellpadding="2" width="100%" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em" width="110"><span>例子</span></td>
                        <td style="font-size: 1em"><span><span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>Code</span></td>
                    </tr>
                    <tr>
                        <td style="font-size: 1em">
                        <table cellspacing="0" cellpadding="2" width="100" border="1">
                            <tbody>
                                <tr>
                                    <td style="font-size: 1em">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td style="font-size: 1em" width="20" height="60">&nbsp;</td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                        <td style="font-size: 1em" width="366"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>rows="80,*"&gt;</span>
                        <dd><span>&lt;frame name="top" src="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
                        <dd><span>&lt;frame name="bottom" src="b.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dd></td>
                    </tr>
                </tbody>
            </table>
            <table cellspacing="2" cellpadding="2" width="100%" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em" width="110"><span>例子</span></td>
                        <td style="font-size: 1em"><span><span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>Code</span></td>
                    </tr>
                    <tr>
                        <td style="font-size: 1em">
                        <table cellspacing="0" cellpadding="2" width="100" border="1">
                            <tbody>
                                <tr>
                                    <td style="font-size: 1em">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td style="font-size: 1em" width="20" height="40">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td style="font-size: 1em">&nbsp;</td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                        <td style="font-size: 1em" width="366"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>rows="80,*,80"&gt;</span>
                        <dd><span>&lt;frame name="top" src="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
                        <dd><span>&lt;frame name="middle" src="b.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
                        <dd><span>&lt;frame name="bottom" src="c.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dd></td>
                    </tr>
                </tbody>
            </table>
            <table cellspacing="2" cellpadding="2" width="100%" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em" width="110"><span>例子</span></td>
                        <td style="font-size: 1em"><span><span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>Code</span></td>
                    </tr>
                    <tr>
                        <td style="font-size: 1em">
                        <table cellspacing="0" cellpadding="2" width="100" border="1">
                            <tbody>
                                <tr>
                                    <td style="font-size: 1em">&nbsp;</td>
                                    <td style="font-size: 1em" width="80" rowspan="2">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td style="font-size: 1em" width="20" height="60">&nbsp;</td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                        <td style="font-size: 1em" width="366"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>cols="150,*"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>rows="80,*"&gt;</span>
                        <dd><span>&lt;frame name="upper_left" src="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
                        <dd><span>&lt;frame name="lower_left" src="b.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dd>
                        <dd><span>&lt;frame name="right" src="c.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dd></td>
                    </tr>
                </tbody>
            </table>
            <table cellspacing="2" cellpadding="2" width="100%" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em" width="110"><span>例子</span></td>
                        <td style="font-size: 1em"><span><span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>Code</span></td>
                    </tr>
                    <tr>
                        <td style="font-size: 1em">
                        <table cellspacing="0" cellpadding="2" width="100" border="1">
                            <tbody>
                                <tr>
                                    <td style="font-size: 1em" colspan="2">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td style="font-size: 1em" width="20" height="60">&nbsp;</td>
                                    <td style="font-size: 1em" width="80">&nbsp;</td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                        <td style="font-size: 1em" width="366"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>rows="80,*"&gt;</span>
                        <dd><span>&lt;frame name="top" src="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>cols="150,*"&gt;</span></dd>
                        <dd><span>&lt;frame name="lower_left" src="b.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
                        <dd><span>&lt;frame name="lower_right" src="c.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dd></td>
                    </tr>
                </tbody>
            </table>
            <table cellspacing="2" cellpadding="2" width="100%" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em" width="110"><span>例子</span></td>
                        <td style="font-size: 1em"><span><span class="hilite1" style="background-color: rgb(255,255,0)">HTML</span><span class="Apple-converted-space">&nbsp;</span>Code</span></td>
                    </tr>
                    <tr>
                        <td style="font-size: 1em">
                        <table cellspacing="0" cellpadding="2" width="100" border="1">
                            <tbody>
                                <tr>
                                    <td style="font-size: 1em" width="20" rowspan="2">&nbsp;</td>
                                    <td style="font-size: 1em" width="80">&nbsp;</td>
                                </tr>
                                <tr>
                                    <td style="font-size: 1em" height="60">&nbsp;</td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                        <td style="font-size: 1em" width="366"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>cols="150,*"&gt;</span>
                        <dd><span>&lt;frame name="left" src="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>rows="80,*"&gt;</span></dd>
                        <dd><span>&lt;frame name="upper_right" src="b.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
                        <dd><span>&lt;frame name="lower_right" src="c.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;<span class="Apple-converted-space">&nbsp;</span><br />
                        &lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dd></td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em">
            <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em">
                        <div><span style="color: rgb(202,0,202)">■ &lt;NOFRAMES&gt; ：</span></div>
                        </td>
                        <td style="font-size: 1em" align="right">
                        <div>▲Top</div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em"><span>当别人使用的浏览器太旧，不支援框架这个功能时，他看到的将会是一片空白。为了避免 这种情况，可使用<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">&lt;NOFRAMES&gt;</span><span class="Apple-converted-space">&nbsp;</span>这个标记，当使用者的浏览器看不到框架时，他就会看 到<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">&lt;NOFRAMES&gt;</span><span class="Apple-converted-space">&nbsp;</span>与<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">&lt;/NOFRAMES&gt;</span><span class="Apple-converted-space">&nbsp;</span>之间的内容，而不是一片空白。这些内容可以是提醒 浏览转用新的浏览器的字句，甚至是一个没有框架的网页或能自动切换至没有框架的版本 亦可。</span>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>应用方法：<span class="Apple-converted-space">&nbsp;</span><br />
            在&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt; 标记范围加入 &lt;/NOFRAMES&gt; 标记，以下是一个例子：</span></p>
            <dl style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1.5em; line-height: 1.4em; padding-top: 0px">
            <dt style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0.25em 0px; padding-top: 0px"><span>&lt;<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span><span class="Apple-converted-space">&nbsp;</span>rows="80,*"&gt;</span></dt>
            <dd style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0px 30px; padding-top: 0px"><span><span style="color: rgb(0,128,0)">&lt;noframes&gt;<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;body&gt;<span class="Apple-converted-space">&nbsp;</span><br />
            很抱歉，馈下使用的浏览器不支援框架功能，请转用新的浏览器。<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;/body&gt;<span class="Apple-converted-space">&nbsp;</span><br />
            &lt;/noframes&gt;</span></span></dd>
            <dd style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0px 30px; padding-top: 0px"><span>&lt;frame name="top" src="a.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
            <dd style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0px 30px; padding-top: 0px"><span>&lt;frame name="bottom" src="b.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"&gt;</span></dd>
            <dt style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0.25em 0px; padding-top: 0px"><span>&lt;/<span class="hilite2" style="background-color: rgb(85,255,85)">frameset</span>&gt;</span></dt></dl>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>若浏览器支援框架，那堋它不会理会 &lt;noframes&gt; 中的东西，但若浏览器不支援框架，由 於不认识所有框架标记，不明的标记会被略过，标记包围的东西便被解读出来，所以放在 &lt;noframes&gt;范围内的文字会被显示。</span></p>
            </td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em">
            <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
                <tbody>
                    <tr>
                        <td style="font-size: 1em">
                        <div><span style="color: rgb(202,0,202)">■ &lt;IFRAME&gt; ：</span></div>
                        </td>
                        <td style="font-size: 1em" align="right">
                        <div>▲Top</div>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
        <tr>
            <td class="article" style="font-size: 1em"><span><span style="color: rgb(255,0,0)">这标记只适用於 IE。</span><span class="Apple-converted-space">&nbsp;</span>它的作用是在一页网页中间插入一个框窗以显示另一个文件。它是 一个围堵标记，但围著的字句只有在浏览器不支援 iframe 标记时才会显示，如&lt;noframes&gt; 一样，可以放些提醒字句之类。通常 iframe 配合一个辨认浏览器的 Java Script 会较好，若 javascript 认出该浏览器并非 Internet Explorer 便会切换至另一版本。</span>
            <p style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"><span>&lt;iframe&gt; 的参数设定如下：<span class="Apple-converted-space">&nbsp;</span><br />
            例子： &lt;iframe<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">src</span>="iframe.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">name</span>="test"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">align</span>="MIDDLE"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">width</span>="300"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">height</span>="100"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">marginwidth</span>="1"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">marginheight</span>="1"<span style="color: rgb(255,0,0)">frameborder</span>="1" scrolling="Yes"&gt;</span></p>
            <ul style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 1.5em; padding-top: 0px">
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">src</span>="iframe.<span class="hilite1" style="background-color: rgb(255,255,0)">html</span>"<span class="Apple-converted-space">&nbsp;</span><br />
                欲显示於此框窗的文件来源除档案名称，必要加上相对或绝对路径。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">name</span>="test"<span class="Apple-converted-space">&nbsp;</span><br />
                此框窗名称，这是连结标记的 target 参数所　要的，</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">align</span>="MIDDLE"<span class="Apple-converted-space">&nbsp;</span><br />
                可选值为 left, right, top, middle, bottom，作用不大</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">width</span>="300"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">height</span>="100"<span class="Apple-converted-space">&nbsp;</span><br />
                框窗的宽及长，以 pixels 为单位。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">marginwidth</span>="1"<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(255,0,0)">marginheight</span>="1"<span class="Apple-converted-space">&nbsp;</span><br />
                该插入的文件与框边所保留的空间。</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">frameborder</span>="1"<span class="Apple-converted-space">&nbsp;</span><br />
                使用 1 表示显示边框， 0 则不显示。（可以是 yes 或 no）</span></li>
                <li style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-top: 0px"><span><span style="color: rgb(255,0,0)">scrolling</span>="Yes"<span class="Apple-converted-space">&nbsp;</span><br />
                使用 Yes 表示容许卷动（内定）， No 则不容许卷动。</span></li>
            </ul>
            </td>
        </tr>
    </tbody>
</table>
</span></span>
  <img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/293977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2009-09-05 10:45 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/05/293977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2+hibernate+spring+mysql乱码问题</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/03/293712.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Thu, 03 Sep 2009 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/03/293712.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/293712.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/03/293712.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/293712.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/293712.html</trackback:ping><description><![CDATA[今天做struts2+hibernate+spring+mysql整合向数据库保存中文时出现乱码问题，在网上查资料好半天才解决。<br />
首先查资料说是在struts.properties加入如下的key-value：struts.locale=zh_CN&nbsp; ；struts.i18n.encoding=gb2312-------向数据库保存数据时出现乱码，问题没有解决；<br />
然后再查说是将spring的配置文件&lt;property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;amp;characterEncoding=UTF-8"&gt;&lt;/property&gt;写成这样---------再试验保存数据还是乱码，问题没有解决；<br />
然后再查说将mysql字符集设置为UTF-8----------再试验保存数据还是乱码，问题没有解决；<br />
然后再查说写个filter<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;NewFilterDispatcher&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;FilterDispatcher&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">GBK</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init(FilterConfig&nbsp;filterConfig)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">.init(filterConfig);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;encodingParam&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filterConfig.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">encoding</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(encodingParam&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;encodingParam.trim().length()&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;encodingParam;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doFilter(ServletRequest&nbsp;request,&nbsp;ServletResponse&nbsp;response,&nbsp;FilterChain&nbsp;chain)&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException,&nbsp;ServletException&nbsp;{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(encoding);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">.doFilter(request,&nbsp;response,&nbsp;chain);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">}&nbsp;&nbsp;&nbsp;</span></div>
<br />
web.xml<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">struts</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">util.NewFilterDispatcher</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">encoding</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">gb2312</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">struts</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/*</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span></div>
<br />
再试验保存数据，这次乱码问题终于解决；
<img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/293712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2009-09-03 11:05 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2009/09/03/293712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML转义符</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/06/09/280988.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Tue, 09 Jun 2009 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/06/09/280988.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/280988.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2009/06/09/280988.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/280988.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/280988.html</trackback:ping><description><![CDATA[--- &#09; --- 制表符Horizontal tab<br />
--- &#10; --- 换行Line feed<br />
--- &#13; --- 回车Carriage Return<br />
&#32; --- Space<br />
! &#33; --- 惊叹号Exclamation mark<br />
" &#34; &amp;quot; 双引号Quotation mark<br />
# &#35; --- 数字标志Number sign<br />
$ &#36; --- 美元标志Dollar sign<br />
% &#37; --- 百分号Percent sign<br />
&amp; &#38; &amp;amp; Ampersand<br />
' &#39; --- 单引号Apostrophe<br />
( &#40; --- 小括号左边部分Left parenthesis<br />
) &#41; --- 小括号右边部分Right parenthesis<br />
* &#42; --- 星号Asterisk<br />
+ &#43; --- 加号Plus sign<br />
, &#44; --- 逗号Comma<br />
- &#45; --- 连字号Hyphen<br />
. &#46; --- 句号Period (fullstop)<br />
/ &#47; --- 斜杠Solidus (slash)<br />
0 &#48; --- 数字0 Digit 0<br />
1 &#49; --- 数字1 Digit 1<br />
2 &#50; --- 数字2 Digit 2<br />
3 &#51; --- 数字3 Digit 3<br />
4 &#52; --- 数字4 Digit 4<br />
5 &#53; --- 数字5 Digit 5<br />
6 &#54; --- 数字6 Digit 6<br />
7 &#55; --- 数字7 Digit 7<br />
8 &#56; --- 数字8 Digit 8<br />
9 &#57; --- 数字9 Digit 9<br />
: &#58; --- 冒号Colon<br />
; &#59; --- 分号Semicolon<br />
&lt; &#60; &amp;lt; 小于号Less than<br />
= &#61; --- 等于符号Equals sign<br />
&gt; &#62; &amp;gt; 大于号Greater than<br />
? &#63; --- 问号Question mark<br />
@ &#64; --- Commercial at<br />
A &#65; --- 大写A Capital A<br />
B &#66; --- 大写B Capital B<br />
C &#67; --- 大写C Capital C<br />
D &#68; --- 大写D Capital D<br />
E &#69; --- 大写E Capital E<br />
F &#70; --- 大写F Capital F<br />
G &#71; --- 大写G Capital G<br />
H &#72; --- 大写H Capital H<br />
I &#73; --- 大写J Capital I<br />
J &#74; --- 大写K Capital J<br />
K &#75; --- 大写L Capital K<br />
L &#76; --- 大写K Capital L<br />
M &#77; --- 大写M Capital M<br />
N &#78; --- 大写N Capital N<br />
O &#79; --- 大写O Capital O<br />
P &#80; --- 大写P Capital P<br />
Q &#81; --- 大写Q Capital Q<br />
R &#82; --- 大写R Capital R<br />
S &#83; --- 大写S Capital S<br />
T &#84; --- 大写T Capital T<br />
U &#85; --- 大写U Capital U<br />
V &#86; --- 大写V Capital V<br />
W &#87; --- 大写W Capital W<br />
X &#88; --- 大写X Capital X<br />
Y &#89; --- 大写Y Capital Y<br />
Z &#90; --- 大写Z Capital Z<br />
[ &#91; --- 中括号左边部分Left square bracket<br />
\ &#92; --- 反斜杠Reverse solidus (backslash)<br />
] &#93; --- 中括号右边部分Right square bracket<br />
^ &#94; --- Caret<br />
_ &#95; --- 下划线Horizontal bar (underscore)<br />
` &#96; --- 尖重音符Acute accent<br />
a &#97; --- 小写a Small a<br />
b &#98; --- 小写b Small b<br />
c &#99; --- 小写c Small c<br />
d &#100; --- 小写d Small d<br />
e &#101; --- 小写e Small e<br />
f &#102; --- 小写f Small f<br />
g &#103; --- 小写g Small g<br />
h &#104; --- 小写h Small h<br />
i &#105; --- 小写i Small i<br />
j &#106; --- 小写j Small j<br />
k &#107; --- 小写k Small k<br />
l &#108; --- 小写l Small l<br />
m &#109; --- 小写m Small m<br />
n &#110; --- 小写n Small n<br />
o &#111; --- 小写o Small o<br />
p &#112; --- 小写p Small p<br />
q &#113; --- 小写q Small q<br />
r &#114; --- 小写r Small r<br />
s &#115; --- 小写s Small s<br />
t &#116; --- 小写t Small t<br />
u &#117; --- 小写u Small u<br />
v &#118; --- 小写v Small v<br />
w &#119; --- 小写w Small w<br />
x &#120; --- 小写x Small x<br />
y &#121; --- 小写y Small y<br />
z &#122; --- 小写z Small z<br />
{ &#123; --- 大括号左边部分Left curly brace<br />
| &#124; --- 竖线Vertical bar<br />
} &#125; --- 大括号右边部分Right curly brace<br />
~ &#126; --- Tilde<br />
 <img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/280988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2009-06-09 18:06 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2009/06/09/280988.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>j2ee基础知识（一）【request&amp;response】</title><link>http://www.blogjava.net/hhhaaawwwkkk/archive/2008/12/19/246986.html</link><dc:creator>生命的绽放</dc:creator><author>生命的绽放</author><pubDate>Fri, 19 Dec 2008 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/hhhaaawwwkkk/archive/2008/12/19/246986.html</guid><wfw:comment>http://www.blogjava.net/hhhaaawwwkkk/comments/246986.html</wfw:comment><comments>http://www.blogjava.net/hhhaaawwwkkk/archive/2008/12/19/246986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hhhaaawwwkkk/comments/commentRss/246986.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hhhaaawwwkkk/services/trackbacks/246986.html</trackback:ping><description><![CDATA[<p><strong><em>request&nbsp;&nbsp;&nbsp;&nbsp;response&nbsp;&nbsp;&nbsp;&nbsp;pageContext&nbsp;&nbsp;&nbsp;&nbsp;session&nbsp;&nbsp;&nbsp;&nbsp;application&nbsp;&nbsp;&nbsp;&nbsp;out&nbsp;&nbsp;&nbsp;&nbsp;config&nbsp;&nbsp;&nbsp;&nbsp;page&nbsp;&nbsp;&nbsp;&nbsp;exception</em></strong><br />
<br />
<strong>JSP中属性的保存范围：</strong><br />
<br />
★在JSP中可以采用下面方法来设置和取得属性：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8594;&nbsp;&nbsp;&nbsp;&nbsp;设置属性：public abstract void setAttribute(java.lang.String.name，java.lang.Object.atrribute)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&#8594;&nbsp;&nbsp;&nbsp;&nbsp;去的属性：public abstract java.lang.Object getAttribute(java.lang.String.name)<br />
★在JSP中提供了四种属性保存范围：<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #999999">&#8594;&nbsp;&nbsp;&nbsp;&nbsp;在一个页面范围内：page<br />
</span>在JSP中设置一个页面属性范围，必须通过pageContext完成。pageContext属性范围：是最为重要的JSP&nbsp;属性之一，但是如果使用纯粹的JSP代码开发，此属性显现不出作用。在struts等就极其重要；<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #999999">&#8594;&nbsp;&nbsp;&nbsp;&nbsp;在一次服务器请求范围内：request<br />
</span>request保存在一次请求范围之内前提：必须使用服务器端跳转&lt;jsp:forward/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #999999">&#8594;&nbsp;&nbsp;&nbsp;&nbsp;在一次会话范围内：session</span><br />
设置了Session保存范围后不管什么跳转，都可以取得属性。session的主要功能是验证用户是否登陆。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="background-color: #999999">&#8594;&nbsp;&nbsp;&nbsp;&nbsp;在一个应用服务器范围内：application<br />
<span style="background-color: #ffffff">application属性范围值，只要设置一次，则说有的网页窗口都可以取得数据，主要用于在线人员统计。<br />
<br />
application、request、session&#8594;都需要跨多个页，属性保存是有开销的，过多的application和session会导致性能下降，所以能使用request就不要使用session，能使用session就不要使用application。如果释放application只能重新启动服务器。<br />
<br />
■页面的中文乱码问题：<br />
1、页面显示的乱码处理：&lt;%@page context="test/html,charset=gbk"%&gt;<br />
2、页面传递的乱码处理：①对所有的数据进行在编码：ISO8859-1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;②设置同意字符编码<br />
如：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_2_42_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_42_Open_Text.style.display='none'; Codehighlighter1_2_42_Closed_Image.style.display='inline'; Codehighlighter1_2_42_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_42_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_42_Closed_Text.style.display='none'; Codehighlighter1_2_42_Open_Image.style.display='inline'; Codehighlighter1_2_42_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_42_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2_42_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html,charset=gbk</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HTML</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">BODY</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;//方法一：<br />
<img id="Codehighlighter1_108_221_Open_Image" onclick="this.style.display='none'; Codehighlighter1_108_221_Open_Text.style.display='none'; Codehighlighter1_108_221_Closed_Image.style.display='inline'; Codehighlighter1_108_221_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_108_221_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_108_221_Closed_Text.style.display='none'; Codehighlighter1_108_221_Open_Image.style.display='inline'; Codehighlighter1_108_221_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_108_221_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_108_221_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;name&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getParameter(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">username</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">byte</span><span style="color: #000000; background-color: #f5f5f5">[]b&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;name.getBytes(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">ISO8859-1</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">(b);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;方法一可写为：<br />
<img id="Codehighlighter1_239_324_Open_Image" onclick="this.style.display='none'; Codehighlighter1_239_324_Open_Text.style.display='none'; Codehighlighter1_239_324_Closed_Image.style.display='inline'; Codehighlighter1_239_324_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_239_324_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_239_324_Closed_Text.style.display='none'; Codehighlighter1_239_324_Open_Image.style.display='inline'; Codehighlighter1_239_324_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_239_324_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_239_324_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;name&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">(request.getParameter(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">username</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).getBytes(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">ISO8859-1</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;//方法二：<br />
<img id="Codehighlighter1_341_430_Open_Image" onclick="this.style.display='none'; Codehighlighter1_341_430_Open_Text.style.display='none'; Codehighlighter1_341_430_Closed_Image.style.display='inline'; Codehighlighter1_341_430_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_341_430_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_341_430_Closed_Text.style.display='none'; Codehighlighter1_341_430_Open_Image.style.display='inline'; Codehighlighter1_341_430_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_341_430_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_341_430_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">GBK</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;name&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getParameter(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">username</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">输入内容为：</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">name</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">BODY</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">HTML</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<p>■如果传递的内容是数组（复选框、多个下拉列表）使用request的一下方法取得数据<br />
例：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">="demo08.jsp"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名：</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="uname"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;密码：</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="password"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="upass"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;兴趣：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="checkbox"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="**inst"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="篮球"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">篮球<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="checkbox"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="**inst"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="游泳"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">游泳<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="checkbox"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="**inst"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="唱歌"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">唱歌<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="checkbox"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="**inst"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="跳舞"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">跳舞<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="checkbox"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="**inst"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="看书"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">看书<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="submit"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="提交"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<p>使用request.getParameterNames()方法取得数据<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;charset=gbk</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;import</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java.util.*</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;接收内容<br />
&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">GBK</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Enumeration&nbsp;enu&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getParameterNames()&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">while</span><span style="color: #000000; background-color: #f5f5f5">(enu.hasMoreElements())<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;name&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">)enu.nextElement()&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(name.startsWith(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">**</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;temp[]&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getParameterValues(name)&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">name</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000">&nbsp;--&gt;<br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">for</span><span style="color: #000000; background-color: #f5f5f5">(</span><span style="color: #0000ff; background-color: #f5f5f5">int</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">;i</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">temp.length;i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #f5f5f5">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">temp[i]</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000">、<br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">name</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000">&nbsp;--&gt;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">request.getParameter(name)</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<p>用request.getParamaterValues()方法取得数据<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;charset=gbk</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">gbk</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;name&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getParameter(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">uname</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;inst[]&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getParameterValues(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">inst</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">用户名为：</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">name</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">兴趣为：<br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">for</span><span style="color: #000000; background-color: #f5f5f5">(</span><span style="color: #0000ff; background-color: #f5f5f5">int</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">;i</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">inst.length;i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #f5f5f5">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">inst[i]</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<p>■向服务器传值还可以使用隐藏域&lt;input type="hidden" name="name" value="aaa"&gt;;<br />
&nbsp;&nbsp;还可以使用地址重写传递数据到服务器端。<br />
■取得客户端的IP地址：&lt;%=request.getRemoteAddr()%&gt;<br />
<br />
★response的主要功能：<br />
1、最有用用的一个头信息：refresh：刷新<br />
例：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">@page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;charset=gb2312</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">!<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;此处为全局变量，初始化一次<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">int</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;一秒种刷新一次，每次使i自增<br />
&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">refresh</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">2;URL=responseDemo02.jsp</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
两秒后跳转到欢迎页！！！</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
如果没有跳转，请按</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="responseDemo02.jsp"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">这里</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">！！！</span></div>
<p>2、response跳转与forward跳转<br />
①&lt;jsp:forward page=""/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;地址栏不改变跳转----服务器端跳转<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;执行跳转语句后无条件立即跳转----之后的代码不再被执行<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;使用forward时，request设置的属性依然能保留在下一个页面（setAttrbute）<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;通过&lt;jsp:param name="" value=""/&gt;传递参数<br />
②response.sendRedirect("地址")<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;地址栏改变跳转----客户端跳转<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;所有代码执行完毕后跳转<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;不能保存request属性，地址栏改变<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;通过URL地址的重写传递参数<br />
3、设置cookie，cookie是服务器端保存在客户端的一组资源，例如登录时会问你是否记住密码等等。此功能的实现就是通过cookie。<br />
例：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;Cookie&nbsp;c1&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Cookie(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">name</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">mldn</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Cookie&nbsp;c2&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Cookie(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">password</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">LXH</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;保存时间为60秒<br />
&nbsp;&nbsp;&nbsp;&nbsp;c1.setMaxAge(</span><span style="color: #000000; background-color: #f5f5f5">60</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;c2.setMaxAge(</span><span style="color: #000000; background-color: #f5f5f5">60</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;通过response对象将Cookie设置到客户端<br />
&nbsp;&nbsp;&nbsp;&nbsp;response.addCookie(c1)&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;response.addCookie(c2)&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span></div>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;通过request对象，取得客户端设置的全部Cookie<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;实际上客户端的Cookie是通过HTTP头信息发送到服务器端上的<br />
&nbsp;&nbsp;&nbsp;&nbsp;Cookie&nbsp;c[]&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;request.getCookies()&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">for</span><span style="color: #000000; background-color: #f5f5f5">(</span><span style="color: #0000ff; background-color: #f5f5f5">int</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">;i</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">c.length;i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #f5f5f5">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cookie&nbsp;temp&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;c[i]&nbsp;;<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">temp.getName()</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000">&nbsp;--&gt;&nbsp;</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">temp.getValue()</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000; background-color: #ffff00">%&gt;</span></div>
<p>cookie默认只对当前浏览器有效，如果长留要设置cookie的保存时间<br />
<br />
■session对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;-session对象主要用于保存用户的各种信息，知道他的生命周期（一般为900S）超时或被人为地释放掉为止。<br />
&nbsp;&nbsp;&nbsp;&nbsp;-可以通过session对象来判断此用户是否是合法用户。<br />
1、在服务器上通过session来区分每一个用户，用户只要已连接服务器，则立刻分配一个session给用户。<br />
2、Session的主要方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;服务器上通过Session来区分用户（SessionID）：任何链接到服务器上的用户，服务器都会为之分配一个<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;唯一的SessionID，sessionID由服务器同意管理，人为不能控制。<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;获得sessionID的方法，session.getId();,session的长度为32位。<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;通过session可以验证用户是否登陆<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;判断当前的session是否是新建立的session方法：session.isNew();<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;session的属性设置：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置属性：public void setAttribute(Stirng name,Object value)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 取得属性：public void getAttribute(String name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除属性：public void removeAttrbute(String name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;让session失效，也就是通常用的用户注销<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 手动注销：public void invalidate()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;自动注销：session长时间不被使用则自动会注销<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;得到session的创建时间：public long getCreationTime();此方法返回long类型，通过Date类可以取得一个完整的<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;时间。<br />
&nbsp;&nbsp;&nbsp;&nbsp;■&nbsp;&nbsp;&nbsp;&nbsp;取得用户最后一次的操作时间：public long getLastAccessedTime()<br />
<br />
</span></span></p>
 <img src ="http://www.blogjava.net/hhhaaawwwkkk/aggbug/246986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hhhaaawwwkkk/" target="_blank">生命的绽放</a> 2008-12-19 10:58 <a href="http://www.blogjava.net/hhhaaawwwkkk/archive/2008/12/19/246986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>