先說明一下,登陸流程,首先入口為login.html。然后為進(jìn)入connnet.jsp,在這jsp中調(diào)用javabean(connectDB)主要完成和數(shù)據(jù)庫的連接,把登陸的用戶名和密碼記錄到user數(shù)據(jù)庫里面。但我這沒有寫完善,其中還的完善檢測功能,和一些具體的個人信息。在viewUser.jsp中,可以調(diào)用數(shù)據(jù)庫中已經(jīng)注冊人的信息,在這里,我們可以加一些改動。
login.html
<html>
<title>
登陸頁面
</title>
<body>
<div align=center>
<form action="connect.jsp" method="get">
<table border=3 cellspacing=3>
<tr><td>用戶名:</td><td><input type="text" name="name"></td></tr><br>
<tr><td>密 碼: </td><td><input type="password" name="password"></td></tr><br>
</table>
<input type="submit" value="提交">
</form>
</div>
</table>
</body>
</html>
connet.jsp
<%@page contentType="text/html;charset=gbk" language="java" import="java.sql.*"%>
<!--獲得數(shù)據(jù)-->
<html>
<body>
<jsp:useBean id="connect" scope="page" class="xu.ConnectDB" />
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
connect.AddUser(name,password);
%>
<a href="/Login.html">我要加人</a>
<a href="/viewUser2.jsp">看看有多少了???</a>
</body>
</html>
viewUser.jsp
<%@page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,java.io.*" %>
<html>
<body>
<a href="/Login.html">我還要加</a>
<!--連接數(shù)據(jù)庫,提取數(shù)據(jù)-->
<%="顯示數(shù)據(jù)"%>
<%
try
{
int count=0;
Class.forName("org.gjt.mm.mysql.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/message","root","");
Statement stm=con.createStatement();
ResultSet rst=stm.executeQuery("select * from user");
while(rst.next())
{
out.println(rst.getString("name"));
out.println(rst.getString("password")+"<br>");
count++;
out.println("這是第"+ count +"條");
}
rst.close();
stm.close();
con.close();
}
catch(Exception e)
{
}
%>
</body>
</html>
connectDB.java
package xu;
import java.sql.*;
public class ConnectDB {
private Connection con;
public static Connection connectDB() {
Connection conn = null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/message";
String username = "root";
String password = "";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public void AddUser(String name, String password) {
this.con = ConnectDB.connectDB();
try {
PreparedStatement stm = con
.prepareStatement("insert into user values(?,?)");
stm.setString(1, name);
stm.setString(2, password);
stm.execute();
stm.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void getUser()
{
this.con=ConnectDB.connectDB();
try
{
Statement stm=con.createStatement();
String sql="select * from user";
ResultSet rst=stm.executeQuery(sql);
while(rst.next())
{
String name= rst.getString("name");
String password= rst.getString("password");
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
其基本情況就是這樣,在設(shè)計(jì)connectDB.java時,我先用的一個不能在頁面連接數(shù)據(jù)庫!在北京的馮濤的指導(dǎo)下,完成了設(shè)計(jì)!謝謝啦!
下面為我以前的設(shè)計(jì)類,單獨(dú)運(yùn)行類沒問題,但在設(shè)計(jì)頁面時,連接數(shù)據(jù)庫有問題?其具體晚上出了問題,我還在研究!
private Connection con;
public ConnectDB()
{
try
{
Class c1=Class.forName("org.gjt.mm.mysql.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost/message","root","");
}
catch(Exception e)
{
}
}
public void AddUser( String name, String password)
{
try
{
PreparedStatement stm=con.prepareStatement("insert into user value(?,?)");
stm.setString(1,name);
stm.setString(2,password);
try
{
stm.executeQuery();
}catch(Exception e)
{
}
con.close();
}
catch(Exception e)
{
}
}