每周知识整理【2012-06-09】

 Date与String类型互转

 

//Date类型转换为String
Date now  =  new  Date(); 
SimpleDateFormat sdf  =  new  SimpleDateFormat( " yyyy-MM-dd " ); 
String nowTime  =  sdf.format(now); 
// String类型转换为Date
String s  =  " 2008-01-15 "
String[] a  =  s.split( " [-] " ); 
Date d  =  new  Date(Integer.parseInt(a[ 0 ]),Integer.parseInt(a[ 1 ]),Integer.parseInt(a[ 2 ]));
// String类型转换为Date
Date date=DateUtils.parseDate("2012-06-25", new String[]{"yyyy-MM-dd"});

java 日志输出

通过以下配置可以配置将某级别范围的日志信息写入到指定文件中。 
可以配置输出日志的级别优先级。 

分为三部分: 
1 日志输出文件log4j.xml的配置。 
2 加载日志配置文件的servlet类。 
2 web.xml配置 

当然,还要加载必要的jar包。 


Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
  4. <appender name="infoChannel"  
  5.   class="org.apache.log4j.RollingFileAppender">  
  6.   <!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->  
  7.   <param name="File" value="${catalina.home}/logs/test.log" /><!-- 设置File参数:日志输出文件名 -->  
  8.   <param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
  9.   <param name="MaxBackupIndex" value="10" />  
  10.   <param name="MaxFileSize" value="10KB"/>  
  11.   <layout class="org.apache.log4j.PatternLayout">  
  12.    <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" /><!-- 设置输出文件项目和格式 -->  
  13.   </layout>  
  14.   <filter class="org.apache.log4j.varia.LevelRangeFilter">  
  15.       <param name="LevelMin" value="INFO" /><!--设置将INFO级别的日志通过该通道输出-->  
  16.       <param name="LevelMax" value="INFO" />  
  17.   </filter>  
  18. </appender>  
  19. <appender name="debugChannel"  
  20.   class="org.apache.log4j.RollingFileAppender">  
  21.   <!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->  
  22.   <param name="File" value="${catalina.home}/logs/testdebug.log" /><!-- 设置File参数:日志输出文件名 -->  
  23.   <param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
  24.   <param name="MaxBackupIndex" value="10" />  
  25.   <param name="MaxFileSize" value="10KB"/>  
  26.   <layout class="org.apache.log4j.PatternLayout">  
  27.    <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" /><!-- 设置输出文件项目和格式 -->  
  28.   </layout>  
  29.   <filter class="org.apache.log4j.varia.LevelRangeFilter">  
  30.       <param name="LevelMin" value="DEBUG" />  
  31.       <param name="LevelMax" value="DEBUG" />  
  32.   </filter>  
  33. </appender>  
  34. <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">  
  35.                 <!-- 设置监视器输出方式 -->  
  36.   <layout class="org.apache.log4j.PatternLayout">  
  37.    <param name="ConversionPattern"  
  38.     value="%-4r [%t] %-5p %c %x - %m%n" />  
  39.   </layout>  
  40.                 <!--滤镜设置输出的级别-->  
  41.   <filter class="org.apache.log4j.varia.LevelRangeFilter">  
  42.    <param name="levelMin" value="info" />  
  43.    <param name="levelMax" value="info" />  
  44.    <param name="AcceptOnMatch" value="true" />  
  45.   </filter>  
  46. </appender>  
  47.   
  48. <root>  
  49.   <!--设置输出的级别大于等于DEGUG priority value="DEBUG" / -->  
  50.   <!--设置输出的级别-->  
  51.   <priority value="INFO" />  
  52.   <!-- 设置接收所有输出的通道 -->  
  53.   <appender-ref ref="debugChannel" />  
  54.   <appender-ref ref="infoChannel" /><!-- 与前面的通道id相对应 -->  
  55.   <appender-ref ref="STDOUT" />  
  56. </root>  
  57.   
  58. </log4j:configuration>   



2  
Java代码  
  1. package com.test.log;  
  2.   
  3. import javax.servlet.ServletException;  
  4. import org.apache.commons.logging.Log;  
  5. import org.apache.commons.logging.LogFactory;  
  6. import org.apache.log4j.xml.DOMConfigurator;  
  7. import javax.servlet.http.HttpServlet;;  
  8.   
  9. /** 
  10.  *  
  11.  * 加载log4j日志配置文件 
  12.  * 
  13.  */  
  14. public class ExtendedActionServlet extends HttpServlet {  
  15.         private Log log = LogFactory.getLog(this.getClass().getName());  
  16.   
  17.         public ExtendedActionServlet() {}  
  18.   
  19.         public void init() throws ServletException {  
  20.             log.info(  
  21.                     "Initializing, My MyActionServlet init this System's Const Variable");  
  22.             String prefix = this.getServletConfig().getServletContext().getRealPath(  
  23.                     "/");//读取项目的路径  
  24.             String file = this.getServletConfig().getInitParameter("log4j");  
  25.                        //读取log4j相对路径  
  26.             String filePath = prefix + file;  
  27.             DOMConfigurator.configure(filePath);//加载.xml文件        
  28.             log.info("Initializing, end My Init");  
  29.             super.init();//此方法不能省,ActionServlet覆盖了的此方法中有很多重要操作  
  30.         }  
  31. }   


3  web.xml文件中增加servlet配置 
Java代码  
  1. <servlet>   
  2.         <servlet-name>log4j-init</servlet-name>   
  3.         <servlet-class>   
  4.           com.test.log.ExtendedActionServlet   
  5.         </servlet-class>   
  6.         <init-param>   
  7.           <param-name>log4j</param-name>   
  8.           <!-- 这里标出了位置 -->   
  9.           <param-value>/WEB-INF/log4j.xml</param-value>   
  10.         </init-param>   
  11.         <load-on-startup>1</load-on-startup>   
  12.     </servlet>  

什么是分布式部署和均衡负载?

 

分布式部署 就是将应用分布部署在多台服务器上,通过统一的调度机制实现对多台服务器的分布式调用,但对于客户端来说,其只与一台服务器进行交互。一般用于大负载的应用。
 
负载均衡 是把web放在多个服务器上,这主要是为了防止多用户访问时IIS响应问题,同时也可以防址洪水攻击
分布式部署应该是把网站的一些模块分开来部署,比如说你可以用一个数据源服务器,以webService或RSS等方式向别的网站提供数据.还有就是像Memedcache做一个服务器缓存,就是说当你缓存东西过多时,你可以通过TCP/IP把数据传输到另一个服务器做缓存,但一般情况下两台服务器应该在一个网内,如果你的缓存服务器老远,这样服务器缓存就没有意义了。
 

 

JAVA中的序列化和反序列化

 

对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。 
参考: http://hi.baidu.com/qiyongping/blog/item/cf0b05507e5f9f6b853524be.html

 

String Stringbuffer和StringBuilder的区别?

 

String是长度不可变的
StringBuilder不是线程安全的,是单线程执行程序
Stringbuffer是多线程安全的
 

 

你可能感兴趣的:(知识)