知识点

1. 对ThreadLocal的理解:     
       ThreadLocal拥有一个内部类ThreadLocalMap,可以将其简单理解为一个Map类,一个 ThreadLocal对象内部可以包含多个不同的Thread,对于每一个Thread都会创建一个相关的ThreadLocalMap对象(即拥有几个线程就拥有几个ThreadLocalMap对象),每个ThreadLocalMap以对应的Thread作为key值。
       当向线程中设值时(只能是一个),ThreadLocal类会首先获取当前线程,然后取得相应的ThreadLocalMap,之后向其中赋值。如果是首次赋值,则会创建一个新的ThreadLocalMap。当从线程中取值时,则是以当前线程为key值到对象的ThreadLocalMap中获取。

2. HttpSession中的对象是否需要序列化?     
      不是强制HttpSession中的对象必须实现序列化接口,但是当web服务器消耗大量内存时,它通常会将那些暂时不活动但未超时的HttpSession对象转移到文件系统或数据库中保存,服务器要使用它们时再将它们从文件系统或数据库中装载到内存中,这种技术称为Session的持久化(钝化),这时如果HttpSession中的对象没有实现序列化接口,就会抛出java.io.NotSerializableException异常。

3. Hibenrate映射文件中的type属性
       我们在映射文件里声明并使用的类型,并不是我们期望的那样,是java数据类型,同时也不是SQL数据库的数据类型,这些类型是所谓的Hibernate映射类型。它们能把java数据类型转化到SQL数据类型,反之亦然。如果在映射文件中没有设置type属性,Hibernate会自己试着去确定正确的转换类型和它的映射类型。在某些情况下,这个自动检测机制(在java类上使用反射机制)不会产生你所期望的缺省值,date属性就是一个很好的例子,Hibernate无法知道这个属性(java.util.Date类型)应该被映射成SQL date或timestamp还是time字段,这可以通过type=“timestamp”来确定。

4. String 
字符串是一个特殊包装类,其引用是存放在栈里的,而对象内容需要根据创建方式来决定(常量池和堆).有的是编译期就已经创建好,存放在字符串常量池中,而有的是运行时才被创建.使用new关键字,存放在堆中。

5. js(jQuery)传值 乱码 
 	function submit(){   
 	     var title=document.getElementById("test");   
 	     var url="xxxx.action?test="+encodeURI(encodeURI(title.innerHTML));   
 	     window.location.href=url;   
 	 } 


    服务器端:
String test = request.getParameter("test"); 
test = java.net.URLDecoder.decode(test, "UTF-8");


6. jndi :java命名服务。
简而言之,它提供了按照名称定位组件或服务的功能。Ldap,dns,rmi等等都是命名服务。以dns为例,当在浏览器中输入http://www.baidu.com是时,dns服务器进行查找,并将我们引导到百度的正确ip地址。Jndi的作用类似于jdbc(jdbc用统一的方式获得连接,不管是MySQL数据库还是Oracle数据库),它提供了访问各种命名服务的单一的同一的API,不论命名服务是ldap还是dns。
Context ctx = new InitialContext();InitialContext对象连接到任何给定的JNDI树,可由jndi.properties提供环境或传入参数。


7.dwr与comet

1.dwr 简单而言,就是页面可以调用后台的类的方法。基本配置:
      (1)web.xml中配置框架定义的DwrServlet
      (2)dwr.xml文件中配置可以被客户端调用其方法的类  
      (3)页面中导入相应的js文件(注意顺序)

2.Comet服务器端推技术  (利用dwr,在页面中调用后台方法)
     (1)首先在web.xml中配置DwrServlet时,指定参数activeReverseAjaxEnabled为true,表明使用服务器端推技术(否则会出错:Polling and Comet are disabled),同时在页面加载时,在js设置dwr.engine.setActiveReverseAjax(true);
     (2)在后台利用dwr的ScriptSession ,Util…类获得相应页面的元素信息,如TextArea的id值等,再进行设置。

8.struts2标签
 <s:iterator value="#request.zxZwInfoList" var="zxZwInfo" status="st">
             <tr>
                 <td class="idxnewsright_content">   
                   <a href="#"><s:property value="infoContent"/>
                        <s:if test="#st.index<2"> 
                           <img src="${pageContext.request.contextPath}/images/icon_new.gif" width="28" height="11" />
                        </s:if>
                   </a>
                 </td>
               <td width="80">  
                  <s:date name="publishDate" format="yyyy-MM-dd" />
               </td>
             </tr>
</s:iterator>


<s:textfield cssStyle="width:150px;" name="planSetUpTime" 			readonly="true" 					cssStyle="border:1px solid #809FBB;width:160px;" 			onclick="WdatePicker({dateFmt:'yyyy-MM',autoPickDate:true,skin:'ext'})"> 					<s:param name="value"> 					<s:date name="#request.project.planSetUpDate" format="yyyy-MM" /> 						</s:param> 					</s:textfield>



9.Hibernate查询之DetachedCriteria
Session session = HibernateUtils.getSession();
	   DetachedCriteria dc = DetachedCriteria.forClass(User.class);
	   dc.add(Restrictions.eq("id", 1));
	   //dc.createAlias("group", "group");              (1)  
	   //dc.setFetchMode("group", FetchMode.JOIN);      (2)    
	   List result = dc.getExecutableCriteria(session).list();
	   if(result!=null&&result.size()>0){
		   User user = (User)result.get(0);
		   HibernateUtils.closeSession(session);
		   System.out.println("group="+user.getGroup().getName());  (3)
           }

User中的Group对象延迟加载,在加载完User对象后关闭session。这时执行语句(3)会抛出异常,语句(1) / (2) 都可以加载Group

10.sql
 select * from (select a.constraint_name consA, a.table_name 外键表名,a.column_name 外键列名,b.table_name 主键表名,b.column_name 主键列名
from 
(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and a.constraint_name=b.constraint_name
) a,
(select distinct a.r_constraint_name,b.table_name,b.column_name
from user_constraints a, user_cons_columns b
WHERE   a.constraint_type='R'
and 
a.r_constraint_name=b.constraint_name)
b
where a.r_constraint_name=b.r_constraint_name )a where a.主键表名=upper('hx_product')




-Xms1024M -Xmx1024M -XX:MaxPermSize=400M

你可能感兴趣的:(thread,sql,Hibernate,Web,活动)