??xml version="1.0" encoding="utf-8" standalone="yes"?>动漫成人在线观看,黄视频在线观看免费,免费h视频在线观看http://www.aygfsteel.com/asdtiang/category/43300.html交流学习JAVA zh-cnThu, 10 Mar 2011 07:20:29 GMTThu, 10 Mar 2011 07:20:29 GMT60s2sh目整合ehcache面~存http://www.aygfsteel.com/asdtiang/archive/2011/03/08/345946.htmlasdtiangasdtiangTue, 08 Mar 2011 07:23:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2011/03/08/345946.htmlhttp://www.aygfsteel.com/asdtiang/comments/345946.htmlhttp://www.aygfsteel.com/asdtiang/archive/2011/03/08/345946.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/345946.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/345946.html 本h用的是s2sh开发网站,整合了urlrewrite.其实最后页面\径配|时也是用的struts2的\径?br /> |上的比较多的就是直接给出配|文件?br />
首先|上查了下,ehcache和oscacheQ上相应的官|查看,发现oscache?7q以后就没更新过Q不知道是改名字了,q是其它原因Q最后采用了ehcache做页面缓?br />
配置可以参考官斚w面:http://ehcache.org/documentation/web_caching.html

web里面配置如下Q?br />
 <filter>
    
<filter-name>CachePage1CachingFilter</filter-name>
    
<filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
    
</filter-class>
    
<init-param>
      
<param-name>suppressStackTraces</param-name>
      
<param-value>false</param-value>
    
</init-param>
    
<init-param>
      
<param-name>cacheName</param-name>
      
<param-value>CachePage1CachingFilter</param-value>
    
</init-param>
  
</filter>

  
<filter>
    
<filter-name>SimplePageFragmentCachingFilter</filter-name>
    
<filter-class>net.sf.ehcache.constructs.web.filter.SimplePageFragmentCachingFilter
    
</filter-class>
    
<init-param>
      
<param-name>suppressStackTraces</param-name>
      
<param-value>false</param-value>
    
</init-param>
    
<init-param>
      
<param-name>cacheName</param-name>
      
<param-value>SimplePageFragmentCachingFilter</param-value>
    
</init-param>
  
</filter>

  
<filter>
    
<filter-name>SimpleCachingHeadersPageCachingFilter</filter-name>
    
<filter-class>net.sf.ehcache.constructs.web.filter.SimpleCachingHeadersPageCachingFilter
    
</filter-class>
    
<init-param>
      
<param-name>suppressStackTraces</param-name>
      
<param-value>false</param-value>
    
</init-param>
    
<init-param>
      
<param-name>cacheName</param-name>
      
<param-value>CachedPage2Cache</param-value>
    
</init-param>

  
</filter>

  
<!-- This is a filter chain. They are executed in the order below.
  Do not change the order. 
-->
  
<filter-mapping>
    
<filter-name>CachePage1CachingFilter</filter-name>
    
<url-pattern>/CachedPage.jsp</url-pattern>
    
<dispatcher>REQUEST</dispatcher>
    
<dispatcher>INCLUDE</dispatcher>
    
<dispatcher>FORWARD</dispatcher>
  
</filter-mapping>

  
<filter-mapping>
    
<filter-name>SimplePageFragmentCachingFilter</filter-name>
    
<url-pattern>/include/Footer.jsp</url-pattern>
  
</filter-mapping>

  
<filter-mapping>
    
<filter-name>SimplePageFragmentCachingFilter</filter-name>
    
<url-pattern>/fragment/CachedFragment.jsp</url-pattern>
  
</filter-mapping>

  
<filter-mapping>
    
<filter-name>SimpleCachingHeadersPageCachingFilter</filter-name>
    
<url-pattern>/CachedPage2.jsp</url-pattern>
  
</filter-mapping>
ehcache.xml文g要放在src下面?br />
<Ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation
="../../main/config/ehcache.xsd">

    
<diskStore path="java.io.tmpdir"/>


    
<defaultCache
            
maxElementsInMemory="10"
            eternal
