??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情视频,亚洲成AV人综合在线观看,亚洲女人18毛片水真多http://m.tkk7.com/botson/zh-cnMon, 12 May 2025 12:57:59 GMTMon, 12 May 2025 12:57:59 GMT60【{】DWR中用HttpSession{APIhttp://m.tkk7.com/botson/archive/2008/08/15/222151.htmlJam ChanJam ChanFri, 15 Aug 2008 01:34:00 GMThttp://m.tkk7.com/botson/archive/2008/08/15/222151.htmlhttp://m.tkk7.com/botson/comments/222151.htmlhttp://m.tkk7.com/botson/archive/2008/08/15/222151.html#Feedback2http://m.tkk7.com/botson/comments/commentRss/222151.htmlhttp://m.tkk7.com/botson/services/trackbacks/222151.html 如:pȝd面中我要进行验证码验证Q一般生成的验证码是攑֜session中的Q我点登录的时候.用的是dwrQ所以是js直接调用后台的方法.
那么后台的方法只是一个普通的javac.是不存在什么request,session的.所以就不到session中的|当然你要是用spirng MVC的话Q可能可以.Q我没用q,不好_Q?
l查资料Q原来DQP本n中就可以传session.只不q是隐藏的.

那么Ҏ是通过DWR的AQ;Q(|上说很多h不推荐,不知Z么)

具体应用Q?
HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig.

JavacM定义Ҏ: save(String name, HttpSession session)

Javascript调用: Service.save(jsID,jsName,callBack)

注意,q里不需要传入sessionq个参数,DWR会自动传?在Java端可以直接?

q样的话Q你可以在后台的saveҎ中得到sesion?

Jam Chan 2008-08-15 09:34 发表评论
]]>
DWR的DWRUtil.addRowsҎ的?/title><link>http://m.tkk7.com/botson/archive/2008/04/23/194952.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Wed, 23 Apr 2008 02:05:00 GMT</pubDate><guid>http://m.tkk7.com/botson/archive/2008/04/23/194952.html</guid><wfw:comment>http://m.tkk7.com/botson/comments/194952.html</wfw:comment><comments>http://m.tkk7.com/botson/archive/2008/04/23/194952.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.tkk7.com/botson/comments/commentRss/194952.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/botson/services/trackbacks/194952.html</trackback:ping><description><![CDATA[最q想通过DWR做查询,虽然可以l合ext使用Q但是用太多框架会增加客户端的负荷Q因此用CDWRUtil.addRowsҎ?br /> 如果惛_每行记录的最后添?#8220;~辑”?#8220;删除”的超U连接,可以通过document.createElement()来处理,L以下的例子?br /> <br /> 现在需要把装了这个JavaBean数据?java.util.List对象 传到客户?br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> Fund </span><span style="color: rgb(0, 0, 255);">implements</span><span style="color: rgb(0, 0, 0);"> java.io.Serializable {<br /> <br />     </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Fields</span><span style="color: rgb(0, 128, 0);"><br /> </span><span style="color: rgb(0, 0, 0);"><br />     </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> Long fundNo;<br />     </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> String fundName;<br />     </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> Float price;<br />     </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> String description;<br />     </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> String status;<br />     </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> Date createdDate;<br />     <br />     <span style="color: rgb(23, 152, 55);"><span style="color: rgb(23, 152, 55);"><span style="color: red;"><span style="color: rgb(45, 158, 29);">//Getter & Setter</span></span></span></span><br /> }<br /> </span></div> <br /> 之前如何调用q略了Q想了解DWR的详l信息可以到官方|站<a target="_blank" >http://getahead.org/dwr</a>学习<br /> <br /> 现在Q我们看看客L的回调函?br /> <div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: rgb(0, 0, 255);">        function</span><span style="color: rgb(0, 0, 0);"> callBack(data){<br />             DWRUtil.removeAllRows(</span><span style="color: rgb(0, 0, 0);">"tbodyId</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">); <span style="color: rgb(45, 158, 29);">// "tbodyId"是需要嵌入行的元素ID</span><br />             DWRUtil.addRows(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">tbodyId</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, data, cellFunctions);<br />         }<br />         </span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> cellFunctions </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> [ <br />             </span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item) { </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> item.fundNo; }, <br />             </span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item) { </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> item.fundName; }, <br />             </span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item) { </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> item.price; }, <br />             </span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item) { </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> item.description; }, <br />             </span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item) { </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> item.status</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">?</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">正常</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ȝ</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">; }, <br />             </span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(item) { <br />                </span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);"> editLink </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> document.createElement(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">a</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />                editLink.setAttribute(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">href</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">edit.do?id=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">item.fundNo);<br />                editLink.innerHTML</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">"</span>~辑<span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />                </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> editLink; <br />             }<br />         ];</span></div> <br /> q样在每行的最后一行就会增?#8220;~辑”的超U连接了。编辑的具体工作惛_l哪个后台类处理Q修改一下href属性吧?br /> <br /> <br /> <img src ="http://m.tkk7.com/botson/aggbug/194952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/botson/" target="_blank">Jam Chan</a> 2008-04-23 10:05 <a href="http://m.tkk7.com/botson/archive/2008/04/23/194952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下执行程序时发生错误: cannot restore segment prot after reloc: Permission deniedhttp://m.tkk7.com/botson/archive/2008/04/01/190191.htmlJam ChanJam ChanTue, 01 Apr 2008 12:44:00 GMThttp://m.tkk7.com/botson/archive/2008/04/01/190191.htmlhttp://m.tkk7.com/botson/comments/190191.htmlhttp://m.tkk7.com/botson/archive/2008/04/01/190191.html#Feedback0http://m.tkk7.com/botson/comments/commentRss/190191.htmlhttp://m.tkk7.com/botson/services/trackbacks/190191.html原来q是SELinux搞的|解决办法有两?/div>
1. 使用chcon 命o
CZ: chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so
2. 止掉SELinux
更改/etc/sysconfig/selinux 文g的内容ؓ SELINUX=disabled
 
q个问题参考了以下链接


Jam Chan 2008-04-01 20:44 发表评论
]]>
【Oracle】EXP-00026: 指定了冲H模?http://m.tkk7.com/botson/archive/2008/03/27/188924.htmlJam ChanJam ChanThu, 27 Mar 2008 01:16:00 GMThttp://m.tkk7.com/botson/archive/2008/03/27/188924.htmlhttp://m.tkk7.com/botson/comments/188924.htmlhttp://m.tkk7.com/botson/archive/2008/03/27/188924.html#Feedback1http://m.tkk7.com/botson/comments/commentRss/188924.htmlhttp://m.tkk7.com/botson/services/trackbacks/188924.html1.想用usera导出userb用户下的表tabbQv初用如下命令:

exp usera/passa@db owner=userb tables=(tabb) file=c:\test.dmp

Export: Release 9.2.0.1.0 - Production on 星期?11?9 17:48:32 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


q接? Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
EXP-00026: 指定了冲H模?br /> EXP-00000: 导出l止p|

2.q里感觉只指定了三个参数Q应该是owner和tables参数有冲H,对exp命oq行修改Q?/span>

exp usera/passa@db  tables=(userb.tabb) file=c:\test.dmp

Export: Release 9.2.0.1.0 - Production on 星期?11?9 17:52:20 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


q接? Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
已导?ZHS16GBK 字符集和 UTF8 NCHAR 字符?br /> 服务器?UTF8 字符?(可能的字W集转换)

卛_导出指定的表通过常规路径 ...
当前的用户已更改?userb
. . 正在导出?nbsp;                 tabb      6 行被导出
EXP-00091: 正在导出可疑的统计信息?br /> EXP-00091: 正在导出可疑的统计信息?br /> EXP-00091: 正在导出可疑的统计信息?br /> 导出成功l止Q但出现警告?/p>

3.使用如下命o可以到处userbQ?/span>

exp usera/passa@db  owner=userb file=c:\test.dmp



Jam Chan 2008-03-27 09:16 发表评论
]]>
Hibernate+Spring实现多对一兌http://m.tkk7.com/botson/archive/2008/03/23/187993.htmlJam ChanJam ChanSun, 23 Mar 2008 02:06:00 GMThttp://m.tkk7.com/botson/archive/2008/03/23/187993.htmlhttp://m.tkk7.com/botson/comments/187993.htmlhttp://m.tkk7.com/botson/archive/2008/03/23/187993.html#Feedback0http://m.tkk7.com/botson/comments/commentRss/187993.htmlhttp://m.tkk7.com/botson/services/trackbacks/187993.html-- 创徏用户?/span>
CREATE TABLE SCOTT.bloguser
(
    id    
NUMBER NOT NULL,
    username    
VARCHAR2(50UNIQUE NOT NULL,
    password    
VARCHAR2(50NOT NULL,
    
CONSTRAINT PK_bloguser PRIMARY KEY (id )
);
-- 创徏用户表主键序?/span>
CREATE SEQUENCE SEQ_BLOGUSERID START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE  NOCYCLE  NOORDER ;

-- 创徏bolg?/span>
CREATE TABLE SCOTT.bolginfo
(
    id    
NUMBER,
    userId    
NUMBER NOT NULL,
    content    
VARCHAR2(1000),
    
CONSTRAINT PK_bolginfo PRIMARY KEY (id )
);
-- 创徏bolg表主键序?/span>
CREATE SEQUENCE SEQ_BLOGID START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE  NOCYCLE  NOORDER ;

--d外键U束
ALTER TABLE SCOTT.bolginfo
    
ADD CONSTRAINT FK_userId_blogId FOREIGN KEY (userId) REFERENCES SCOTT.bloguser(id);
Bloguser.java
package com.jam.hibeinate.po;

import java.util.Set;

/**
 * Bloguser entity.
 * 
 * 
@author Jam Chan
 
*/
public class Bloguser implements java.io.Serializable {


    private Long id;
    private String username;
    private String password;
    private Set bolginfos = new HashSet(0);

}

Bolginfo.java
package com.jam.hibeinate.po;

/**
 * Bolginfo entity.
 * 
 * 
@author Jam Chan
 
*/
public class Bolginfo implements java.io.Serializable {

    private Long id;
    private Bloguser bloguser;
    private String content;

}

Bloguser.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    
<class name="com.jam.hibeinate.po.Bloguser" table="BLOGUSER" schema="SCOTT">
        
<id name="id" type="java.lang.Long">
            
<column name="ID" precision="22" scale="0" />
            
<generator class="sequence">
                
<param name="sequence">
                    SEQ_BLOGUSERID
                
</param>
            
</generator>
        
</id>
        
<property name="username" type="java.lang.String">
            
<column name="USERNAME" length="50" not-null="true" unique="true" />
        
</property>
        
<property name="password" type="java.lang.String">
            
<column name="PASSWORD" length="50" not-null="true" />
        
</property>
        
<set name="bolginfos" inverse="true" cascade="all" lazy="false" outer-join="auto">
            
<key>
                
<column name="USERID" precision="22" scale="0" not-null="true" />
            
</key>
            
<one-to-many class="com.jam.hibeinate.po.Bolginfo" />
        
</set>
    
</class>
</hibernate-mapping>

Bolginfo.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    
<class name="com.jam.hibeinate.po.Bolginfo" table="BOLGINFO" schema="SCOTT">
        
<id name="id" type="java.lang.Long">
            
<column name="ID" precision="22" scale="0" />
            
<generator class="sequence">
                
<param name="sequence">SEQ_BLOGID</param>
            
</generator>
        
</id>
        
<many-to-one name="bloguser" class="com.jam.hibeinate.po.Bloguser" fetch="select" insert="true" update="true" outer-join="true">
            
<column name="USERID" precision="22" scale="0" not-null="true" />
        
</many-to-one>
        
<property name="content" type="java.lang.String">
            
<column name="CONTENT" length="1000" />
        
</property>
    
</class>
</hibernate-mapping>

注:Spring的applicationContext.xml事务代理的配|省?#8230;…

之前我实现多表查询的时候抛?br />
could not initialize proxy - the owning Session was closed
org.hibernate.LazyInitializationException: could not initialize proxy 
- the owning Session was closed
……………………
的异常,如果想Session is opened需要在web.xmld如下配置Q?br />
     <filter>
        
<filter-name>openSessionInViewFilter</filter-name>
        
<filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        
</filter-class>
    
</filter>
    <!-- 选择需要过滤的面 -->
    <filter-mapping>
        
<filter-name>openSessionInViewFilter</filter-name>
        
<url-pattern>*.faces</url-pattern>
    
</filter-mapping>
    
<filter-mapping>
        
<filter-name>openSessionInViewFilter</filter-name>
        
<url-pattern>*.do</url-pattern>
    
</filter-mapping>
    
<filter-mapping>
        
<filter-name>openSessionInViewFilter</filter-name>
        
<url-pattern>*.jsp</url-pattern>
    
</filter-mapping>

之后OK啦~Q!哈哈





Jam Chan 2008-03-23 10:06 发表评论
]]>
JSF整合Spring时各文g的配|?/title><link>http://m.tkk7.com/botson/archive/2008/03/20/187557.html</link><dc:creator>Jam Chan</dc:creator><author>Jam Chan</author><pubDate>Thu, 20 Mar 2008 12:44:00 GMT</pubDate><guid>http://m.tkk7.com/botson/archive/2008/03/20/187557.html</guid><wfw:comment>http://m.tkk7.com/botson/comments/187557.html</wfw:comment><comments>http://m.tkk7.com/botson/archive/2008/03/20/187557.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/botson/comments/commentRss/187557.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/botson/services/trackbacks/187557.html</trackback:ping><description><![CDATA[最q在做一个需要JSF和Spring整合的项目,之前不知道如何在后台理Bean获取被Spring理的业务类对象Q现在解决了Q可以跑h了!<br /> <br /> <ol> <li><span style="color: red;">web.xml<br /> </span> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080;"> 1</span> <span style="color: #808080;"><</span><span style="color: #000000;">?xml version</span><span style="color: #808080;">=</span><span style="color: #000000;">"</span><span style="color: #800000; font-weight: bold;">1.0</span><span style="color: #000000;">"?</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 2</span> <span style="color: #808080;"><</span><span style="color: #000000;">web</span><span style="color: #808080;">-</span><span style="color: #000000;">app xmlns</span><span style="color: #808080;">=</span><span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">xml</span><span style="color: #808080;">/</span><span style="color: #000000;">ns</span><span style="color: #808080;">/</span><span style="color: #000000;">j2ee"<br /> </span><span style="color: #008080;"> 3</span> <span style="color: #000000;">  xmlns:xsi</span><span style="color: #808080;">=</span><span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">www.w3.org</span><span style="color: #808080;">/</span><span style="color: #800000; font-weight: bold;">2001</span><span style="color: #808080;">/</span><span style="color: #000000;">XMLSchema</span><span style="color: #808080;">-</span><span style="color: #000000;">instance"<br /> </span><span style="color: #008080;"> 4</span> <span style="color: #000000;">  xsi:schemaLocation</span><span style="color: #808080;">=</span><span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">xml</span><span style="color: #808080;">/</span><span style="color: #000000;">ns</span><span style="color: #808080;">/</span><span style="color: #000000;">j2ee<br /> </span><span style="color: #008080;"> 5</span> <span style="color: #000000;">    http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">xml</span><span style="color: #808080;">/</span><span style="color: #000000;">ns</span><span style="color: #808080;">/</span><span style="color: #000000;">j2ee</span><span style="color: #808080;">/</span><span style="color: #000000;">web</span><span style="color: #808080;">-</span><span style="color: #000000;">app_2_4.xsd"<br /> </span><span style="color: #008080;"> 6</span> <span style="color: #000000;">  version</span><span style="color: #808080;">=</span><span style="color: #000000;">"</span><span style="color: #800000; font-weight: bold;">2.4</span><span style="color: #000000;">"</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 7</span> <span style="color: #000000;"> <br /> </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">  </span><span style="color: #808080;"><</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;">example</span><span style="color: #808080;"></</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 9</span> <span style="color: #000000;"><br /> </span><strong><span style="color: #008080;">10</span></strong> <span style="color: #000000;">    </span><strong><span style="color: #808080;"><</span><span style="color: #000000;">context</span><span style="color: #808080;">-</span><span style="color: #000000;">param</span><span style="color: #808080;">></span><span style="color: #000000;">    <br /> </span><span style="color: #008080;">11</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;">contextConfigLocation</span><span style="color: #808080;"></</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">12</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">value</span><span style="color: #808080;">>/</span><span style="color: #000000;">WEB</span><span style="color: #808080;">-</span><span style="color: #000000;">INF<span style="color: #040000;"><span style="color: #040000;"><span style="color: #808080;">/classes/</span></span></span><span style="color: #040000;"><span style="color: #000000;">appl</span></span></span><span style="color: #000000;">icationContext.xml</span><span style="color: #808080;"></</span><span style="color: #000000;">param</span><span style="color: #808080;">-</span><span style="color: #000000;">value</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">13</span> <span style="color: #000000;">    </span><span style="color: #808080;"></</span><span style="color: #000000;">context</span><span style="color: #808080;">-</span><span style="color: #000000;">param</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">14</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">15</span> <span style="color: #000000;">    </span><span style="color: #808080;"><</span><span style="color: #000000;">listener</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">16</span> <span style="color: #000000;">      </span><span style="color: #808080;"><</span><span style="color: #000000;">listener</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">></span><span style="color: #000000;">org.springframework.web.context.ContextLoaderListener</span><span style="color: #808080;"></</span><span style="color: #000000;">listener</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">17</span> <span style="color: #000000;">    </span><span style="color: #808080;"></</span><span style="color: #000000;">listener</span><span style="color: #808080;">></span></strong><span style="color: #000000;"><br /> </span><span style="color: #008080;">18</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">19</span> <span style="color: #000000;">    </span><span style="color: #808080;"><</span><span style="color: #000000;">servlet</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">20</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;">FacesServlet</span><span style="color: #808080;"></</span><span style="color: #000000;">display</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">21</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;">FacesServlet</span><span style="color: #808080;"></</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">22</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">></span><span style="color: #000000;">javax.faces.webapp.FacesServlet</span><span style="color: #808080;"></</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">23</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #0000ff;">load</span><span style="color: #808080;">-</span><span style="color: #0000ff;">on</span><span style="color: #808080;">-</span><span style="color: #000000;">startup</span><span style="color: #808080;">></span><span style="color: #800000; font-weight: bold;">0</span><span style="color: #808080;"></</span><span style="color: #0000ff;">load</span><span style="color: #808080;">-</span><span style="color: #0000ff;">on</span><span style="color: #808080;">-</span><span style="color: #000000;">startup</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">24</span> <span style="color: #000000;">    </span><span style="color: #808080;"></</span><span style="color: #000000;">servlet</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">25</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">26</span> <span style="color: #000000;">    </span><span style="color: #808080;"><</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">mapping</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">27</span> <span style="color: #000000;">      </span><span style="color: #808080;"><</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;">FacesServlet</span><span style="color: #808080;"></</span><span style="color: #000000;">servlet</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">28</span> <span style="color: #000000;">      </span><span style="color: #808080;"><</span><span style="color: #000000;">url</span><span style="color: #808080;">-</span><span style="color: #000000;">pattern</span><span style="color: #808080;">></span><span style="color: #008080;">*.faces</span><span style="color: #008080;"></url-pattern><br /> </span><span style="color: #008080;">29</span> <span style="color: #008080;">    </servlet-mapping><br /> </span><span style="color: #008080;">30</span> <span style="color: #008080;">     <br /> </span><span style="color: #008080;">31</span> <span style="color: #008080;"></web-app></span></div> <br /> </li> <li><span style="color: red;">faces-config.xml<br /> </span> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080;"> 1</span> <span style="color: #808080;"><</span><span style="color: #000000;">?xml version</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">1.0</span><span style="color: #ff0000;">'</span><span style="color: #000000;"> encoding</span><span style="color: #808080;">=</span><span style="color: #ff0000;">'</span><span style="color: #ff0000;">UTF-8</span><span style="color: #ff0000;">'</span><span style="color: #000000;">?</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 2</span> <span style="color: #808080;"><</span><span style="color: #000000;">!DOCTYPE faces</span><span style="color: #808080;">-</span><span style="color: #000000;">config </span><span style="color: #0000ff;">PUBLIC</span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 3</span> <span style="color: #000000;">"</span><span style="color: #808080;">-//</span><span style="color: #000000;">Sun Microsystems, Inc.</span><span style="color: #808080;">//</span><span style="color: #000000;">DTD JavaServer Faces Config </span><span style="color: #800000; font-weight: bold;">1.1</span><span style="color: #808080;">//</span><span style="color: #000000;">EN"<br /> </span><span style="color: #008080;"> 4</span> <span style="color: #000000;">"http:</span><span style="color: #808080;">//</span><span style="color: #000000;">java.sun.com</span><span style="color: #808080;">/</span><span style="color: #000000;">dtd</span><span style="color: #808080;">/</span><span style="color: #000000;">web</span><span style="color: #808080;">-</span><span style="color: #000000;">facesconfig_1_1.dtd"</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 5</span> <span style="color: #808080;"><</span><span style="color: #000000;">faces</span><span style="color: #808080;">-</span><span style="color: #000000;">config</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><strong><span style="color: #008080;"> 6</span> <span style="color: #000000;">    </span><span style="color: #808080;"><</span><span style="color: #000000;">application</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 7</span> <span style="color: #000000;">        </span><span style="color: #808080;"><</span><span style="color: #000000;">variable</span><span style="color: #808080;">-</span><span style="color: #000000;">resolver</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">            org.springframework.web.jsf.DelegatingVariableResolver<br /> </span><span style="color: #008080;"> 9</span> <span style="color: #000000;">        </span><span style="color: #808080;"></</span><span style="color: #000000;">variable</span><span style="color: #808080;">-</span><span style="color: #000000;">resolver</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">10</span> <span style="color: #000000;">    </span><span style="color: #808080;"></</span><span style="color: #000000;">application</span><span style="color: #808080;">></span></strong><span style="color: #808080;"><br /> </span><span style="color: #000000;"><br /> </span><span style="color: #008080;">12</span> <span style="color: #808080;"><</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">13</span> <span style="color: #000000;">  </span><span style="color: #808080;"><</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;">infoBean</span><span style="color: #808080;"></</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">name</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">14</span> <span style="color: #000000;">  </span><span style="color: #808080;"><</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">15</span> <span style="color: #000000;">      com.jam.managedbeans.InfoBean<br /> </span><span style="color: #008080;">16</span> <span style="color: #000000;">  </span><span style="color: #808080;"></</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">class</span><span style="color: #808080;">></span><span style="color: #000000;"> <br /> </span><span style="color: #008080;">17</span> <span style="color: #000000;">  </span><span style="color: #808080;"><</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">scope</span><span style="color: #808080;">></span><span style="color: #000000;">request</span><span style="color: #808080;"></</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">-</span><span style="color: #000000;">scope</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">18</span> <span style="color: #808080;"></</span><span style="color: #000000;">managed</span><span style="color: #808080;">-</span><span style="color: #000000;">bean</span><span style="color: #808080;">></span><span style="color: #000000;"><br /> </span><span style="color: #008080;">19</span> <span style="color: #000000;"><br /> </span><span style="color: #008080;">20</span> <span style="color: #808080;"></</span><span style="color: #000000;">faces</span><span style="color: #808080;">-</span><span style="color: #000000;">config</span><span style="color: #808080;">></span></div> <br /> <br /> </li> <li> <span style="color: #000000;"><span style="color: red;">InfoBean.java</span></span><br /> <span>假如</span><u><span style="color: #000000;"><span style="color: red;">InfoBean</span></span></u><span>中需要用业务类<u><span style="color: red;">UserService</span></u>的方法,?/span><span><u><span style="color: red;">UserService</span></u>交由Spring理(<strong><span style="color: #2c8e1f;">id="userService"</span></strong>)Q?/span><u><span style="color: #000000;"><span style="color: red;">InfoBean</span></span></u><span>可以q样写:<br /> </span> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">package</span><span style="color: #000000;"> </span><span style="color: #000000;">com.jam.managedbeans</span><span style="color: #000000;">;<br /> <br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Map;<br /> <br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.faces.context.ExternalContext;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> javax.faces.context.FacesContext;<br /> <br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.context.ApplicationContext;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.web.jsf.FacesContextUtils;<br /> <br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> com.jam.hibeinate.po.Bloguser;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> com.jam.service.UserService;<br /> <br /> </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> Jam Chan<br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">final</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> </span><span style="color: #000000;">InfoBean</span><span style="color: #000000;"> </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> Object {<br /> <br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />      * 用户?br />      </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String userName;</span><span style="color: #000000;"><br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />      * 业务c?br />      </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> UserService userService;<br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />      * 密码<br />      </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String password;<br /> <br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />      * 登陆验证<br />      * <br />      * </span><span style="color: #808080;">@return</span><span style="color: #008000;"><br />      </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String loginValidate() {<br />         FacesContext facesContext </span><span style="color: #000000;">=</span><span style="color: #000000;"> FacesContext.getCurrentInstance();<br />         ExternalContext extnContext </span><span style="color: #000000;">=</span><span style="color: #000000;"> facesContext.getExternalContext();<br />         <span style="color: #2c8e1f;">// POJOc?/span><br />         Bloguser objUser </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Bloguser();<br />         objUser.setUsername(getUserName());<br />         objUser.setPassword(getPassword1());<br />         </span><span style="color: #008000;">//</span><span style="color: #008000;"> 从Spring中获取需要的业务cUserServiceQ我是在这里被卡住Q终于OK?/span><span style="color: #000000;"><br />         <strong><span style="color: #b63e98;"><span style="color: #000000;"><strong><span style="color: #b63e98;"><span style="color: #000000;"><strong>ApplicationContext appContext </strong></span><strong><span style="color: #000000;">=</span><span style="color: #000000;"> FacesContextUtils.getWebApplicationContext(facesContext);<br />         userService </span><span style="color: #000000;">=</span><span style="color: #000000;"> (UserService) appContext.getBean(</span><span style="color: #000000;">"</span><span style="color: #000000;">userService</span><span style="color: #000000;">"</span></strong><span style="color: #000000;"><strong>);</strong></span></span></strong></span></span></strong></span><span style="color: #000000;"><br />         </span><span style="color: #008000;">//</span><span style="color: #008000;"> 验证用户</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">        </span><span style="color: #0000ff;">boolean</span><span style="color: #000000;"> result </span><span style="color: #000000;">=</span><span style="color: #000000;"> userService.loginValidate(objUser);<br />         </span><span style="color: #008000;">//</span><span style="color: #008000;"> 获取SessionMap</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">        Map sessionMap </span><span style="color: #000000;">=</span><span style="color: #000000;"> extnContext.getSessionMap();<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (result) { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 登陆成功</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">            </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 把用户名讄在Session?nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />             sessionMap.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">userName</span><span style="color: #000000;">"</span><span style="color: #000000;">, getUserName());<br />             </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">success</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />         } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { </span><span style="color: #008000;">//</span><span style="color: #008000;"> dp|</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">            </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 清空session </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />             </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (sessionMap.containsKey(</span><span style="color: #000000;">"</span><span style="color: #000000;">userName</span><span style="color: #000000;">"</span><span style="color: #000000;">)) {<br />                 sessionMap.remove(</span><span style="color: #000000;">"</span><span style="color: #000000;">userName</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />             }<br />             </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">failed</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />         }<br />     }<br />     <span style="color: #2c8e1f;">// setter getter省略</span><br /> </span></div> 暂时写到q,可能q要查漏补缺Q发现问题l加上!<br /> </li> </ol> <br /> <br /> <img src ="http://m.tkk7.com/botson/aggbug/187557.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/botson/" target="_blank">Jam Chan</a> 2008-03-20 20:44 <a href="http://m.tkk7.com/botson/archive/2008/03/20/187557.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用Log4j配置http://m.tkk7.com/botson/archive/2008/03/20/187404.htmlJam ChanJam ChanThu, 20 Mar 2008 01:39:00 GMThttp://m.tkk7.com/botson/archive/2008/03/20/187404.htmlhttp://m.tkk7.com/botson/comments/187404.htmlhttp://m.tkk7.com/botson/archive/2008/03/20/187404.html#Feedback0http://m.tkk7.com/botson/comments/commentRss/187404.htmlhttp://m.tkk7.com/botson/services/trackbacks/187404.html
  • log4j配置文g基本含义说明
