达内Java学习笔记

 

                                              Day01

一、JavaScript基础

1.什么是JavaScript?

JavaScript是一种客户端运行的解释性脚本语言。

JavaScript是由网景(Netscape)推出的产品。

Microsoft推出的JScript。

ECMAScript(欧洲计算机制造商协会),

 

2.JavaScript能做什么?

  完成客户端的交互工作(如表单的验证、焦点广告、菜单效果等)。

 

3.JavaScript的使用方式

3.1 使用外部的JS文件

    JavaScript文件的扩展名.js

   <script type="text/javascript" src="JS文档URL"></script>

3.2 书写于文档的头部

  <script type="text/javascript">

     ...

     ...

  </script>

 

4.JS代码规范

A.可选的分号(但一般情况下都需要分号结尾)

B.大小写敏感

C.每行代码尽量不要超过80个字符。

 

5.标识符

  指语言环境下的变量名称、类名称、对象名称等。

A.标识符必须以字母或下划线开头,包含字母、数字及下划线。

B.标识符禁止包含空格、斜线等特殊符号。

C.标识符禁止与系统关键字相同。

 

6.变量

[var] 变量名称;

[var] 变量名称 = 值;

说明:建议在声明变量时使用var关键字。

 

二、数据类型

 

1.字符型(string),必须括在单引号/双引号之间。

  转义符:

  \n,换行

  \r,回车

  \t,水平制表符

  \v,垂直制表符

  \\,反斜线

  \',单引号

 \",双引号

 

2.数值型(Number),可以存储整数或浮点数,

可以带有符号位。

 

3.布尔型(Boolean),只有true和false。

 

4.数据类型的自动转换

 

字符+数字:数字转换成字符

数字+布尔:布尔转换成数字(true=>1,false=>0)

字符+布尔:布尔转换成字符(true=>"true",false=>"false")

布尔+布尔:布尔转换成数字(true=>1,false=>0)

 

5.数据类型的强制转换

parseInt,转换成整数

parseFloat,转换成浮点型

 

6.JavaScript的调试工具(补)

Firebug(F12) --> Console(控制台)

 

7.运算符

字符运算符:+

算术运算符:+(正数)、-(负数)、*、/、%、+、-、

逻辑运算符:!、&&、||

比较运算符:>、>=、==、!=、<>、===(全等)、!==(不全等)、<=、<

全等:值与数据类型完全匹配。

自增/自减运算符:

  i++,i--(后缀形式:先使用,后加减)

 ++i,--i(前缀形式:先加减,后使用)

 

三目运算符: 表达式? 值:值;

 

流程控制:

if

if...else

if...else if...else

switch

for

while

do...while

 

 

 

Day02

一、JavaScript的内置对象

 

1.String

 

创建String对象

 

直接量方式

var object = '值';

var object = "值";

 

构造函数方式

var object = new String("value");

 

属性

length

描述:获取字符串的长度

语法:intobject.length

 

 

方法

toLowerCase()

描述:转换成小写字母

语法:stringobject.toLowerCase()

 

toUpperCase()

描述:转换成大写字母

语法:stringobject.toUpperCase()

 

substr() [补P17[2]]

描述:截取字符串

语法:stringobject.substr(int start[,int length])

说明:

A.字符从0开始编号

B.起始位置为负数,则倒数

 

substring()

描述:截取字符串

语法:stringobject.substring(start[,end])

说明:包含起始位置,但不包含结束位置。

 

indexOf()

描述:返回一个字符串在另一个字符串第一次出现的位置

语法:intobject.indexOf(string str[,int start])

说明:如果没有出现则返回-1

 

lastIndexOf()

描述:返回一个字符串在另一个字符串最后一次出现的位置

语法:intobject.lastIndexOf(string str[,int start])

说明:如果没有出现则返回-1

 

charAt(int pos) 等价于 substr(int pos,1)

 

replace()

描述:字符替换

语法:stringobject.replace(object regExp,string replacement)

 

split

描述:将字符串拆分成数组

语法:arrayobject.split(string separator)

 

2.Math

 

属性

Math.PI

Math.SQRT2

 

方法

Math.ceil()

描述:向上取整

语法:intMath.ceil(float val)

Math.floor()

描述:向下取整

语法:intMath.floor(float val)

 

Math.pow()

描述:幂运算

语法:floatMath.pow(float base ,float exp)

 

Math.sqrt()

描述:平方

语法:floatMath.sqrt(float val)

 

Math.min()

描述:返回最小值