="false"
            timeToIdleSeconds
="5"
            timeToLiveSeconds
="10"
            overflowToDisk
="true"
            
/>



    
<!-- Page and Page Fragment Caches -->

    
<cache name="CachePage1CachingFilter"
           maxElementsInMemory
="10"
           eternal
="false"
           timeToIdleSeconds
="10000"
           timeToLiveSeconds
="10000"
           overflowToDisk
="true">
    
</cache>

    
<cache name="CachedPage2Cache"
           maxElementsInMemory
="10"
           eternal
="false"
           timeToLiveSeconds
="3600"
           overflowToDisk
="true">
    
</cache>

    
<cache name="SimplePageFragmentCachingFilter"
           maxElementsInMemory
="10"
           eternal
="false"
           timeToIdleSeconds
="10000"
           timeToLiveSeconds
="10000"
           overflowToDisk
="true">
    
</cache>

    
<cache name="SimpleCachingHeadersTimeoutPageCachingFilter"
           maxElementsInMemory
="10"
           eternal
="false"
           timeToIdleSeconds
="10000"
           timeToLiveSeconds
="10000"
           overflowToDisk
="true">
    
</cache>

</ehcache>

现在的问题是有些面要更斎ͼ在内存或者硬盘上的数据需要更斎ͼ而且是实时的。应该怎么办,|上多的也是对象的操作,基本没有~存面的操作?br /> 首先说下~存面的大概方法?br /> ehcache.xml里面对应web.xmlQname都一LQ比如一个具体\径,show.action?showId=1,配置如下Q?br />  <filter-mapping>
    <filter-name>show</filter-name>
   <url-pattern>/show.action</url-pattern>
  </filter-mapping>
取前面的部分可以了。对应ehcache.xml配置Q?br />

<!--

            maxElementsInMemory="10"内存中的最大页面对?br />             eternal="false"
            timeToIdleSeconds="120"   timeToIdleSeconds Q多长时间不讉K该缓存,那么ehcache ׃清除该缓存?nbsp;          
            timeToLiveSeconds="240" timeToLiveSeconds Q缓存的存活旉Q从开始创建的旉v?br />             overflowToDisk="true"     是否写入盘


-->
    <!-- Page and Page Fragment Caches -->

    <cache name="show"
           maxElementsInMemory="10"
           eternal="false"
           timeToIdleSeconds="30"
           timeToLiveSeconds="60"
           overflowToDisk="true">
    </cache>

q里只有一个cache,在ehcache卛_应一个Ehcache对象,由CacheManagerQ单例模式实玎ͼȝ理,在CacheManager里用配置文g中的name可以获取Ehcache对象的实例?br /> 代码如下:
Ehcache cache = CacheManager.getInstance().getEhcache(cacheName);