log4j.properties配置文g讲解如下Q?
# Set root logger level to DEBUG and its only appender to A1
#log4j中有五logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7

配置根LoggerQ其语法为:
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
#q一句设|以为着所有的log都输?br /> #如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL
#被输出,DEBUG,INFO被屏蔽?
# A1 is set to be a ConsoleAppender.
#log4j中Appender有几层如控制台、文件、GUIlg、甚x套接口服务器、NT的事件记录器、UNIX Syslog守护q程{?br /> #ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 使用的输出布局Q其中log4j提供4U布局. org.apache.log4j.HTMLLayoutQ以HTML表格形式布局Q?br /> #org.apache.log4j.PatternLayoutQ可以灵zd指定布局模式Q,
#org.apache.log4j.SimpleLayoutQ包含日志信息的U别和信息字W串Q,
#org.apache.log4j.TTCCLayoutQ包含日志生的旉、线E、类别等{信息)

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#灉|定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 旉 ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R 输出到文?RollingFileAppender的扩展,可以提供一U日志的备䆾功能?br /> log4j.appender.R=org.apache.log4j.RollingFileAppender
#日志文g的名U?br /> log4j.appender.R.File=log4j.log
#日志文g的大?br /> log4j.appender.R.MaxFileSize=100KB
# 保存一个备份文?br /> log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n