语法:floatMath.min(float val,float val,....)

Math.max()

描述:返回最大值

语法:floatMath.max(float val,float val,....)

 

Math.round()

描述:四舍五入

语法:floatMath.round(float val)

说明:保留到整数位。

 

Math.random()

描述:产生随机数

语法:floatMath.random()

 

3.Array

 

创建数组

 

 直接量方式

 varobject = [值,....]

 构建函数方式

 varobject  = new Array(值,...)

 属性

 length

 描述:返回数组成员的数量

 语法:int object.length

 

  访问数组成员

  数组名称[下标] 

  说明:数组的下标从0开始。 

 

  for...in语句

   作用:遍历数组/对象

   语法:

  for(变量名称 in 数组/对象){

       ... 

    }

 

    方法

  

   join()

    描述:将数组成员连接成字符串

    语法:string object.join([stringseparator])

 

   push()

 

    描述:在数组的未尾添加一个或多个成员

    语法:int object.push(val,...)

 

   unshift()

    描述:在数组的开头添加一个或多个成员

    语法:int object.unshift(val,...)

 

   pop()

    描述:删除数组的最后一个成员,并且返回该成员

    语法:val object.pop()

   shift()

    描述:删除数组的第一个成员,并且返回该成员

    语法:val object.shift()

 

   slice()

    描述:截取数组

    语法:array object.slice(start[,end])

 

   reverse() 

    描述:数组反转

    语法:array object.reverse()

 

4.Date

 

创建Date对象

 

var object = new Date()

 

方法

getYear()

描述:获取年份

语法:intobject.getYear()

 

getFullYear()

描述:获取年份

语法:intobject.getFullYear()

 

getMonth()

描述:获取月份(取值范围为0~11)

语法:intobject.getMonth()

getDate()

描述:获取日期(多少号)

语法:intobject.getDate()

getDay()

描述:获取星期的第几天(0为星期日,依次类推)

语法:intobject.getDay()

 

getHours()

描述:获取小时

语法:intobject.getHours()

getMinutes()

描述:获取分钟

语法:intobject.getMinutes()

getSeconds()

描述:获取秒

语法:intobject.getSeconds()

 

getTime()

描述:获取毫秒

语法:intobject.getTime()

 

二、自定义函数

 

1.什么是自定义函数

 

完成某种功能的代码段。

 

2.创建自定义函数

 

function 函数名称([参数[,...]]){

   ...

   ...

   [return 返回值]

}

 

3.调用自定义函数

 

[var 变量名称=] 函数名称([值[,...]])

 

4.变量作用域

 

4.1 JS编译和执行过程

 

A.编译,只负责变量的声明和函数的定义。

   而且所有变量的初始值为undefined.

B.执行,自上而下,

   

4.2 变量作用域

 

全局变量

 

局部变量

 

 

Day03

一、DOM编程

1.什么是DOM?

 

DOM[Document Object Model],文档对象模型。

 

DOM提供处理XML/HTML文档的API。

 

DOM的主要操作:节点的获取、节点的动态的创建、创建的删除及节点的替换。

 

节点(Node),在DOM树中所存在的任何一个元素(如HTML元素,文本、属性等)。

 

节点的类型

 

Node.ELEMENT_NODE,1(元素类型)

Node.ATTRIBUTE_NODE,2(属性类型)

Node.TEXT_NODE,3(文本类型)

Node.COMMENT_NODE,8(注释类型)

Node.DOCUMENT_NODE,9(文档类型)

 

 

2.document对象

属性

 

方法

getElementById()

描述:根据ID获取对象

语法:Elementdocument.getElementById(string id)

 

createElement()

 

描述:创建元素节点

 

语法:Elementdocument.createElement(string tagName)

 

createTextNode

描述:创建文本节点

语法:textNodedocument.createTextNode(string value)

 

createComment

描述:创建注释节点

语法:commentNodedocument.createComment(string value)

 

createAttribute

描述:创建属性节点

语法:attrNodedocument.createAttribute(string name)

 

 

 

3.Node接口

 

属性

firstChild

lastChild

nextSibling

previousSibling

parentNode

childNodes

nodeName

nodeType

nodeValue

 

方法

appendChild()

描述:追加子节点

语法:object.appendChild(node)

insertBefore()

描述:插入子节点

语法:object.insertBefore(newNode[,refNode])

 

 

Day04

一、HTMLDOM

 

1.什么是HTMLDOM?

 

HTMLDOM提供处理HTML文档的API。

 

