====================================================================================
2. JS判断使用的是哪个浏览器
/* 判断使用的是哪个浏览器 */
function getExplorer() {
var explorer = window.navigator.userAgent ;
//ie
if (explorer.indexOf("MSIE") >= 0) {
browser = 1;
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
browser = 2;
}
//Chrome
else if(explorer.indexOf("Chrome") >= 0){
browser = 3;
}
//Opera
else if(explorer.indexOf("Opera") >= 0){
browser = 4;
}
//Safari
else if(explorer.indexOf("Safari") >= 0){
browser = 5;
}
}
====================================================================================
3. ajax技术
/* ajax初始化XMLHTTPREQ */
function createXMLHttpRequest(){
// window.alert("调用createXMLHttpRequest()");
//对于Mozilla浏览器
if(window.XMLHttpRequest){
//直接使用XMLHttpRequest函数来创建XMLHttpRequest对象
XMLHttpReq = new XMLHttpRequest();
}
//对于IE浏览器
else if(window.ActiveXObject){
try{
//使用ActiveXObject函数创建浏览器
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
//如果出现异常,再次尝试以如下方式创建XMLHttpRequest
try{
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
window.alert("无法调用ajax技术");
}
}
}
}
function ajax(){
createXMLHttpRequest();
var url = "XXX.jsp";//这里填写需要后台运行的JSP文件
XMLHttpReq.open("POST",url,true);
XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
XMLHttpReq.onreadystatechange = function(){
if(XMLHttpReq.readyState == 4){
window.alert("4");
if(XMLHttpReq.status == 200){
window.alert(XMLHttpReq.responseText);//这里是返回页面的全部内容
}
}
};
XMLHttpReq.send("info="+msg+"&p=1.0");//如果对应的JSP文件有参数的话,放在这里。
}
====================================================================================
4. 数据库语言可以都放在一个JSP文件里面,然后通过指定数字调用指定的数据库语言
<%@page language ="java" import="java.sql.*" import="java.util.*" import="java.text.*" pageEncoding="utf-8"%>
<%
request.setCharacterEncoding("utf-8");
String key = request.getParameter("k");
if(key!=null && key.equals("databasekey")){
// out.println("密码通过");
String number = request.getParameter("n");
if(number!=null){
// out.println("进入"+number+"号通道");
/////////////////////// 连接数据库 /////////////////////////////////
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/用户名?user=用户名&password=密码");
Statement stat=conn.createStatement();
int i = -1;
PreparedStatement ps =null;
String sql = "";
String name = "";
String id = "";
switch(number){
////////// 1.插入评论 /////////
/**
* 1. user 当前登录的用户名
* 2. Comment 发表的评论内容
*/
case "1":
name = (String)request.getSession().getAttribute("user");
String content = request.getParameter("Comment");
id = request.getParameter("ID");
if(name!=null && content!=null && id!=null && !name.equals("") && !content.equals("") && id.matches("^[0-9]*[1-9][0-9]*$")){
String ip=request.getHeader("x-forwarded-for");
if (ip == null) {
ip=request.getRemoteAddr();
}
String postTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
sql = "Insert into Comment(IP,Name,Content,PostTime) Values(?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1,ip);
ps.setString(2,name);
ps.setString(3,content);
ps.setString(4,postTime);
i=ps.executeUpdate();
if(i>0){
out.println(name+":"+content);
/////// 评论与留言映射 ////
sql = "Insert into CL(ListId,CommentId) Values(?,(SELECT MAX(ID) from Comment))";
ps = conn.prepareStatement(sql);
ps.setString(1,id);
ps.executeUpdate();
}
}
break;
case "2":
///////// 2. 上传头像 ////////
/**
* 1. user 当前登录的用户名
* 2. it 上传图片的后缀名,图片的名字用用户名命名。
*/
name = (String)request.getSession().getAttribute("user");
String Image = request.getParameter("i");
if(name!=null && Image!=null && !name.equals("") && !Image.equals("")){
sql = "Update HeadImage set Hi=? where UserId=(Select id from user where UserName=?)";
ps = conn.prepareStatement(sql);
ps.setString(1,Image);
ps.setString(2,name);
ps.executeUpdate();
}
break;
case "3":
/////// 3. 添加朋友 //////
name = (String)request.getSession().getAttribute("user");
String FriendName = request.getParameter("f");
if(name!=null && FriendName!=null && !FriendName.equals("") &&!name.equals("")){
sql = "Insert into Friends(NameId,FriendId) Values((Select id from user where UserName=?), (Select id from user where UserName=?) )";
ps = conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,FriendName);
ps.executeUpdate();
ps = conn.prepareStatement(sql);
ps.setString(1,FriendName);
ps.setString(2,name);
ps.executeUpdate();
}
break;
case "4":
///////// 4.点赞 ///////////
id = request.getParameter("id");
if(id!=null && id.matches("^[0-9]*[1-9][0-9]*$")){
sql = "UPDATE List SET Agree=Agree+1 WHERE id=?";
ps = conn.prepareStatement(sql);
ps.setString(1,id);
ps.executeUpdate();
}
break;
default:break;
}
if(conn!=null){
conn.close();
}
}
}
%>
====================================================================================
5. 如何使用ajax实现别人点赞,评论,添加好友,艾特的时候,不刷新即可弹出提示框。(生产中还是用websocket代替ajax长轮询)
1. application的作用是 所有访问到这个网页的人都可以访问application下的所有变量。
2. Session的作用是 每个人都有自己的一片小天地。
那么实现的方法:
① 用appliaction产生一个链表LInkedList