配置根LoggerQ其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, ...

level 是日志记录的优先U?br /> appenderName是指定日志信息输出到哪个地斏V您可以同时指定多个输出目的地?

配置日志信息输出目的地AppenderQ其语法?/strong>

log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN

Log4j提供的appender有以下几U:
org.apache.log4j.ConsoleAppenderQ控制台Q,
org.apache.log4j.FileAppenderQ文ӞQ?br /> org.apache.log4j.DailyRollingFileAppenderQ每天生一个日志文ӞQ?br /> org.apache.log4j.RollingFileAppenderQ文件大到达指定尺寸的时候生一个新的文ӞQ?br /> org.apache.log4j.WriterAppenderQ将日志信息以流格式发送到L指定的地方)

配置日志信息的格式(布局Q,其语法ؓQ?br />

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
....
log4j.appender.appenderName.layout.option = valueN

Log4j提供的layout有以下几U:
org.apache.log4j.HTMLLayoutQ以HTML表格形式布局Q,
org.apache.log4j.PatternLayoutQ可以灵zd指定布局模式Q,
org.apache.log4j.SimpleLayoutQ包含日志信息的U别和信息字W串Q,
org.apache.log4j.TTCCLayoutQ包含日志生的旉、线E、类别等{信息)
  • 常用log4j配置
一般可以采用两U方式,.properties?xml,下面举两个简单的例子Q?br /> 一、log4j.properties
### 讄org.zblog域对应的U别INFO,DEBUG,WARN,ERROR和输出地A1QA2 ##
log4j.category.org.zblog=ERROR,A1
log4j.category.org.zblog=INFO,A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
### 讄输出地A1QؓConsoleAppender(控制? ##
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
### 讄A1的输出布局格式PatterLayout,(可以灉|地指定布局模式Q?#
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
### 配置日志输出的格?#
log4j.appender.A2=org.apache.log4j.RollingFileAppender
### 讄输出地A2到文Ӟ文g大小到达指定寸的时候生一个新的文Ӟ##
log4j.appender.A2.File=E:/study/log4j/zhuwei.html
### 文g位置##
log4j.appender.A2.MaxFileSize=500KB
### 文g大小##
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.layout=org.apache.log4j.HTMLLayout
##指定采用html方式输出
二、log4j.xml
<?xml version="1.0" encoding="GB2312" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="org.zblog.all" class="org.apache.log4j.RollingFileAppender">
<!-- 讄通道ID:org.zblog.all和输出方式:org.apache.log4j.RollingFileAppender -->
   <param name="File" value="E:/study/log4j/all.output.log" /><!-- 讄File参数Q日志输出文件名 -->
   <param name="Append" value="false" /><!-- 讄是否在重新启动服务时Q在原有日志的基d新日?-->
   <param name="MaxBackupIndex" value="10" />
   <layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 讄输出文g目和格?-->
   </layout>
</appender>
<appender name="org.zblog.zcw" class="org.apache.log4j.RollingFileAppender">
   <param name="File" value="E:/study/log4j/zhuwei.output.log" />
   <param name="Append" value="true" />
   <param name="MaxFileSize" value="10240" /> <!-- 讄文g大小 -->
   <param name="MaxBackupIndex" value="10" />
   <layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
   </layout>
</appender>
<logger name="zcw.log"> <!-- 讄域名限制Q即zcw.log域及以下的日志均输出C面对应的通道?-->
   <level value="debug" /><!-- 讄U别 -->
   <appender-ref ref="org.zblog.zcw" /><!-- 与前面的通道id相对?-->
</logger>
<root> <!-- 讄接收所有输出的通道 -->
   <appender-ref ref="org.zblog.all" /><!-- 与前面的通道id相对?-->
</root>
</log4j:configuration>
三、配|文件加载方法:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator;
public class Log4jApp {
   public static void main(String[] args) {
       DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加蝲.xml文g
       //PropertyConfigurator.configure("E:/study/log4j/log4j.properties");//加蝲.properties文g
       Logger log=Logger.getLogger("org.zblog.test");
       log.info("试");
   }
}
四、项目用log4j
在web 应用中,可以配|文件的加蝲攑֜一个单独的servlet中,q在web.xml中配|该servlet在应用启动时候加载。对于在多h目中,可以l? 每一个h讄一个输出通道Q这样在每个人在构徏LoggerӞ用自q域名Uͼ让调试信息输出到自己的log文g中?br /> 五、常用输出格?br /> # -X?X信息输出时左寚wQ?br /> # %p:日志信息U别
# %d{}:日志信息产生旉
# %c:日志信息所在地Q类名)
# %m:产生的日志具体信?br /> # %n:输出日志信息换行


Jam Chan 2008-03-20 09:39 发表评论
]]>
【{】Log4j基本使用Ҏhttp://m.tkk7.com/botson/archive/2008/03/20/187402.htmlJam ChanJam ChanThu, 20 Mar 2008 01:27:00 GMThttp://m.tkk7.com/botson/archive/2008/03/20/187402.htmlhttp://m.tkk7.com/botson/comments/187402.htmlhttp://m.tkk7.com/botson/archive/2008/03/20/187402.html#Feedback0http://m.tkk7.com/botson/comments/commentRss/187402.htmlhttp://m.tkk7.com/botson/services/trackbacks/187402.htmlLog4j׃个重要的lg构成Q日志信息的优先U,日志信息的输出目的地Q日志信息的输出格式。日志信息的优先U从高到低有ERROR? WARN、INFO、DEBUGQ分别用来指定这条日志信息的重要E度Q日志信息的输出目的地指定了日志打印到控制台还是文件中Q而输出格式则控制了日 志信息的昄内容?/p>

3.1.定义配置文g

其实您也可以完全不用配|文Ӟ而是在代码中配置Log4j环境。但是,使用配置文g您的应用E序更加灉|?/p>

Log4j支持两种配置文g格式Q一U是XML格式的文Ӟ一U是JavaҎ文Ӟ?|。下面我们介l用JavaҎ文件做为配|文件的ҎQ?/p>

  1. 配置根LoggerQ其语法为:

    log4j.rootLogger = [ level ] , appenderName, appenderName, …

    其中Qlevel 是日志记录的优先U,分ؓOFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的别。Log4j只用四个别,? 先从高C分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的U别Q您可以控制到应用程序中相应U别的日志信息的开兟뀂比如在q里? 义了INFOU别Q则应用E序中所有DEBUGU别的日志信息将不被打印出来?
    appenderName是指定日志信息输出到哪个地斏V您可以同时指定多个输出目的地?
  2. 配置日志信息输出目的地AppenderQ其语法?
    log4j.appender.appenderName = fully.qualified.name.of.appender.class
    log4j.appender.appenderName.option1 = value1

    log4j.appender.appenderName.option = valueN
    其中QLog4j提供的appender有以下几U:
    org.apache.log4j.ConsoleAppenderQ控制台Q,
    org.apache.log4j.FileAppenderQ文ӞQ?
    org.apache.log4j.DailyRollingFileAppenderQ每天生一个日志文ӞQorg.apache.log4j.RollingFileAppenderQ文件大到达指定尺寸的时候生一个新的文ӞQ?
    org.apache.log4j.WriterAppenderQ将日志信息以流格式发送到L指定的地方)
  3. 配置日志信息的格式(布局Q,其语法ؓQ?
    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
    log4j.appender.appenderName.layout.option1 = value1

    log4j.appender.appenderName.layout.option = valueN
    其中QLog4j提供的layout有以下几U:
    org.apache.log4j.HTMLLayoutQ以HTML表格形式布局Q,
    org.apache.log4j.PatternLayoutQ可以灵zd指定布局模式Q,
    org.apache.log4j.SimpleLayoutQ包含日志信息的U别和信息字W串Q,
    org.apache.log4j.TTCCLayoutQ包含日志生的旉、线E、类别等{信息)

3.2.在代码中使用Log4j

下面讲q在E序代码中怎样使用Log4j?/p>

3.2.1.得到记录?/strong>

使用Log4jQ第一步就是获取日志记录器Q这个记录器负责控制日志信息。其语法为:

public static Logger getLogger( String name)Q?/p>

通过指定的名字获得记录器Q如果必要的话,则ؓq个名字创徏一个新的记录器。Name一般取本类的名字,比如Q?/p>

static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ;

3.2.2.d配置文g

当获得了日志记录器之后,W二步将配置Log4j环境Q其语法为:
BasicConfigurator.configure ()Q?自动快速地使用~省Log4j环境?
PropertyConfigurator.configure ( String configFilename) Q读取用Java的特性文件编写的配置文g?
DOMConfigurator.configure ( String filename ) Q读取XML形式的配|文件?

3.2.3.插入记录信息Q格式化日志信息Q?/strong>

当上两个必要步骤执行完毕Q您可以轻村֜使用不同优先U别的日志记录语句插入到您想记录日志的Q何地方,其语法如下:

Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;



参考资?

如果您想更深入地了解Log4jQ请l常讉K下面提及的相关链接?/p>

Log4j目主页------------------------------------------------------ www.log4j.org

Log4j FAQ ------------------------------------------------------- www.log4j.org/log4j/faq.html


关于作?/span>


葵贞,SCJPQSun Certified Java 2 ProgrammerQ,h7q国内国外知名企业工作经历,目前兴趣集中在对Java的C/S、B/S大型应用上,您可以通过 chinesemars@hotmail.com和他联系?



Jam Chan 2008-03-20 09:27 发表评论
]]>
【原创】编写Oracle存储q程Q按照条件把数据导出至XML文ghttp://m.tkk7.com/botson/archive/2008/03/19/187362.htmlJam ChanJam ChanWed, 19 Mar 2008 13:48:00 GMThttp://m.tkk7.com/botson/archive/2008/03/19/187362.htmlhttp://m.tkk7.com/botson/comments/187362.htmlhttp://m.tkk7.com/botson/archive/2008/03/19/187362.html#Feedback3http://m.tkk7.com/botson/comments/commentRss/187362.htmlhttp://m.tkk7.com/botson/services/trackbacks/187362.htmlpeople.xml
 1 <?xml version="1.0"?>
 2 <PEOPLE>
 3     <PERSON PERSONID="E01">
 4         <NAME>Tony Blair</NAME>
 5         <ADDRESS>10 Downing Street, London, UK</ADDRESS>
 6         <TEL>(061) 98765</TEL>
 7         <FAX>(061) 98768</FAX>
 8         <EMAIL>blair@everywhere.com</EMAIL>
 9     </PERSON>