2.W3CDOM与HTMLDOM的区别

 

W3CDOM可以处理HTML/XML文档;

 

HTMLDOM仅能处理HTML文档。

 

3.获取对象

 

HTMLElement document.getElementById(stringid)

 

 

4.访问HTML对象的属性

 

object.属性名称 = 值

 

[var 变量名称 = ] object.属性名称

 

说明:

A.HTML标记的属性即HTMLDOM节点的属性。

B.如果HTML标记的属性为合成词,在HTMLDOM中应采用"驼峰标记法"命名。

C.HTML标记的class属性,在HTMLDOM中应使用className取代。(因为class是ECMAScript预保留的关键字)

D.HTML标记的style属性,在HTMLDOM中将返回CSSStyleDecleration(或CSS2Properties)对象。

 

5.CSSStyleDecleration对象

 

访问CSS样式

CSSStyleDeclaration.属性名称 = 值

[var 变量名称 = ] CSSStyleDeclaration.属性名称 = 值

 

说明:

A.如果CSS样式为单个单词,则在CSSStyleDeclaration对象中直接书写。

B.如果CSS样式带有短横线,则在CSSStyleDeclaration对象中去掉短横线,然后再使用"驼峰标记法"命名。

C.CSS样式中的float属性在CSSStyleDeclaration对象中,如果浏览器为Chrome、Firefox等,则使用cssFloat取代;如果浏览器为IE则使用styleFloat取代。

 

6.访问HTML对象的文本

 

所有文本都认为纯文本(HTML不能被解析)

object.innerText

 

HTML可以被解析

object.innerHTML

 

7.添加节点

 

A.全部HTMLDOM节点的创建都可以通过W3CDOM的方法实现

B.有几个特殊的HTMLDOM节点,它们拥有自己的创建、删除方法。

 

7.1 图像

 

通过构造函数方式

 

[var 变量名称 = ] new Image(width,height)

 

7.2 列表框

 

A.列表框

 

add()方法

 

描述:添加Option对象

 

语法:object.add(optionElement)

 

remove()方法

描述:删除Option对象

语法:object.remove(index)

 

options属性

 

描述:返回列表框中所有列表项的集合

 

语法:object.options

 

value

描述:返回列表框中被选定选项的值

 

语法:stringobject.value

 

 

B.列表选项

 

创建列表选项对象(Option对象) -- 构造函数方式

 

[var 变量名称 = ] new Option(text[,value[,defaultSelected[,selected]]])

 

text,指列表项显示文本

 

value,指列表项的提交值,如果省略value,则提交值与显示文本相同。

 

defaultSelected,指是否为默认选项(boolean)

 

selected,指是否被选定

(boolean)

 

 

 

 

 

Day05

 

一、HTMLDOM

 

1.单选框/复选框/列表框

 

说明:

 

A.单选框/复选框在HTML中默认被选定,需要使用checked="checked"属性;在HTMLDOM编程时需要使有object.checked= boolean语句。

B.所有表单控件(如单行文本框、密码框等)都存在disabled="disabled"属性(禁用);在HTMLDOM编程时使用object.disabled= boolean语句。

 

二、选取对象的方法(总结)

A.document.getElementById(string id)

B.Element.getElementsByTagName(string tagName)

 返回由标记名称所组成的集合(NodeList)。

C.document.getElementsByName(string name)

  返回具有相同name属性的对象所组成的集合

 (主要用于复选框)

 

三、Table对象

 

rows属性

 

描述:返回表格的tr对象组成的集合

 

语法:collectionobject.rows

 

rowIndex

 

描述:获取行对象的索引数

 

语法:intobject.rowIndex

 

 

insertRow()

 

描述:插入行

 

语法:rowElementobject.insertRow(index)

 

说明:index为新行的索引值,其编号从0开始。

 

deleteRow()

 

描述:删除行

 

语法:object.deleteRow(index)

 

 

s

 

 

TR对象

 

cells属性

 

语法:返回行对象中单元格对象组成的集合

 

语法:collectionobject.cells

 

insertCell()

 

描述:在行对象内插入单元格

 

语法:cellElementobject.insertCell(index)

 

deleteCell()

 

描述:删除列

 

语法:object.deleteCell(index)

 

 

 

 

 

四、window对象

 

setTimeout()

描述:设置一次性定时器

语法:intwindow.setTimeout(string code,int time)

 

setInterval()

描述:设置周期性定时器

语法:intwindow.setInterval(string code,int time)

 

clearTimeout()

 

描述:清理由setTimeout()方法设置的定时器

