J2EE学习笔记.docx

上传人:b****6 文档编号:8453762 上传时间:2023-01-31 格式:DOCX 页数:14 大小:23.75KB
下载 相关 举报
J2EE学习笔记.docx_第1页
第1页 / 共14页
J2EE学习笔记.docx_第2页
第2页 / 共14页
J2EE学习笔记.docx_第3页
第3页 / 共14页
J2EE学习笔记.docx_第4页
第4页 / 共14页
J2EE学习笔记.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

J2EE学习笔记.docx

《J2EE学习笔记.docx》由会员分享,可在线阅读,更多相关《J2EE学习笔记.docx(14页珍藏版)》请在冰豆网上搜索。

J2EE学习笔记.docx

J2EE学习笔记

Struts(☆多查文档)

在Action中,用addFielderror(“name”,“value”)方法,然后在页面中用

fielderrorfieldname=”name”/>即可取得值

Struts2访问web元素:

方法一:

在页面中通过from表单提交数据,在action中通过

ActionContext.getContext.get(“request”);

ActionContext.getContext.getSession();

ActionContext.getContext.getApplication();

ActionContext也就是通过debug所看到的StackContext中的值

取得ActionContext中的值时,需要加“#”,如

propertyvalue=”#request.value”/>

propertyvalue=”#attr”/>能取得request,session.application中的所有值

方法二(常用):

实现接口:

RequestAwareSessionAwareApplicationAware

在action中,定义变量Maprequest;并加上setter方法,根据DI(IOC)的思想,由struts注入request,然后就可以对Request进入存值和取值

在strtus.xml中配置默认的action

这样,在浏览器输入不存在的网址,即会跳转到此Aaction

Result的类型

Dispatcher:

forward..>服务器跳转,只能跳转到页面,显示的是action地址,两个Action之间共享值栈,不需要传递参数

Redirect:

客户端跳转,只能跳转到某个页面,显示的jsp的地址,需要传递参数

Chain:

forward..>服务器跳转,跳转到某个action

redirectAction:

客户端跳转,跳转到某个action

全局结果集

如果其它包个也想用,用extends

OGNL(ObjectGraphNavigationLanguage)

访问值栈中action的普通属性:

propertyvalue=”var”/>

访问值栈中action的普通方法:

propertyvalue=”function()”/>

访问值栈中对象的普通属性(有getset方法):

propertyvalue=”entity.var”/>,

propertyvalue="user['age']"/>

propertyvalue=”entity1.entity2..var”/>,但此时必须自己new或手动给对象的属性传值,此时entity必须有一个空的构造方法

访问值栈中对象的普通方法:

propertyvalue=”entity1.function()”/>

访问静态方法:

propertyvalue="@类名.函数名@方法名()"/>

访问静态属性:

propertyvalue="@类名.函数名@属性名"/>

访问Math类的静态方法:

propertyvalue="@@max(2,3)"/>

访问List:

propertyvalue="users"/>

访问List中某个元素:

propertyvalue="users[1]"/>

访问List中元素某个属性的集合:

propertyvalue="users.{age}"/>

访问List中元素某个属性的集合中的特定值:

propertyvalue="users.{age}[0]"/>|

propertyvalue="users[0].age"/>(常用这个)

访问Set:

propertyvalue="dogs"/>

访问Set中某个元素:

propertyvalue="dogs[1]"/>(取不到值,因为set没有顺序,不能取到指定的第几个元素)

访问Map:

propertyvalue="dogMap"/>

访问Map中某个元素:

propertyvalue="dogMap.dog101"/>|

propertyvalue="dogMap['dog101']"/>|

propertyvalue="dogMap[\"dog101\"]"/>

访问Map中所有的key:

propertyvalue="dogMap.keys"/>

访问Map中所有的value:

propertyvalue="dogMap.values"/>

访问容器的大小:

propertyvalue="dogMap.size()"/>|

propertyvalue="users.size"/>(加不加括号都可)

投影(过滤):

propertyvalue="users.{?

#this.age==1}[0]"/>

投影:

propertyvalue="users.{^#this.age>1}.{age}"/>(第一个age>1的user的age集合,^表示第一个)

投影:

propertyvalue="users.{$#this.age>1}.{age}"/>(最后一个age>1的user的age集合,$表示最后一个)

投影:

propertyvalue="users.{$#this.age>1}.{age}==null"/>(判断集合是否为空)

[]:

propertyvalue="[0].username"/>(访问栈中的从栈顶到栈底的所有object的集合,username先从栈顶那个找,找不到找第二个,最后找栈底)

Struts-Tags

property:

propertyvalue="username"/>

property取值为字符串:

propertyvalue="'username'"/>

property设定默认值:

propertyvalue="admin"default="管理员"/>

property设定HTML:

propertyvalue="'


'"escape="false"/>(不解析html标签)

bean定义bean,并使用param来设定新的属性值:

beanname="com.bjsxt.struts2.tags.Dog">

paramname="name"value="'pp'">

param>

propertyvalue="name"/>

bean>

include_include1.html包含静态英文文件,说明%用法

setvar="incPage"value="%{'/_include1.html'}"/>

includevalue="%{#incPage}">

include>

iteratorvalue="{'aaa','bbb','ccc'}"var="x">

propertyvalue="#x.toUpperCase()"/>|

iterator>

iteratorvalue="{'aaa','bbb','ccc'}"status="status">

property/>|(取出当前值)

遍历过的元素总数:

propertyvalue="#status.count"/>|

遍历过的元素索引:

propertyvalue="#status.index"/>|

当前是偶数?

propertyvalue="#status.even"/>|

当前是奇数?

propertyvalue="#status.odd"/>|

是第一个元素吗?

propertyvalue="#status.first"/>|

是最后一个元素吗?

propertyvalue="#status.last"/>

iterator>

iteratorvalue="#{1:

'a',2:

'b',3:

'c'}"var="x">(构造map,需要加#)

propertyvalue="#x.key"/>|

propertyvalue="#x.value"/>

iterator>

subsetsource=”myList”count=”2”start=”3”>

iterator>

property/>

iterator>

subset>

1.css(覆盖struts2原来的css)

2.覆盖单个文件

$#%的区别

$用于i18n和struts的配置文件

#取得ActionContext的值

%将原来的文本属性解析为OGNL表达式,对本来就是OGNL的属性不起作用

 

JavaScript

区分大小写,基于对象

JSP注释和HTML注释的区别

HTML注释:

---->

能在客户端显示一个注释,标记内的所有JSP脚本元素、指令和动作正常执行,也就是说编译器会扫描注释内的代码,如:

—这个页面加载于<%=newjava.util.Date().toString()%>-->,在客户端HTML源代码中显示为:

—这个页面加载于SATOct1120:

38:

20CST2011-->

JSP注释:

<%%>

JSP引擎对JSP注释不作任何处理,既不发送到客户端,也不在客户端的JSP页面显示,客户端源代码中是看不到的

JavaScript注释

--

****

//-->

arrayObject.splice(index,howmany,element1,.....,elementX)

Parameter

参数

Description

描述

index

必选项。

指定在哪个位置加入/删除元素,必须是数字

howmany

必选项。

指定有多少元素应该被删除。

必须是数字,可以是"0"

element1

可选。

指定要加入到数组中的新元素

elementX

可选。

可以加入多个元素

如:

vararr=newArray(5)

arr[0]="Jani"

arr[1]="Hege"

arr[2]="Stale"

arr[3]="KaiJim"

arr[4]="Borge"