展示面有很多,比如一个商家一个展C页面,即show.action?showId=1后面的数字是可变的,在ehcache里面是用mapd储的Q比如show.action?showId=1对应的key为:
GET/show.actionshowId=1
GET问方式,把问号去掉了Qehcache内部也是q样存储的(cMmapQ,q样保证了请求的面在内存中的唯一性,获取也快?br /> 既然key都知道了Q删除就好了Q直?查看api文档Ehcache里有很多removeҎ。示例代码如下:
Ehcache cache = CacheManager.getInstance().getEhcache(cacheName);
  if (null == cache) {
   return;
  }
  cache.remove(key);

key的获取就不用多说了吧Q当更新一个页面的数据Ӟ肯定知道数据的idQ直接字W串处理下就可以获取key了,q里注意下就是,代码~写Ӟ一般url里都有项目的名字Q正式发布时Q肯定没有,而前者在ehcache里生成key里有目的名字,卻I
GET/projetName/show.actionshowId=1
所以最好用spring注入|到时改也方便?br />
更详l的Q请查看api文档和测试下Q官Ҏ档给的都是对象的Q页面缓存的l的比较,我也是查看源码才得出上面代码?br /> C下,希望帮助有需求的人?br />




asdtiang 2011-03-08 15:23 发表评论
]]>
json和xml在传输数据上的区?/title><link>http://www.aygfsteel.com/asdtiang/archive/2011/01/07/342507.html</link><dc:creator>asdtiang</dc:creator><author>asdtiang</author><pubDate>Fri, 07 Jan 2011 06:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/asdtiang/archive/2011/01/07/342507.html</guid><wfw:comment>http://www.aygfsteel.com/asdtiang/comments/342507.html</wfw:comment><comments>http://www.aygfsteel.com/asdtiang/archive/2011/01/07/342507.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/asdtiang/comments/commentRss/342507.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/asdtiang/services/trackbacks/342507.html</trackback:ping><description><![CDATA[先记一下,当跨域访问时Q只有css和js不会弹出安全提示Qjson是基于js的,xml不是Q所以用json不会弹出提示框,xml会弹出提C框? <img src ="http://www.aygfsteel.com/asdtiang/aggbug/342507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/asdtiang/" target="_blank">asdtiang</a> 2011-01-07 14:06 <a href="http://www.aygfsteel.com/asdtiang/archive/2011/01/07/342507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 sitemesh装饰面不能使用struts标签解决办法http://www.aygfsteel.com/asdtiang/archive/2010/11/03/336936.htmlasdtiangasdtiangWed, 03 Nov 2010 07:52:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/11/03/336936.htmlhttp://www.aygfsteel.com/asdtiang/comments/336936.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/11/03/336936.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/336936.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/336936.html 我的目是struts2.1.8的,郁闷的很Q在装饰面不能使用struts的标{?br /> 看了|上没找到好的解军_法,是官网上去Q首先升Ustruts?.2.1Q然后参照文档就可以了:
<filter>
        
<filter-name>struts-prepare</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
    
</filter>

    
<filter>
        
<filter-name>struts-execute</filter-name>
        
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
    
</filter>


    
<filter>
        
<filter-name>sitemesh</filter-name>
        
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
    
</filter>

    
<filter-mapping>
        
<filter-name>struts-prepare</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>

    
<filter-mapping>
        
<filter-name>sitemesh</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>

    
<filter-mapping>
        
<filter-name>struts-execute</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
再刷C面Q出来了


asdtiang 2010-11-03 15:52 发表评论
]]>
struts2.1.8 action提交q解决办法http://www.aygfsteel.com/asdtiang/archive/2010/04/15/318386.htmlasdtiangasdtiangThu, 15 Apr 2010 02:33:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/04/15/318386.htmlhttp://www.aygfsteel.com/asdtiang/comments/318386.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/04/15/318386.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/318386.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/318386.html <s:url id="del" value="editView.action">
      <s:param name="name">
       <s:property value="name" />        ///q里会提交UTF-8~码
      </s:param>
 </s:url>
记得以前好像写过Q不q不知道攑֓里,今天用struts2.1.8+spring+hibernate做开发时Q又遇到q个问题Q写出来吧,下次好找Q?br /> 面~码讄成UTF-8Q如何提交的中文?#8221;青云?#8220;,提交到action里变成了Q?img alt="" src="http://www.aygfsteel.com/images/blogjava_net/asdtiang/ffff.jpg" />   38738其实是UTF-8~码Q自己写了一个类q行转化一个就行了?br />
public class MyConverter {

    
private static MyConverter myConverter;

    
private StringBuffer str;
    
private char[] ch;

    
private MyConverter() {

    }

    
public static MyConverter getMyConverter() {

        
if (myConverter == null) {
            myConverter 
= new MyConverter();
        }
        
return myConverter;

    }

    
public String converter(String str3) {

        
if(str3==null){
            
return "";
        }
        str
=new StringBuffer();
        str.append(
"");
        ch
=str3.toCharArray();
        
for (int i = 0; i < ch.length; i++) {
            
            
if(ch[i]=='&'){
                
if(ch[i+1]=='#')
                {                
                    str.append(Character.toChars(Integer.parseInt(
new String(ch,i+2,5))));
                    i
+=7;
                }
                
else{
                    str.append(ch[i]);
                }
            }
            
else{
                str.append(ch[i]);
            }    
        }
        
return str.toString();
    }
}