语法:window.clearTimeout(inttimeId)

 

clearInterval()

 

描述:清理由setInterval()方法设置的定时器

 

语法:window.clearInterval(inttimeId)

 

open()

描述:打开浏览器窗口

语法:window.open(url)

 

 

 

 

 

Spring

Day01

 

老师:刘苍松

15601035818

liucs@tarena.com.cn

 

Servlet/JSPAjax/jQuery

Web 前端,Web界面编程

 

对象的管理: 创建和销毁

 

Spring

 IOC AOP

       Spring最核心的功能:管理对象

              管理对象的生存周期,和对象的关系

 

概念: Java Bean 实现如下规则的Java对象

1)       必须有包(package)

2)       必须有无参数构造器

3)       实现序列化接口

4)       有getXXX setXXX方法定义的Bean属性

 

String

 

 

5)       toString

equals hashCode (后2个有ID对象都重写)(这一条不算,只是约定)

 

简而言之: 有一定约定的Java对象!

 

Spring 管理的Java Bean对象,访问Bean属性

 

 

 

 

 

SpDay02 

 

 

class MessageBean{

String msg = “Hello”;

public String getMsg(){

  return msg;

}

public void setMsg(String msg){

   this.msg = msg;

}

 

}

//两种方式读取#{msgBean.msg} 或 #{msgBean[‘msg’]}

<bean id=”demoBean” class=””>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Day03

 

Spring

 为什么要注入(DI/IOC)

 因为对象是有关系的!

 在软件运行期间,对象之间根据业务需要有关联关系

 引用变量,在运行期间动态绑定到对象

 进而解决的对象的耦合性

 

Spring的注入

  1 支持两种方式注入

   A 构造器参数注入(不常用)

   B set方法输入(Bean属性注入)

  2 Spring支持各种类型数据的注入

   A 基本类型数据(含String)

   B 对象(Bean)的注入

     1) 引用方式

       <property name="egg"ref="egg"/>

     2) 匿名Bean,没有ID的Bean (不常用)

     <bean id="food"class="Food">

       <property name="egg" >

         <bean class="Egg"/>

       </property>

     </bean>

   C 集合的注入 listset map properties

     1) 集合中元素可以是基本类型

     2) 集合中元素可以是Bean对象

     3) 引用方式注入集合

       使用命名空间util:

   D Spring 表达式注入

     1) 从Bean对象中读取数据,注入到其他Bean

     2) 支持从 Bean属性读取,List集合读取

       Map集合,Properties集合

     3) 语法与 JSP EL 表达式相同

    

     常见用途:读取properties文件

 

软件的结构与Spring

  软件一般都采用“经典”的“设计模式”

 

  软件经典结构:3层架构

 

  表现层:就是软件的界面,用来呈现数据,与用户交互

 

  业务层: 封装的了软件的核心功能(业务逻辑功能)

 

  数据层: 提供业务实体的 CRUD(增删改查),也

   叫持久化层

 

  Spring 可以将软件的各个层次模块进行集成

  管理。

 

 

表现层:Spring MVC 登录框

 

业务层: UserService

         User login(String name, String pwd)

 

数据层:UserDao (OracleUserDao MySqlUserDao)

          User findByName(String name)

 

JdbcDataSource 管理数据库连接

 

db.properties

applicationContext.xml

 

 

 

注解方式的默认Bean ID命名规则

 类名DemoBean 注册Bean ID 为 demoBean

 类名Bean 注册Bean ID 为 bean

 类名SQLBean 注册Bean ID 为 SQLBean 不建议使用!

 类名OracleUserDao注册Bean ID 为 oracleUserDao 

 

另外命名(建议按照接口命名):

 类名OracleUserDao@Component("userDao")

    注册Bean ID 为 userDao 

         

注入指定ID的Bean

  假设 Egg@Component("e")

  同时 <beanid="bigEgg" class="Egg"/>

 

  class Food{

    @Resource(name="e")

    Egg egg;

  }

 

利用注解管理 软件的组件

 @Service

 UserService{

   @Resource

   UserDao userDao;

 }

 @Repository("userDao")

 OracleUserDao{

   @Resource

   JdbcDataSource dataSource;

 }

 @Component("dataSource")

 JdbcDataSource{

   String driver;

   @Value("#{jdbc.url}")

   String url;

   String user;

   Stringpwd;

   @Value("#{jdbc.driver}")

   public void setDriver(String driver){

     //....

   }

 }

 

 <util:properties id="jdbc".../>

 

 

 

 

 

 

 