10     <PERSON PERSONID="E02">
11         <NAME>Bill Clinton</NAME>
12         <ADDRESS>White House, USA</ADDRESS>
13         <TEL>(001) 6400 98765</TEL>
14         <FAX>(001) 6400 98769</FAX>
15         <EMAIL>bill@everywhere.com</EMAIL>
16     </PERSON>
17     <PERSON PERSONID="E03">
18         <NAME>Tom Cruise</NAME>
19         <ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
20         <TEL>(001) 4500 67859</TEL>
21         <FAX>(001) 4500 67895</FAX>
22         <EMAIL>cruise@everywhere.com</EMAIL>
23     </PERSON>
24     <PERSON PERSONID="E04">
25         <NAME>Linda Goodman</NAME>
26         <ADDRESS>78 Crax Lane, London, UK</ADDRESS>
27         <TEL>(061) 54 56789</TEL>
28         <FAX>(061) 54 56772</FAX>
29         <EMAIL>linda@everywhere.com</EMAIL>
30     </PERSON>
31 </PEOPLE>

我以scott用户ZQ新Q?br />
1 CREATE TABLE PEOPLE
2 (
3   PERSONID VARCHAR2(4PRIMARY KEY,
4   NAME VARCHAR2(50),
5   ADDRESS VARCHAR2(200),
6   TEL VARCHAR2(20),
7   FAX VARCHAR2(20),
8   EMAIL VARCHAR2(100)
9 );

假设表里面已l有数据Q如果想从XML插入数据L【原创】编写Oracle存储q程解析XMLQƈ把数据持久化

以下是把查询l果生成XML文g的存储过E代码:
 1 /**
 2 *sqlStr        附加的查询条?nbsp;如:where PERSONID = 'E01',查询所有输?'
 3 *file_path     文g保存路径   如:D:\OracleTest\outpeople.xml
 4 **/
 5 CREATE OR REPLACE PROCEDURE OUTPUTPEOPLE(sqlStr VARCHAR2,file_path VARCHAR2)
 6 AS
 7     personRow PEOPLE%ROWTYPE;      --获取游标的行变量
 8     TYPE person_cur IS REF CURSOR--自定义REF游标
 9     cur person_cur;    
10     tempSql varchar2(500) := 'SELECT * FROM PEOPLE ';       --初始的查询语?/span>
11     doc xmlDom.DOMDocument := xmldom.newDOMDocument;        -- 创徏文对象
12     main_node xmlDom.DOMNode := xmldom.makeNode(doc);       -- 获得文节点
13     root_elmt xmlDom.DOMElement:= xmldom.createElement(doc, 'PEOPLE');   -- 创徏根元?/span>
14     --==================================================
15     --以下定义元素
16     person_elmt xmlDom.DOMElement;      --定义PERSON元素
17     name_elmt xmlDom.DOMElement;      --定义NAME元素
18     address_elmt xmlDom.DOMElement;      --定义ADDRESS元素
19     tel_elmt xmlDom.DOMElement;           --定义TEL元素    
20     email_elmt xmlDom.DOMElement;      --定义EMAIL元素    
21     --==================================================
22     --以下定义节点
23     root_node xmlDom.DOMNode;   --定义PEOPLE节点
24     person_node xmlDom.DOMNode;   --定义PERSON节点
25     name_node xmlDom.DOMNode;   --定义NAME节点
26     address_node xmlDom.DOMNode;   --定义ADDRESS节点
27     tel_node xmlDom.DOMNode;   --定义TEL节点
28     email_node xmlDom.DOMNode;   --定义EMAIL节点
29     temp_node xmlDom.DOMNode;
30 BEGIN
31     -- 向文节点加入根节点:<PEOPLE></PEOPLE>
32     root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));
33     --附加查询条g
34     tempSql := tempSql||sqlStr;
35     --打开游标
36     OPEN cur FOR tempSql;
37     --遍历游标
38     LOOP
39       FETCH cur INTO personRow;
40       EXIT WHEN cur%NOTFOUND;
41       --===========================================================================--
42       person_elmt := xmldom.createElement(doc, 'PERSON'); --创徏PERSON元素
43       -- 向PEOPLE节点加入PERSON节点<PERSON></PERSON>
44       person_node := xmldom.appendChild(root_node, xmldom.makeNode(person_elmt));
45       --===========================================================================--
46       --向PERSON节点加入属性PERSONID
47       xmlDom.SETATTRIBUTE( person_elmt, 'PERSONID', personRow.personId );
48       --===========================================================================--
49       name_elmt := xmldom.createElement(doc, 'NAME');      --创徏NAME元素
50       --向PERSON节点加入子节点NAME
51       name_node := xmldom.appendChild(person_node,xmlDom.makeNode(name_elmt));
52       --向NAME节点加入文本
53       temp_node := xmldom.appendChild(name_node , xmlDom.makeNode(xmldom.createTextNode(doc,personRow.name)));
54       --===========================================================================--
55       address_elmt := xmldom.createElement(doc, 'ADDRESS');      --创徏ADDRESS元素
56       --向PERSON节点加入子节点ADDRESS
57       address_node := xmldom.appendChild(person_node,xmlDom.makeNode(address_elmt));
58       --向ADDRESS节点加入文本
59       temp_node := xmldom.appendChild(address_node, xmlDom.makeNode(xmldom.createTextNode(doc,personRow.address)));
60       --===========================================================================--
61       tel_elmt := xmldom.createElement(doc, 'TEL');      --创徏TEL元素    
62       --向TEL节点加入子节点NAME
63       tel_node := xmldom.appendChild(person_node,xmlDom.makeNode(tel_elmt));
64       --向TEL节点加入文本
65       temp_node := xmldom.appendChild(tel_node, xmlDom.makeNode(xmldom.createTextNode(doc,personRow.tel)));
66       --===========================================================================--
67       email_elmt := xmldom.createElement(doc, 'EMAIL');      --创徏EMAIL元素    
68       --向PERSON节点加入子节点EMAIL
69       email_node := xmldom.appendChild(person_node,xmlDom.makeNode(email_elmt));
70       --向EMAIL节点加入文本
71       temp_node := xmldom.appendChild(email_node, xmlDom.makeNode(xmldom.createTextNode(doc,personRow.email)));
72       --===========================================================================--
73     END LOOP;
74     CLOSE cur;
75     --写入盘
76     xmlDom.writeToFile(doc,file_path,'GBK');
77   EXCEPTION
78    WHEN OTHERS THEN
79      DBMS_output.PUT_LINE(SQLERRM);
80 END OUTPUTPEOPLE;