document.write(arr+"
")

arr.splice(2,0,"Lene")

document.write(arr+"
")

输出结果为:

Jani,Hege,Stale,KaiJim,Borge

Jani,Hege,Lene,Stale,KaiJim,Borge

Window.setTimeout(“function()”,val);表示多少毫秒(val)之后执行function()函数,

Window.status=“*”,用来设置状态列(statusbar)显示的文字内容

正则表达式

正则表达式被定义在一对“/”之间,如varfilter=/a$/可以匹配任意以字母a结尾的字符串

元字符:

在正则表达式中有特殊意义的专用字符,用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式,如“+”、“?

”、“*”

定位符:

用于规定匹配模式在目标对象中的出现位置,如“^”、“$”、“\b”、“\B”

^匹配字符串的开头,在多行检索中,匹配一行的开头

$匹配字符串的结尾,在多行检索中,匹配一行的结尾

/b匹配一个词语的边界。

简而言之,就是位于字符/w和/W之间的位置,或位于字符/w

和字符串的开头和结尾的位置(但注意:

[/b]匹配的是退格符)

/B匹配非词语边界的字符

限定符:

用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配,默认情况下,正则表达式使用最长(也叫贪婪)匹配原则,*、+和?

限定符都是贪婪的,因为它们会尽可能多的匹配文字,在其他限定符(*、+{n}、{n,}、{n,m})之后加上“?

”,就会变成最短(也叫非贪婪)匹配原则。

+

匹配前面的子表达式出现一次或连续多次,如”ab+”与在字母a后连接出现一个或多个b的字符串匹配,+等价于{1,}

*

匹配前面的子表达式出现零次或连续多次,如”ab*”与在字母a后连接出现零个或多个b的字符串匹配,*等价于{0,}

?

匹配前面的子表达式出现零次或一次,如”ab?

”可以匹配’a’或’ab’,+等价于{1,}

{n}

n是一个非负整数,匹配前面的子表达式连续出现n次

{n,}

n是一个非负整数,匹配前面的子表达式至少连续出现n次,“b{1,}”等价于“b+”,“b{0,}”匹配“b*”

{n,m}

m和n是一个非负整数,且n<=m,逗号和数字之间不能有空格,匹配前面的子表达式至少连续出现n次,最多连续出现m次,“b{0,1}”匹配“b?

选择匹配符:

只有一个,就是“|”,用圆括号将所有选项括起来,相邻选项之间用“|”分隔,两个选项是“|”两边尽可能最大的表达式。

分组组合符和反向引用符:

分组组合符就是将正则表达式中的某一部分内容组合起来的符号,反向引用符则是用于匹配前面的分组组合所捕获到的内容标识符号

(1)(pattern)将圆括号中的pattern部分组合成一个可统一操作的组合项和子匹配,每个捕获的子匹配项按照它们在正则表达式模式中从左到右出现的顺序存储在缓冲区中.缓冲区从1开始编号,最多可存储99个子匹配捕获的内容.存储在缓冲区中的子匹配捕获的内容,可以在编程语言中被检索,也可以在正则表达式中被反向引用.若要匹配字面意义的括号字符"("和")",在正则表达式中要分别使用"/("和"/)".

(2)/num匹配编号为num的缓冲区所保存的内容,此处的num是一个标识特定缓冲区的一位或两位十进制正整数,这种方式称为子匹配的反向引用.反向引用最有用的应用之一就是能提供表示相同匹配项的能力,例如,要匹配连续的5个数字字符,可以使用/d{5}作为正则表达式文本,它可以匹配12345,但是,要匹配连续的5个相同的数字字符,如55555、11111等,需要使用(\d)\1{4}作为正则表达式文本,\1表示与前面(\d)所捕获的内容一样,\1{4}则表示前面的(\d)所捕获的内容还连续出现4次.又例如,要匹配"Isisthecostofofgasolinegoingupup?

"中所有连续重复的单词部分,可以使用^b([a-z]+)\1\b\gi作为正则表达式文本.

(3)(?

:

pattern)将圆括号中的pattern部分组合成一个可统一操作的组合项,但不把这部分内容当作子匹配捕获,即pattern部分是一个非捕获匹配,它匹配的内容不存储在缓冲区中供以后使用.这对必须进行组合、但又不想让组合的部分具有子匹配特点的情况很有用.

(4)(?

=pattern)称为正向"预测先行"匹配,在被搜索字符串的相应位置必须有pattern部分匹配的内容,但这部分匹配的内容不作为匹配结果处理,更不会被存储在捕获缓冲区中供以后使用.(?

=pattern)必须位于一个正则表达式模式的最前或最后面.如使用“a(?

=b|c)”作为正则表达式模式,只与“ab”和“ac”中的“a”匹配

(5)(?

!

pattern)称为反向"预测先行"匹配,在被搜索的字符串的相应位置不能有pattern部分匹配的内容,除此之外,功能与正向"预测先行"匹配一样.

特殊字符:

\t制位表(/u0009)

\n换行符(/u000A)

\v垂直制位表(/u000B)

\f换页符(/u000C)

\r回车(/u000D)

字符匹配符:

[...]位于括号内的任意字符,[...]中的“\”仍作为转义符,它本身需要使用“\\”

[^...]不在括号之中的任意字符

.除换行符和其他Unicode行中止符之外的任意字符

[a-z][1-9]

/w任何ASCII单字字符,等价于[a-zA-Z0-9_]

/W任何ASCII非单字字符,等价于[^a-zA-Z0-9_]

/s任何Unicode空白符[/f/n/r/t/v]

/S任何Unicode非空白符,注意/w和/S的不同[^/f/n/r/t/v]

/d任何ASCII数字,等价于[0-9]

/D除了ASCII数字之外的任何字符,等价于[^0-9]

g是全局标志,加上会对所有匹配部分起作用,没有这个标志,只会对最早匹配的内容起作用

i是忽略大小写标志

m是多行标志,

CSS

Htmlselector

Classselector

IDselector

#someId{pro:

value}

优先级:

ID选择器>CLASS选择器>HTML选择器

样式属性分类:

●字体

字体

font-family

中文字体要用引号,英文字体不需要

文字大小

font-size

单位有:

px,mm,cm,in(英寸),pt(磅)

文字样式

font-style

Normal,Italic(斜体),Oblique

文字粗细

font-weight

normal,bold,lighter

是否划线

text-decoration

underline,overline,line-through,blink,超链接文体默认是under-line,设置text-decoration:

none;可以去掉其下划线

字母大写

font-variant

small-caps(大写字母),normal

是否大写

text-transform

capitalize(首字母大写),uppercase(所有字母大写),lowercase(所有字母小写),none

字体颜色

color

●背景

背景颜色

background-color

背景图片

background-image

background-image:

url(**);

是否重复

background-repeat

norepeat,repeat-x,repeat-y

图片位置

background-position

●文本

颜色

text-color

对齐

text-align

left,right,center,justify

缩进

text-indent

px;

修饰

text-decoration

●位置

position

absolute,relative,static

left

top

width

height

●布局

visibility

inherit,visible(可见),hidden(隐藏)

display

block(元素前后都换行,单独一行,inline,list-item,none

float

left(其它文本漂浮在该元素左边),right,none(该元素两边不允许有文本)

clear

清除漂浮对象,与float相反

●边缘

margin

边界大小margin-left…

padding

边界与内部内容空隙大小padding-top…

border-width

border-color

●其它

span和div的区别就是div会造成换行,而span则不会

改变整个页面的链接样式

a:

link{}、a:

visited{}、a:

hover{}、a:

active{}

改变局部的链接样式

假如页面导航部分的id是nvbar,该部分的链接可以用如下:

#nvbara:

link{}#nvara:

visited{}…

AJAX

AJAX主要作用是异步调用和局部刷新,核心技术有JavaScript、XMLHttpRequest、DOM、XML

●JavaScript:

使用JavaScript组织要传递给Web服务器的数据,并将这些数据传递给AJAX引擎,在AJAX获得Web服务器返回的数据之后,可以通过JavaScript来选择要在浏览器窗口中的哪个位置显示哪些数据

●XMLHttpRequest:

XMLHttpRequest允许以异步方式从服务器中获取数据

●DOM:

主要作用是刷新局部数据

●XML:

存储数据和文档,让其他程序共享

实验AJAX异步调用和局部刷新的步骤:

●创建XMLHttpRequest对象,根据是否IE浏览器两种创建方式

在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法写成如下形式:

try{

  if(window.ActiveXObject){

  for(vari=5;i;i--){

  try{

  if(i==2){

  xmlhttp_request=newActiveXObject("Microsoft.XMLHTTP");

}else{

  xmlhttp_request=newActiveXObject("Msxml2.XMLHTTP."+i+".0");

  xmlhttp_request.setRequestHeader("Content-Type","text/xml");

  xmlhttp_request.setRequestHeader("Charset","gb2312");

}

  break;

}catch(e){

  xmlhttp_request=false;

}

}

}elseif(window.XMLHttpRequest){

xmlhttp_request=newXMLHttpRequest();

 if(xmlhttp_request.overrideMimeType

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1