Day04

 

 

Spring MVC 解决的界面空值流转

 

页面向控制器传递值

       将用户添加的数据 传递到控制器,控制器根据用户数据调用业务流程()

 

       有3种方式

1.       Request

2.       控制器方法参数注入

3.       值对象参数注入

 

 

如何从控制器向界面传递数据

       将业务处理结果在界面显示

      

1使用   request.setAttribute()

              session.setAttribute()

              application.setAttribute()

       2     使用ModeAndView对象

              使用ModelMap参数对象

              使用@ModelAttribute注解

 

 

 

Day06

 

Spring 扩展功能

1 编码支持

       中: \u4e2d    utf-8: e4 b8 ad     GBK: d6 d0         utf-16:4e 2d

2 拦截器

 

 

 

Day07

 

 

 

2 文件上载

1)     JavaWeb API没有支持文件上载协议!

2)     第三方API支持文件上载

commons     fileupload     apache.org

3)     Spring提供了对 fileupload 的支持,使用更加简洁.需要配置bean,使用参数注入

 

Spring JDBC 简洁的JDBC API

       核心类JdbcTemplate

1)     jdbcTemplatebean 必须注入dataSource对象

2)     在Dao 对象中注入jdbcTemplate

3)     使用jdbcTemplate 对象的方法实现JDBC操作

 

queryForObject() 适合有唯一查询结果的SQL语句

queryForList() 适合查询多行的结果

update() 适合insert,update,delete

 

都提供了便捷的参数动态绑定方法

 update(SQL,param …)

 

 

dataSource对象?

 

实际开发中,都使用第三方实现的DataSource

可以支持任意的JDBC驱动. DBCP c3p0

1)     SUN 定义了DataSource接口 数据源

2)     第三方提供DataSource接口的实现 DBCPc3p0…

这些实现,都是数据源的实现,简称数据源

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
abstract (关键字) 抽象 ['æbstrækt] access vt.访问,存取 ['ækses]'(n.入口,使用权) algorithm n.算法 ['ælgәriðm] Annotation [java] 代码注释 [ænәu'teiʃәn] anonymous adj.匿名的[ә'nɒnimәs]'(反义:directly adv.直接地,立即[di'rektli, dai'rektli]) apply v.应用,适用 [ә'plai] application n.应用,应用程序 [,æpli'keiʃәn]' (application crash 程序崩溃) arbitrary a.任意的 ['ɑ:bitrәri] argument n.参数;争论,论据 ['ɑ:gjumәnt]'(缩写 args) assert (关键字) 断言 [ә'sә:t] ' (java 1.4 之后成为关键字) associate n.关联(同伴,伙伴) [ә'sәuʃieit] attribute n.属性(品质,特征) [ә'tribju:t] boolean (关键字) 逻辑的, 布尔型 call n.v.调用; 呼叫; [kɒ:l] circumstance n.事件(环境,状况) ['sә:kәmstәns] crash n.崩溃,破碎 [kræʃ] cohesion 内聚,黏聚,结合 [kәu'hi:ʒәn] (a class is designed with a single, well-focoused purpose. 应该不止这点) command n. 命令,指令 [kә'mɑ:nd](指挥, 控制) (command-line 命令行) Comments [java] 文本注释 ['kɒments] compile [java] v.编译 [kәm'pail]' Compilation n.编辑[,kɒmpi'leiʃәn] const (保留字) constant n. 常量, 常数, 恒量 ['kɒnstәnt] continue (关键字) coupling 耦合,联结 ['kʌpliŋ] making sure that classes know about other classes only through their APIs. declare [java] 声明 [di'klєә] default (关键字) 默认值; 缺省值 [di'fɒ:lt] delimiter 定义符; 定界符 Encapsulation[java] 封装 (hiding implementation details) Exception [java] 例外; 异常 [ik'sepʃәn] entry n.登录项, 输入项, 条目['entri] enum (关键字) execute vt.执行 ['eksikju:t] exhibit v.显示, 陈列 [ig'zibit] exist 存在, 发生 [ig'zist] '(SQL关键字 exists) extends (关键字) 继承、扩展 [ik'stend] false (关键字) final (关键字) finally (关键字) fragments 段落; 代码块 ['frægmәnt] FrameWork [java] 结构,框架 ['freimwә:k] Generic [java] 泛型 [dʒi'nerik] goto (保留字) 跳转 heap n.堆 [hi:p] implements (关键字) 实现 ['implim
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值