Jam Chan 2008-03-19 21:48 发表评论
]]>
【原创】编写Oracle存储q程解析XMLQƈ把数据持久化http://m.tkk7.com/botson/archive/2008/03/19/187360.htmlJam ChanJam ChanWed, 19 Mar 2008 13:40:00 GMThttp://m.tkk7.com/botson/archive/2008/03/19/187360.htmlhttp://m.tkk7.com/botson/comments/187360.htmlhttp://m.tkk7.com/botson/archive/2008/03/19/187360.html#Feedback19http://m.tkk7.com/botson/comments/commentRss/187360.htmlhttp://m.tkk7.com/botson/services/trackbacks/187360.htmlpeople.xml
 1 <?xml version="1.0"?>
 2 <PEOPLE>
 3     <PERSON PERSONID="E01">
 4         <NAME>Tony Blair</NAME>
 5         <ADDRESS>10 Downing Street, London, UK</ADDRESS>
 6         <TEL>(061) 98765</TEL>
 7         <FAX>(061) 98768</FAX>
 8         <EMAIL>blair@everywhere.com</EMAIL>
 9     </PERSON>
10     <PERSON PERSONID="E02">
11         <NAME>Bill Clinton</NAME>
12         <ADDRESS>White House, USA</ADDRESS>
13         <TEL>(001) 6400 98765</TEL>
14         <FAX>(001) 6400 98769</FAX>
15         <EMAIL>bill@everywhere.com</EMAIL>
16     </PERSON>
17     <PERSON PERSONID="E03">
18         <NAME>Tom Cruise</NAME>
19         <ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
20         <TEL>(001) 4500 67859</TEL>
21         <FAX>(001) 4500 67895</FAX>
22         <EMAIL>cruise@everywhere.com</EMAIL>
23     </PERSON>
24     <PERSON PERSONID="E04">
25         <NAME>Linda Goodman</NAME>
26         <ADDRESS>78 Crax Lane, London, UK</ADDRESS>
27         <TEL>(061) 54 56789</TEL>
28         <FAX>(061) 54 56772</FAX>
29         <EMAIL>linda@everywhere.com</EMAIL>
30     </PERSON>
31 </PEOPLE>

