<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>聊天用户登录</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> <script language="javascript">
function check() {
if (document.form1.nickName.value == "") {
alert("用户昵称不能为空!");
document.form1.nickName.focus();
return false;
} else if (document.form1.userPassword.value == "") {
alert("密码不能为空");
document.form1.userPassword.focus();
return false;
} else
return true;
}
</script>
</head> <body>
<table align="center" cellpadding="0" cellspacing="0" border="0"
width="500">
<tr>
<td height="100" colspan="2"
style="font-size: 18px; font-weight: bold" align="center">
聊天用户登录
</td>
</tr>
<!-- 定义一个Form表单,表单提交的后台处理页面为chklogin.jsp -->
<form action="chklogin.jsp" method="post" name="form1" onSubmit="return check()">
<tr>
<td width="222" align="right">
昵称:
</td>
<td width="278">
<!-- 表单中的用户昵称输入框,name属性为nickName,用于后台处理页面,接收用户输入的昵称 -->
<input type="text" name="nickName" style="width: 150">
</td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
<tr>
<td align="right">
密码:
</td>
<td>
<!-- 表单中的用户昵称输入框,name属性为userPassword,用于后台处理页面,接收用户输入的昵称 -->
<input type="password" name="userPassword" style="width: 150">
</td>
</tr>
<tr>
<td colspan="2" align="center" height="30" valign="bottom">
<input type="submit" value="登录">
<input type="reset" value="取消">
</td>
</tr>
</form>
<tr>
<td height="50" valign="bottom" colspan="2">
本聊天系统无须注册,登录成功后系统将自动保存用户名和密码
</td>
</tr>
</table>
</body>
</html>
以上代码是 静态网页  用于提交用户名和密码,下面的是登录信息后台处理页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="net.chat.*"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>聊天用户登录</title>
      <meta http-equiv="pragma" content="no-cache">
           <meta http-equiv="cache-control" content="no-cache">
                <meta http-equiv="expires" content="0">
</head>
<jsp:useBean id="check" class="net.chat.CheckLogin" scope="page" />
<body>
<%
request.setCharacterEncoding("GB2312");
String nickName = request.getParameter("nickName");
String userPassword = request.getParameter("userPassword");
String loginMsg = check.checklogin(nickName, userPassword);
if (loginMsg.equals("SUCCESS_LOGIN")) {
session.setAttribute("_USER", nickName);
session.setAttribute("_LOGIN", "_SUCCESS");
response.sendRedirect("chatRoomList.jsp");
} else if (loginMsg.equals("WRONG_PASSWORD")) {
out.println("你输入的用户名或密码错误,请验证后重新输入");
if (session.getAttribute("_LOGIN") != null)
session.removeAttribute("_LOGIN");
} else if (loginMsg.equals("NONE_USER")) {
check.saveToDataBase(nickName, userPassword);
session.setAttribute("_USER", nickName);
session.setAttribute("_LOGIN", "_SUCCESS");
response.sendRedirect("chatRoomList.jsp");
}
%>
</body>
</html>
出现的错误是
连接数据库错误:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at net.chat.BaseConn.<init>(BaseConn.java:20)
at net.chat.CheckLogin.checklogin(CheckLogin.java:24)
at org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:94)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2012-2-24 18:14:45 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at net.chat.CheckLogin.checklogin(CheckLogin.java:55)
at org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:94)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
javaBean代码是:
package net.chat;import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;public class CheckLogin {
public String checklogin(String userName, String userPassword)
throws SQLException, ClassNotFoundException {
BaseConn conn = null;
try {
conn = new BaseConn();
String sql = "select * from userInfo where nickName=?"; PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, userName);
ResultSet rs = conn.executeQuery();
if (rs.next()) {
if (rs.getString("userPassword").equals(userPassword)) {
SimpleDateFormat cal = new SimpleDateFormat(
"yyy-MM-dd HH:mm:ss");
String time = cal.format(new java.util.Date());
sql = "update userInfo set lastLogin Time=?where nickName=?";
ps = conn.preparedStatement(sql);
ps.setString(1, time);
ps.setString(2, userName);
conn.executeUpdate();
return "SUCCESS_LOGIN";
} else
return "WRONG_PASSWORD";
} else
return "NONE_USER";
} catch (SQLException ex) {
ex.printStackTrace();
throw ex;
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
throw ex;
} finally {
conn.closeDB(); }
}
public boolean saveToDataBase(String userName, String userPassword)
throws SQLException, ClassNotFoundException {
BaseConn conn = null;
try {
conn = new BaseConn();
SimpleDateFormat cal = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
String time = cal.format(new java.util.Date());
String sql = "insert into userInfo(nickName,userPassword,lastLoginTime) values(?,?,?)";
PreparedStatement ps = conn.preparedStatement(sql);
ps.setString(1, userName);
ps.setString(2, userPassword);
ps.setString(3, time);
return true;
} catch (SQLException ex) {
ex.printStackTrace();
throw ex; } catch (ClassNotFoundException ex) {
ex.printStackTrace();
throw ex;
} finally {
conn.closeDB(); }
}
}
这个怎么改,请大家指点下,谢谢了!!!!!