使用Ӟ在action中,可能有中文提交的地方转化一下就行了?br />  MyConverter my = MyConverter.getMyConverter();
this.userName = my.converter(this.userName);

asdtiang 2010-04-15 10:33 发表评论
]]>
struts2.1.8 +spring +hibernate整合及DWR异步提交http://www.aygfsteel.com/asdtiang/archive/2010/04/12/318045.htmlasdtiangasdtiangMon, 12 Apr 2010 05:07:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/04/12/318045.htmlhttp://www.aygfsteel.com/asdtiang/comments/318045.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/04/12/318045.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/318045.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/318045.html<?xml version="1.0" encoding="UTF-8"?>...  阅读全文

asdtiang 2010-04-12 13:07 发表评论
]]>
Spring 中常用的hql查询Ҏ(getHibernateTemplate())(?http://www.aygfsteel.com/asdtiang/archive/2010/04/12/318044.htmlasdtiangasdtiangMon, 12 Apr 2010 04:32:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/04/12/318044.htmlhttp://www.aygfsteel.com/asdtiang/comments/318044.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/04/12/318044.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/318044.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/318044.html一、find(String queryString);

      CZQthis.getHibernateTemplate().find(”from bean.User”);

      q回所有User对象

二、find(String queryString , Object value);

      CZQthis.getHibernateTemplate().find(”from bean.User u where u.name=?”, “test”);

      或模p查询:this.getHibernateTemplate().find(”from bean.User u where u.name like ?”, “%test%”);

      q回name属性gؓtest的对象(模糊查询Q返回name属性值包含test的对象)

三、find(String queryString, Object[] values);

      CZQString hql= “from bean.User u where u.name=? and u.password=?”

                this.getHibernateTemplate().find(hql, new String[]{”test”, “123″});

      q回用户名ؓtestq且密码?23的所有User对象

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?/p>

四、findByExample(Object exampleEntity)

      CZQ?/p>

             User u=new User();    

             u.setPassword(”123″);//必须 W合的条件但是这两个条g时ƈ列的Q象当于sql中的andQ?nbsp;   

             u.setName(”bb”);    

             list=this.getHibernateTemplate().findByExample(u,start,max);  

      q回Q用户名为bb密码?23的对?/p>

五、findByExample(Object exampleEntity, int firstResult, int maxResults)

      CZQ?/p>

            User u=new User();    

            u.setPassword(”123″);//必须 W合的条件但是这两个条g时ƈ列的Q象当于sql中的andQ?nbsp;   

            u.setName(”bb”);    

            list=this.getHibernateTemplate().findByExample(u,start,max);    

      q回Q满用户名为bb密码?23Q自start起共max个User对象。(对象?开始计敎ͼ

————————————————?/p>

六、findByNamedParam(String queryString , String paramName , Object value)

    使用以下语句查询Q?nbsp;

         String queryString = “select count(*) from bean.User u where u.name=:myName”; 

         String paramName= “myName”;

         String value= “xiyue”;

this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); 

         System.out.println(list.get(0)); 

     q回name为xiyue的User对象的条?/p>

七、findByNamedParam(String queryString , String[] paramName , Object[] value)

      CZQ?/p>

         String queryString = “select count(*) from bean.User u where u.name=:myName and u.password=:myPassword”; 

         String[] paramName= new String[]{”myName”, “myPassword”};

         String[] value= new String[]{”xiyue”, “123″};

this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

         q回用户名ؓxiyue密码?23的User对象

八、findByNamedQuery(String queryName)

      CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryAllUser”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

this.getHibernateTemplate().findByNamedQuery(”queryAllUser”);

九、findByNamedQuery(String queryName, Object value)

      CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByName”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name = ?

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

this.getHibernateTemplate().findByNamedQuery(”queryByName”, “test”);

十、findByNamedQuery(String queryName, Object[] value)

      CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByNameAndPassword”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =? and u.password =?

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

             String[] values= new String[]{”test”, “123″};

this.getHibernateTemplate().findByNamedQuery(”queryByNameAndPassword” , values);

十一、findByNamedQueryAndNamedParam(String queryName, String paramName, Object value) 

CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByName”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =:myName

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

this.getHibernateTemplate().findByNamedQuery(”queryByName” , “myName”, “test”);

十二、findByNamedQueryAndNamedParam(String queryName, String[] paramName, Object[] value) 

CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByNameAndPassword”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =:myName and u.password=:myPassword

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

             String[] names= new String[]{”myName”, “myPassword”};

             String[] values= new String[]{”test”, “123″};

this.getHibernateTemplate().findByNamedQuery(”queryByNameAndPassword” , names, values);

十三、findByValueBean(String queryString , Object value);

CZQ?/p>

      1、定义一个ValueBeanQ属性名必须和HSQL语句中的Q后面的变量名同名,此处必须臛_有两个属性,分别为myName? myPasswordQ用setterҎ讄属性值后

          ValueBean valueBean= new ValueBean();

          valueBean.setMyName(”test”);

          valueBean.setMyPasswrod(”123″);

      2?/p>

          String queryString= “from bean.User u where u.name=:myName and u.password=:myPassword”;

          this.getHibernateTemplate().findByValueBean(queryString , valueBean);

十四、findByNamedQueryAndValueBean(String queryName , Object value);

CZQ?/p>

       1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByNameAndPassword”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =:myName and u.password=:myPassword

                        ]]>

                  </query>

             </hibernate-mapping>

      2、定义一个ValueBeanQ属性名必须和User.hbm.xml命名查询语句中的Q后面的变量名同名,此处必须臛_有两个属性,分别? myName和myPasswordQ用setterҎ讄属性值后

          ValueBean valueBean= new ValueBean();

          valueBean.setMyName(”test”);

          valueBean.setMyPasswrod(”123″);

      3?/p>

          String queryString= “from bean.User u where u.name=:myName and u.password=:myPassword”;

          this.getHibernateTemplate().findByNamedQueryAndValueBean(”queryByNameAndPassword”, valueBean);