我以scott用户ZQ新Q?br />
1 CREATE TABLE PEOPLE
2 (
3   PERSONID VARCHAR2(4PRIMARY KEY,
4   NAME VARCHAR2(50),
5   ADDRESS VARCHAR2(200),
6   TEL VARCHAR2(20),
7   FAX VARCHAR2(20),
8   EMAIL VARCHAR2(100)
9 );

解析q持久化的存储过E代码:
 1 /**
 2 *file_path     需要解析的XML文g路径 如:D:\OracleTest\people.xml
 3 *log_path      保存日志的文件的路径  ? D:\OracleTest\xmllog.txt
 4 **/
 5 
 6 CREATE OR REPLACE PROCEDURE addPerson(file_path VARCHAR2,log_path VARCHAR2)
 7 AS
 8 --//XML解析?/span>
 9 xmlPar XMLPARSER.parser := XMLPARSER.NEWPARSER;
10 --//DOM文对象
11 doc xmldom.DOMDocument;
12 len integer;
13 personNodes xmldom.DOMNodeList;
14 chilNodes xmldom.DOMNodeList;
15 tempNode xmldom.DOMNode;
16 tempArrMap xmldom.DOMNamedNodeMap;
17 --================================
18 --以下变量用于获取XML节点的?/span>
19 pid varchar2(4);
20 name varchar2(50);
21 address varchar2(200);
22 tel varchar2(20);
23 fax varchar2(20);
24 email varchar(100);
25 tmp integer;
26 --================================
27 BEGIN
28   xmlPar := xmlparser.newParser;
29   xmlparser.setErrorLog( xmlPar, log_path);
30   xmlparser.parse(xmlPar, file_path);
31   doc := xmlparser.getDocument( xmlPar );  
32   -- 释放解析器实?/span>
33   xmlparser.freeParser(xmlPar);
34   -- 获取所有PERSON元素
35   personNodes := xmldom.getElementsByTagName( doc, 'PERSON' );
36   len := xmldom.getLength( personNodes );
37   --遍历所有PERSON元素
38   FOR i in 0..len-1
39   LOOP
40     --获取Wi个PERSON
41     tempNode := xmldom.item( personNodes, i );
42     --所有属?/span>
43     tempArrMap := xmldom.getAttributes(tempNode);
44     --获取PERSONID的?/span>
45     pid := xmldom.getNodeValue(xmldom.getNamedItem(tempArrMap,'PERSONID'));
46     --获取子元素的?/span>
47     chilNodes := xmldom.getChildNodes(tempNode);
48     tmp := xmldom.GETLENGTH( chilNodes );
49     name := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 0 )));
50     address := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 1 )));
51     tel := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 2 )));
52     fax := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 3 )));
53     email := xmldom.getNodeValue(xmldom.getFirstChild(xmldom.item( chilNodes, 4 )));
54     --插入数据
55     INSERT INTO PEOPLE VALUES (pid,name,address,tel,fax,email);
56     COMMIT;
57   END LOOP;
58   -- 释放文对象
59   xmldom.freeDocument(doc);
60   EXCEPTION
61    WHEN OTHERS THEN
62      DBMS_output.PUT_LINE(SQLERRM);
63 END addPerson;


