|
1_AJAX的原理、如何实现刷新及其优点。
传统的WEB访问,都是通过浏览器发送请求,得服务器的响应结果;只要收到结果,就会在浏览器窗口显示,此时就会把原有的页面替换掉!
但是在一些应用中,我们希望保持原来的网页,只是在原网面的局部修改显示,例如注册用户时,对用户名是否重复的校验,google搜索提示框的提示,省份与城市的级联下拉列表框。
为了实现这种不替换原来网页的效果,就不能用浏览器直接发请求了,各种Javascript引擎都提供了一个js对象,用这个对象瞒着浏览器,偷偷与服务器交互,并得到服务器的返回结果 ,再用js代码集合DOM模型修改原网页中的某些元素。
在firefox和ie7等浏览器中,那个js对象是XMLHttpRequest,在ie7以前的ie浏览中,是一个ActiveXObject对象提供的,这个对象通常简称为xhr对象,它有open,connect,send等方法。例如下面一段代码:
1)服务器程序(Servlet代码,容器调用service()方法,决定用doPost(), doGet()方法);
2)页面:html中写一个form表单,两个input, 其中username,
3)js代码
<script type="text/javascript">
function validateUserName(){
var username = document_getElementById("username").value;
alert(username);
var xhr = new XMLHttpRequest();
xhr_open('GET', "/serviceProject/abc_html?username="+username, false);//异步false还是同步true
xhr_onreadystatechange=function(){
xhr_send(null);
alert(xhr_readyState);
if(xhr_readyState == 4){
document_getElementById("result").innerHTML = xhr_reponseText;
}
}
//alert(xhr_reponseText);
}
</script>
2.门面模式
访问者,通过一个门面(Facade)来访问各个组件。
3.常用的6个linux的命令:ls cd man cat mkdir clear
4_SQL
编程:
1. 多线程
主线程
public class CommunicationTest{
static boolean bShouldSub = true;
public static void main(String[] args){
//final boolean bShouldSub = true;
new Thread(){
public void run(){
for(int i =0; i<50; i++){
synchronized(CommunicationTest_class){
if(!bShouldSub)
try{CommunicationTest_class_wait();}catch(Exception e){}
for(int j=0; j<10; j++){
try{Thread_sleep(200);}catch(Exception e){}
System_out_println(Thread_currentThread().getName() +":"+(j+1));
}
bShouldSub = false;
CommunicationTest_class_notify();
}
}
}
}.start();//加了大括号就是Thread的子类
for(int i=0; i<50; i++){
synchronized(CommunicationTest_class){
if(bShouldSub)
try{CommunicationTest_class_wait();}catch(Exception e){}
for(int j=0; j<10; j++){
try{
Thread_sleep(new Random().nextInt(1000));
}catch(Exception e){}
System_out_println(Thread_currentThread().getName() +":"+(j+1));
}
bShouldSub = true;
CommunicationTest_class_notify();
}
}
}
}
HashCode 的原理及作用?
java中的每一个对象都可以有一个标示,即hashcode值,有的可以一样,有的不一样;hashcode值128位,通过%、/等标准进行分堆归类,(引申:equals()相等,但hashcode值不一定一样)
用java怎么实现每天有1亿条记录的DB存储?MySQL每天有上亿记录数据量的数据库如何设计?
用PreparedStatement代替Statement,要注意该对象被重用,才能发挥其性能价值;数据库设计应该将存储记录的表分表设计。
从一亿条记录中查找看过5个以上电影的用户数量?
select count(*) as c from user group by userid having c >5;
对组进行条件过滤用having 不是where, |
+10
|