一、find(String queryString);

      CZQthis.getHibernateTemplate().find(”from bean.User”);

      q回所有User对象

二、find(String queryString , Object value);

      CZQthis.getHibernateTemplate().find(”from bean.User u where u.name=?”, “test”);

      或模p查询:this.getHibernateTemplate().find(”from bean.User u where u.name like ?”, “%test%”);

      q回name属性gؓtest的对象(模糊查询Q返回name属性值包含test的对象)

三、find(String queryString, Object[] values);

      CZQString hql= “from bean.User u where u.name=? and u.password=?”

                this.getHibernateTemplate().find(hql, new String[]{”test”, “123″});

      q回用户名ؓtestq且密码?23的所有User对象

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?/p>

四、findByExample(Object exampleEntity)

      CZQ?/p>

             User u=new User();    

             u.setPassword(”123″);//必须 W合的条件但是这两个条g时ƈ列的Q象当于sql中的andQ?nbsp;   

             u.setName(”bb”);    

             list=this.getHibernateTemplate().findByExample(u,start,max);  

      q回Q用户名为bb密码?23的对?/p>

五、findByExample(Object exampleEntity, int firstResult, int maxResults)

      CZQ?/p>

            User u=new User();    

            u.setPassword(”123″);//必须 W合的条件但是这两个条g时ƈ列的Q象当于sql中的andQ?nbsp;   

            u.setName(”bb”);    

            list=this.getHibernateTemplate().findByExample(u,start,max);    

      q回Q满用户名为bb密码?23Q自start起共max个User对象。(对象?开始计敎ͼ

————————————————?/p>

六、findByNamedParam(String queryString , String paramName , Object value)

    使用以下语句查询Q?nbsp;

         String queryString = “select count(*) from bean.User u where u.name=:myName”; 

         String paramName= “myName”;

         String value= “xiyue”;

this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); 

         System.out.println(list.get(0)); 

     q回name为xiyue的User对象的条?/p>