有许多朋友都说执行时出现错误Q现在我把我在Oracle9i使用的截图脓出来Q以作参考:


存储q程截图

Jam Chan 2008-03-19 21:40 发表评论
]]>
վ֩ģ壺 ޾Ʒ91רֻ| һƵۿ| þþƷav| һҹߴ| 鶹˴ýѹۿ| ձ޸߹ۿ| ޵av| þù޾Ʒ鶹| ޾ƷƬ߹ۿ| ŮоƷƵվ| ̼aƬվ| ԺѵȫƵ| ߹ۿ| ޹Ʒۿþ| С˵ͼƬƵ| 337pձŷ޴ɫ| һӰԺ| þþƷ5555| ߾ƷƵ| һɫþ88ۺ| ѱվڹۿ| պһaƬѹۿ | ŷƵ| ҹƵѹۿ| APPѹۿƵ| յӰ߲Ѱ| ޾ƷɫƵ߹ۿԴ| ѹva߹ۿ| ŮվɫƵ| ѾƷԲ߹ۿ | þþþþѹۿ| yyƵ| ѿƵվ| AVվ| vƬѹۿƵ| 97ѹۿƵ߹ۿ| ǵ2018߹ۿѸ| ѸƵ| ߹ۿĶ| žӰ߹ۿѸ| ҹƵ|