Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

JSP专题:第六部分:用JSP实现聊天室-1

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  这个类的声明使用了try...catch...语句来处理抛出的例外,事实上,你可以不必对这段程序太在意,除了对于不同的JDBC连接你需要重新给DBDriver、ConnStr、MyUser、MyPassword赋值外,在连接数据库时,你可以照搬这段代码,你只需要记得在你以后的程序中使用executeQuery()方法来执行你的SQL语句。

  至于DBDriver、ConnStr、MyUser、MyPassword的值要根据具体的JDBC而定,如何使用JDBC很难简单地说清,你可以参阅在JSP中利用JDBC-ODBC桥连接来自另一台服务器的Sybase数据源、在Win2000下用PHP和JSP连接MySQL两文,你应该会知道如何使用JDBC-ODBC桥来连接数据库,以及如何连接MySQL。你也应该可以举一反三,了解如何通过JDBC来连接其他数据库。

  3.5用户登录的表单


login.jsp:
<%@ page contentType="text/html; charset=gb2312" %>
<html>
  <head>
  <title>聊天室--用户登录</title>
 </head>
 <body>
<P ALIGN=CENTER><FONT SIZE='5' COLOR='#0000FF'>
聊天室</FONT></P>
<P ALIGN=LEFT><FONT SIZE='2' COLOR='#0000FF'>
<A href="/examples/jsp/index.jsp">首页</A>>
<A href="/examples/jsp/login.jsp">用户登录</A></FONT>
<FORM NAME="login" METHOD="POST" ACTION="../servlet/customers.Login">
   <P ALIGN=CENTER><FONT SIZE='4' COLOR='#0000FF'>用户
   <input type=text size=10 name=name>
   </P>
   <P ALIGN=CENTER>口令
   <input type=password size=10 name=password>
   </P>
   <P ALIGN=CENTER><input type=submit value=提交></FONT></P>
</FORM> 
 </body >
</html >

  这是我们第一个没加注释的程序,这是因为,这虽然是一个JSP文件,但是事实上几乎是由纯HTML组成的,只是我们在程序的开头使用了<%@ page contentType="text/html; charset=gb2312" %>,这是一个JSP的page指令,在这里我们使用它,是为了防止中文显示出现问题。

  我们这里的Action对应了customers.Login,这是一个Servlet。Servlet也是一个Java类,只不过这种类是专门用来处理HTTP请求和响应的。

  3.6用户登录的Servlet


Login.java
package customers;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
public class Login extends HttpServlet {
public void doGet(HttpServletRequest request,
  HttpServletResponse response)
throws IOException, ServletException
//处理HTTP的Get动作
{String Name=request.getParameter("name");
 String Password=request.getParameter("password");
 //读取请求中所包含的参数
 HttpSession session=request.getSession(true);
 //定义一个session,如果尚未建立session,此处会创建一个新的session;
 如果session已建立,此处会取得这个session
 int i;
 char[] Temp=Password.toCharArray();
 for (i=0;i<Password.length();i++) Temp[i]=(char)(Temp[i]+i+1);
 Password=Password.copyValueOf(Temp);
 //此处是因为我们的用户口令采取了一种简单的加密方法,可以删除
 customers.DBconn DBconn1= new customers.DBconn();
 ResultSet RS = DBconn1.executeQuery ("select * from x_yyxtyh where 
 id_swgzry='"+Name+"' and yyxtyhkl='"+Password+"'");
 //执行一个SQL语句以验证用户ID及口令是否输入正确
 try{
 if (RS.next()) 
{oneUser thisUser=new oneUser();
 String idSwgzry=RS.getString("id_swgzry");
 String idSwjg=RS.getString("id_swjg");
 String nameSwgzry=RS.getString("name_swgzry");
 String sfks=RS.getString("sfks");
//接受结果集中用户相关信息
 String position=new String("0");
 java.util.Date dateTimenow=new java.util.Date();
 long longDateTimeNow=(long)dateTimenow.getTime();
 thisUser.setOneUser(idSwgzry,nameSwgzry,
 longDateTimeNow,position,idSwjg,sfks);
 session.putValue("thisUser",thisUser);
 //将thisUser对象(当前用户)绑定到session中,标识为thisUser
 ServletContext application=getServletContext();
 userList theUserList;
 if (application.getAttribute("userlist")==null) 
 theUserList=new userList();
 else theUserList=(userList)application.getAttribute("userlist");
//定义application,如果application中不存在一个名为userlist的对象
(在线用户列表),
将创建这个对象;如果已存在,获取这个对象
 theUserList.addUserList(idSwgzry,nameSwgzry,
 longDateTimeNow,position,idSwjg,sfks);
 application.setAttribute("userlist",theUserList);
 //添加当前用户到在线用户列表中
 getServletConfig().getServletContext()
 .getRequestDispatcher("/jsp/chatroom.jsp")
 .forward(request,response);
 //登录成功,转向到/jsp/chatroom.jsp
}
 else
getServletConfig().getServletContext()
.getRequestDispatcher("/jsp/login.jsp")
.forward(request,response);
   //登录失败,返回到/jsp/login.jsp
 RS.close();}
 catch(SQLException ex) 
{System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
public void doPost(HttpServletRequest request,
  HttpServletResponse response)
throws IOException, ServletException
//处理HTTP的Post动作
{
doGet(request, response);
}
}


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Java2下Applet数字签名具体实现方法   下一篇:JSP专题:第六部分:用JSP实现聊天室-2

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号