七、findByNamedParam(String queryString , String[] paramName , Object[] value)

      CZQ?/p>

         String queryString = “select count(*) from bean.User u where u.name=:myName and u.password=:myPassword”; 

         String[] paramName= new String[]{”myName”, “myPassword”};

         String[] value= new String[]{”xiyue”, “123″};

this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);

         q回用户名ؓxiyue密码?23的User对象

八、findByNamedQuery(String queryName)

      CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryAllUser”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

this.getHibernateTemplate().findByNamedQuery(”queryAllUser”);

九、findByNamedQuery(String queryName, Object value)

      CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByName”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name = ?

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

this.getHibernateTemplate().findByNamedQuery(”queryByName”, “test”);

十、findByNamedQuery(String queryName, Object[] value)

      CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByNameAndPassword”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =? and u.password =?

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

             String[] values= new String[]{”test”, “123″};

this.getHibernateTemplate().findByNamedQuery(”queryByNameAndPassword” , values);

十一、findByNamedQueryAndNamedParam(String queryName, String paramName, Object value) 

CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByName”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =:myName

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

this.getHibernateTemplate().findByNamedQuery(”queryByName” , “myName”, “test”);

十二、findByNamedQueryAndNamedParam(String queryName, String[] paramName, Object[] value) 

CZQ?/p>

        1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByNameAndPassword”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =:myName and u.password=:myPassword

                        ]]>

                  </query>

             </hibernate-mapping>

         2、如下用查询:

             String[] names= new String[]{”myName”, “myPassword”};

             String[] values= new String[]{”test”, “123″};

this.getHibernateTemplate().findByNamedQuery(”queryByNameAndPassword” , names, values);

十三、findByValueBean(String queryString , Object value);

CZQ?/p>

      1、定义一个ValueBeanQ属性名必须和HSQL语句中的Q后面的变量名同名,此处必须臛_有两个属性,分别为myName? myPasswordQ用setterҎ讄属性值后

          ValueBean valueBean= new ValueBean();

          valueBean.setMyName(”test”);

          valueBean.setMyPasswrod(”123″);

      2?/p>

          String queryString= “from bean.User u where u.name=:myName and u.password=:myPassword”;

          this.getHibernateTemplate().findByValueBean(queryString , valueBean);

十四、findByNamedQueryAndValueBean(String queryName , Object value);

CZQ?/p>

       1、首先需要在User.hbm.xml中定义命名查?/p>

             <hibernate-mapping>

                  <class>……</class>

                  <query name=”queryByNameAndPassword”><!–此查询被调用的名?#8211;>

                       <![CDATA[

                            from bean.User u where u.name =:myName and u.password=:myPassword

                        ]]>

                  </query>

             </hibernate-mapping>

      2、定义一个ValueBeanQ属性名必须和User.hbm.xml命名查询语句中的Q后面的变量名同名,此处必须臛_有两个属性,分别? myName和myPasswordQ用setterҎ讄属性值后

          ValueBean valueBean= new ValueBean();

          valueBean.setMyName(”test”);

          valueBean.setMyPasswrod(”123″);

      3?/p>

          String queryString= “from bean.User u where u.name=:myName and u.password=:myPassword”;

          this.getHibernateTemplate().findByNamedQueryAndValueBean(”queryByNameAndPassword”, valueBean);



asdtiang 2010-04-12 12:32 发表评论
]]>
eclipse整合myeclipse8.0http://www.aygfsteel.com/asdtiang/archive/2010/03/21/316101.htmlasdtiangasdtiangSun, 21 Mar 2010 15:24:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/03/21/316101.htmlhttp://www.aygfsteel.com/asdtiang/comments/316101.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/03/21/316101.html#Feedback2http://www.aygfsteel.com/asdtiang/comments/commentRss/316101.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/316101.html
试了下Q?nbsp;   MyEclipse Enterprise Workbench    8.0.0.me200911192202-7a7Z-AEAjd9xel_OmPWSXgPz00jf不能安装Q?br />
spring ,struts,hibernate,都能安装
  MyEclipse Standalone Modules    下面的都能安?br /> 不过最好选自己需要的插gp了,多了也没用?br />
