2017-04-09,周日整理
自从上上周做完周记后,由于学的知识日渐丰富,自我感觉越来越膨胀,再加上清明节假期的诱惑,这15天过的有些浑浑噩噩,终于在今天把老师布置的项目基本完成,若是保持之前的学习状态,估计只要用到10天以内,从3月27日布置项目以来,基本上学习时间都用在了做项目之上,这周五才学了新的内容,AJAX,而且也把AJAX用到了项目中去。这篇总结就分两个部分,一是把这两周老师所新讲的内容复习回顾一遍,然后再把自己做scm项目时所遇到的问题和积累的一些小技巧、小方法记录下来,帮助自己加深印象,加快自己码代码的速度,优化代码结构。
- log4j,java的日志系统,用来记录系统的运行状态。若想在项目中运用到日志系统,则需要完成以下工作
- 添加log4j-1.2.13.jar包,若是web项目则加到web-info的lib中。
- 写log4j.properties配置文件,.properties是一种文件格式。其中保存着对log4j的配置信息。如何编写配置文件呢?先配置根Logger,其语法为:log4j.rootLogger=[level],appenderName,appenderName,...
-
//level是日志的优先级,从低到高有:all,debug,info,warn,error,fatal,off //越低越详细,若定义了高级别,则低级别不会被打印输出 //apenderName是指日志信息输出到哪里,你可以同时指定多个输出目的地
//layout是指信息以什么样的格式输出到这个地方 //例子 log4j.rootLogger = INFO,console log4j.appender.console = org.apache.log4j.ConsoleAppender //控制台 log4j.appender.console.layout = org.apache.log4j.PatternLayout //灵活指定布局 log4j.appender.console.layout.ConversionPattern = %d %c %p %n %m %n - 把log4j.properties配置文件放到src根目录下。
- 在代码中使用:
-
1 //获取该类的日志管理器 2 logger log=logger.getLogger(XXX.class); 3 //添加日志(下面是一条info级别的日志信息) 4 log.info("name:"+name+" password:"+password);
- dataSource,数据库连接池(connection pool),将JDBC的连接交给TOMCAT来进行管理,通过Connection Pool来管理数据库,通过dataSource去管理connection pool,dataSource被JNDI绑定,JNDI(java naming and directory interface)是用来进行资源定位的,用于定位查找服务对象。用名字来查找定位资源。
- 在server.xml中增加如下配置:
<host> <Context path="/shop" docBase="d:\workspace\test\WebRoot" reloadable="true" > <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource“ username=“root" password=“123" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/crebas?useUnicode=true&characterEncoding=GBK&"" maxActive="40" maxIdle="5" /> </Context> </host>
- 在web.xml中增加如下配置:
<resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
- 将jdbc的jar包拷贝到\tomcat 7\lib目录下。注意不是项目的lib,而是tomcat自己的Lib目录下。下面是在java中使用连接池,而不是自己加载Driver驱动。
1 public static Connection getConnection(){ 2 Connection conn = null; 3 try { 4 InitialContext context = new InitialContext(); 5 DataSource source = (DataSource) context.lookup("java:comp/env/jdbc/mysql"); 6 conn = source.getConnection(); 7 } catch (NamingException e) { 8 e.printStackTrace(); 9 } catch (SQLException e) { 10 // TODO 11 e.printStackTrace(); 12 } 13 return conn; 14 }
- 在server.xml中增加如下配置:
- AJAX,这是重点。是Google在2005年推广开来的编程模式,基于javascript和http请求,ajax=异步javascript及xml,asynchronous javascript and xml,ajax的几个好处是:
- 利用js的XMLHttpRequest对象来直接与服务器进行通信,可以在页面不用重新加载的情况下与web服务器交换数据。
- ajax与web服务器之间使用异步数据传输(Http请求),这样就可以使网页从服务器请求少量的信息,而不是整个页面。
- 独立于web服务器软件的浏览器技术,因为是js,所以依赖于浏览器。
- 如何使用ajax?先创建XMLHttpRequest对象,然后调用open方法,设置请求目标url,方法,是否异步,然后将编写好的回调函数赋值给onreadystatechange属性,最后调用send方法,若是get方法,则参数为Null,若是post方法,则首先调用setRequestHeader()方法设置请求头,然后将需要传递给服务器的参数按照"valueName="+value,的格式填入。服务器返回的数据用responseText方法得到,返回的是字符串。
- 在使用ajax时,若按照4的步骤自己编写在遇到大量数据时,会很繁琐,可以使用json2.js来包装数据以及jquery.js提供的ajax方法来进行编写。具体实现仍旧需要多动手编程。