out.printLn(person+"<br/>");
}
for循环中的冒号(:)相当于 foreach循环里的 in 关键字,相当于如下语法:
String[] personsArr = persons.split(",");
for(int i= 0;i < personsArr.Length();i++){
String person = personsArr[i];
out.printLn(person+"<br/>");
}
---------------------------------------------
String类中的方法equals()、方法contains()以及方法equalsIgnoreCase()的区别
方法contains():判断字符串里是否含有指定的内容 例如:判断字符串"csdn007xj"中是否含有"007"就用此方法实现
方法equals(): 比较此字符串与指定的对象是否相等(大小写一致)
方法equalsIgnoreCase():比较次字符串与指定的对象是否相等(不考虑大小写)
-----------------------------------------------
如果一个页面的表单项太多,我们最好把它们分组显示,就像使用p标签分开段落一样,可以使用fieldset与legend标签对表单内容分组.
fieldset 标签 -- 对表单进行分组
fieldset标签是成对出现的,以<fieldset>开始,以</fieldset>结束
一个表单可以有多个<fieldset>,每对<fieldset>为一组,每组内容的描述可以使用legend标签说明
标签legend就像标题一样没有什么技术含量的
例如:
<form action="dreamdu.php" method="post" id="dreamduform">
<fieldset>
<legend>用户名与密码:</legend>
<input id="hiddenField" name="hiddenField" type="hidden" value="hiddenvalue" />
<label for="username">用户名:</label>
<input type="text" id="username" name="username" value="dreamdu" />
<label for="pass">密码:</label>
<input type="password" id="pass" name="pass" />
</fieldset>
<fieldset>
<legend>性别:</legend>
<label for="boy">男</label>
<input type="radio" value="1" id="sex" name="sex" />
<label for="girl">女</label>
<input type="radio" value="2" id="sex" name="sex" />
<label for="sex">保密</label>
<input type="radio" value="3" id="sex" name="sex" />
</fieldset>
......
</form>
-------------------------------------------------------------------------------
java.util.Map.Entry接口主要就是在遍历map的时候用到
例如:
......
for(Entry<String,Integer> entry : map.getEntry()){
out.println("<tr>");
out.println(" <td>" + entry.getKey() + "</td>");
out.println(" <td>" + entry.getValue() + "</td>");
......
}
--------------------------------------------------------------------------------
request.getRequestURI()返回值类似:/myContext/requestdemo.jsp
返回值是String
request.getRequestURL() 返回值类似:http://localhost:8080/myContext/requestdemo.jsp
返回值是StringBuffer
-------------------------------------------------------------------
java.util.Iterator接口:以统一的方式对各种集合元素进行遍历/迭代的工具,也称“迭代器”。
迭代器模式(用于遍历集合类的标准访问方法)提供一种方法访问一个容器(container)对象的各个元素,而又不需暴露该对象的内部细节。
也就是说,每一种集合类返回的Iterator具体类型可能不同,Array可能返回ArrayIterator,Tree可能返回TreeIterator,但是它们都实现了Iterator接口,因此客户端可以不用关心到底是哪种Iterator,它只需要获得这个Iterator接口就可以了。
java.util.Iterator接口定义:
public interface Iterator{
boolean hasNext(); //是否有下一个,有返回true,没有返回false
Object next(); //遍历到下一个
void remove(); //删除当前元素
}
例如:
......
java.util.List<String> list = new java.util.ArrayList<String>();
list.add("内容一");
list.add("内容二");
list.add("内容三");
java.util.Iterator it = list.iterator();
while(it.hsaNext()){
it.next();
}
......
--------------------------------------------------------------------------------------------------------
include指令:<%@ include file="relativeURL" %>
include行为:<jsp:include page="relativeURL"/>
include指令与include行为作用一样,区别是:
include指令是“先包含,后编译”,在被编译的JSP文件中已经包含被include的文件内容
include行为是“先运行,后包含”,在被编译的JSP文件中没有包含被include的文件内容
----------------------------------------------------------------------------------------
java位移符号
<<是左移符号,x<<1就是x的内容左移一位(x的内容并不改变)
>>是带符号位的右移符号,x>>1就是x的内容右移一位,如果开头是1就补1,开头是0就补0(x的内容并不改变)
>>>是不带符号位的右移符号,x>>>1就是x的内容右移一位,开头补0(x的内容并不改变)
位移运算符只能用于byte,short,char,int,long类型,对于低于int类型的操作数,先自动转换为int再位移,而且位移量不能大于31,对于位移量系统先做对31位的模,得到的结果才是真正的位移量,因为int类型为4个字节,即32位,移动32位将没有任何意义,对于long则是模64位
----------------------------------------------------------------------------------------------------------
java:String类的matches()方法
match()的参数一般为正则表达式,可以试用任何形式的字符串,其中likeType是要匹配的字符串,pattern是生成的正则表达式,sourceStr是已有字符串,判断sourceStr是否满足likeType的正则表达式
......
String likeType = "23";
String pattern = "[a-zA-Z0-9]*["+ likeType +"]{1}[a-zA-Z0-9]*";
String sourceStr = "ads23lutd";
System.out.println(sourceStr.matches(likeType));
......
-----------------------------------------------------------------------------------------------------------
java中两个特殊变量:this和super
变量this
1.如果类的成员变量和方法的参数或方法自己定义的局部变量同名的话就需要使用this变量区分成员变量与其他同名的方法参数和局部变量
2.全面的访问当前对象,而不是访问某个个别的对象时也需要使用this变量
3.this变量用在构造函数的第一个语句,形式是this(参数表),这个构造函数就会调用同一个类的另一个构造函数
变量super
1.当子类中的成员变量或方法与超类(父类)中的成员变量或方法同名,因为子类中的成员变量或方法优先级高,所以如果想要使用超类中的成员变量或方法,就要使用super变量
2.如果想要使用超类(父类)的构造函数则应当使用super(参数表)的形式
-------------------------------------------------------------------------------------------------------------
java中一个类实现序列接口Serializable的作用
对象序列化,这个序列化接口没有任何方法和域,仅用于标识序列化的语意,可以把实现了此接口的类实例(对象)存到字节流,然后可以恢复。
例如:Integer实现了Serializable,所以可以把一个Integer的对象用IO写到文件里,之后再可以从文件里读出,如你开始写入的时候那个对象的intValue() 是5的话,那读出来之后也是5,那么用序列化类的作用,是用来传送类的对象