3?整合FLEX3?也是可以的?br />
截点囑֐Q?br />




asdtiang 2010-03-21 23:24 发表评论
]]>
JSP容器的初始化和销毁(转)http://www.aygfsteel.com/asdtiang/archive/2010/03/13/315345.htmlasdtiangasdtiangSat, 13 Mar 2010 15:01:00 GMThttp://www.aygfsteel.com/asdtiang/archive/2010/03/13/315345.htmlhttp://www.aygfsteel.com/asdtiang/comments/315345.htmlhttp://www.aygfsteel.com/asdtiang/archive/2010/03/13/315345.html#Feedback0http://www.aygfsteel.com/asdtiang/comments/commentRss/315345.htmlhttp://www.aygfsteel.com/asdtiang/services/trackbacks/315345.htmlServletContext ?Servlet E序用来?Web 容器通信。例如写日志Q{发请求。每一?Web 应用E序含有一个ContextQ被Web应用内的各个E序׃n。因为Context可以用来保存资源q且׃nQ所以我所知道? ServletContext 的最大应用是Web~存----把不l常更改的内容读入内存,所以服务器响应h的时候就不需要进行慢速的盘I/O了?

ServletContextListener ?ServletContext 的监听者,如果 ServletContext 发生变化Q如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 要被销毁?

在JSP文g中,application ?ServletContext 的实例,由JSP容器默认创徏。Servlet 中调? getServletContext()Ҏ得到 ServletContext 的实例?

我们使用~存的思\大概是:

  1. 服务器启动时QServletContextListener ? contextInitialized()Ҏ被调用,所以在里面创徏好缓存。可以从文g中或者从数据库中d取缓存内容生成类Q用 ervletContext.setAttribute()Ҏ缓存类保存?ServletContext 的实例中?

  2. E序使用 ServletContext.getAttribute()d~存。如果是 JSPQ用a pplication.getAttribute()。如果是 ServletQ? getServletContext().getAttribute()。如果缓存发生变?如访问计?Q你可以同时更改~存和文?数据库。或者你{? 变化U篏C定程序再保存Q也可以在下一步保存?

  3. 服务器将要关闭时QServletContextListener ? contextDestroyed()Ҏ被调用,所以在里面保存~存的更攏V将更改后的~存保存回文件或者数据库Q更新原来的内容?


在Struts中实现系l的初始化工?/span>

在Struts中,我们可以写一个Servlet让它l承于ActionServletq覆 盖其init()ҎQ然后修改web.xml文g的Struts启动相关配置来达到目的?nbsp; 

Java代码
  1. package fangwei.servlet;  
  2.   
  3. import javax.servlet.ServletException;  
  4. import org.apache.struts.action.ActionServlet;  
  5.   
  6. /** 
  7.  * p? l唯一的ServletcBaseServlet<br> 
  8.  * 完成pȝ初始化的工作 
  9.  */  
  10. public class BaseServlet extends ActionServlet {  
  11.   
  12.     private static final long serialVersionUID = -4743066925691800288L;  
  13.   
  14.     @Override  
  15.     /* 
  16.      * p? l初始化 
  17.      */  
  18.     public void init() throws ServletException {  
  19.         super.init();  
  20.   
  21.         // 初始化系l全局变量  
  22.         // ...  
  23.   
  24.         // 加蝲自定义配|文?/span>  
  25.         // ...  
  26.   
  27.         // 启动定时d  
  28.         // ...  
  29.     }  
  30.   
  31. }   
Xml代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.   <!-- struts servlet begin -->  
  4.   <servlet>  
  5.     <servlet-name>struts</servlet-name>  
  6.     <servlet-class>fangwei.servlet.BaseServlet</servlet-class>  
  7.     <init-param>  
  8.       <param-name>config</param-name>  
  9.       <param-value>/WEB-INF/struts/struts-config.xml</param-value>  
  10.     </init-param>  
  11.     <load-on-startup>0</load-on-startup>  
  12.   </servlet>  
  13.   <servlet-mapping>  
  14.     <servlet-name>struts</servlet-name>  
  15.     <url-pattern>*.do</url-pattern>  
  16.   </servlet-mapping>  
  17.   <!-- struts servlet end -->  
  18. </web-app>  

 那么Q在Struts2中我 们应该怎么做呢Q?nbsp;

 

?span class="hilite1">Struts2中实现系l的初始化工?/span>

?span class="hilite1">Struts2中,我们可以写一个filter让它l承于FilterDispatcherq覆盖其 init()ҎQ然后修改web.xml文g?span class="hilite1">Struts2启动相关配置来达到目的?/span>  

Java代码
  1. package fangwei.filter;  
  2.   
  3. import javax.servlet.FilterConfig;  
  4. import javax.servlet.ServletException;  
  5.   
  6. import org.apache.struts2.dispatcher.FilterDispatcher;  
  7.   
  8. public class BaseFilterDispatcher extends FilterDispatcher {  
  9.   
  10.     @Override  
  11.     public void init(FilterConfig arg0) throws ServletException {  
  12.         super.init(arg0);  
  13.   
  14.         // 初始化系l全局变量  
  15.         // ...  
  16.   
  17.         // 加蝲自定义配|文?/span>  
  18.         // ...  
  19.   
  20.         // 启动定时d  
  21.         // ...  
  22.     }  
  23.   
  24. }  

 

Xml代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.   <filter>  
  4.     <filter-name>struts2</filter-name>  
  5.     <filter-class>fangwei.filter.BaseFilterDispatcher</filter-class>  
  6.   </filter>  
  7.   <filter-mapping>  
  8.     <filter-name>struts2</filter-name>  
  9.     <url-pattern>/*</url-pattern>  
  10.   </filter-mapping>  
  11. </web-app>  

 

思?/h1>

不管是Struts?span class="hilite1">Struts2q是其他的web层框Ӟ它们目前Z的技术都? ServletQ只要根据web.xml扑ֈ那个启动c,我们p通过覆盖该类的的init()Ҏ来实现系l的初始化工作?/p>

 

比较优雅的实现系l的初始化工?/h1>

以上的实现方式都侵入了框架的原生c,利用Servlet 容器的特性我们可以更优雅的实现系l的初始化工作?/span> 我们可以写一个listener让它实现ServletContextListener? 口,在contextInitialized()Ҏ中做惛_的事情。将此listener配置到web.xml中,Servlet容器如tomcat? 在启动该web应用E序时调用此Ҏ?/span>

 

 

Java代码
  1. package fangwei.listener;  
  2.   
  3. import javax.servlet.ServletContextEvent;  
  4. import javax.servlet.ServletContextListener;  
  5.   
  6. public class InitListener implements ServletContextListener {  
  7.   
  8.     public void contextDestroyed(ServletContextEvent sce) {  
  9.         System.out.println("web exit ... ");  
  10.     }  
  11.   
  12.     public void contextInitialized(ServletContextEvent sce) {  
  13.         System.out.println("web init ... ");  
  14.         //pȝ的初始化工作  
  15.         // ...  
  16.     }  
  17.   
  18. }  

 

Xml代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.   <listener>  
  4.     <listener-class>fangwei.listener.InitListener</listener-class>  
  5.   </listener>  
  6.   <filter>  
  7.     <filter-name>struts2</filter-name>  
  8.     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
  9.   </filter>  
  10.   <filter-mapping>  
  11.     <filter-name>struts2</filter-name>  
  12.     <url-pattern>/*</url-pattern>  
  13.   </filter-mapping>  
  14. </web-app> 


asdtiang 2010-03-13 23:01 发表评论
]]> վ֩ģ壺 ͺ| | | | ˹| | ӱ| | ׯ| | пǰ| | ̨| | ƽ| ʶ| | Ҷ| | | | ٲ| ƽ| | | | ¬| | | | կ| | ײ| | տ| | Ϫ| | | Һ| |