- 配置Eclipse的web運行服務器
window–>preference–>server–>runtime enviroment–>add 然後選擇自己本機的tomcat。前提是本地要下載有tomcat eclipse創建Dynamic web project
輸入我的工程名LoginServlet,然後next 記得選上創建web.xml 也可以後面再創建。在webcontent下面新建一個index.html
就是兩個form一個登陸,一個用戶註冊。對應兩個servlet
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>登錄</title>
</head>
<body>
<form action="http://localhost:8080/LoginServlet/LoginServlet" method="post">
用戶:<input type="text" name="username" /><br/>
密碼:<input type="password" name="password" /><br/>
<input type="submit" value="登錄" />
</form>
<form action="http://localhost:8080/LoginServlet/RegisterServlet" method="post">
用戶:<input type="text" name="username" /><br/>
密碼:<input type="password" name="password" /><br/>
<input type="submit" value="註冊" />
</form>
</body>
</html>
在javaResource目錄下創建對應的LoginServlet和RegisterServlet
LoginServlet代碼如下,其中調用了UserRegister類裏面的LonginCheck()方法,對頁面輸入的用戶名和密碼進行驗證
//引入所需要的包
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
//重寫doGet方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserRegister ur = new UserRegister();
boolean b = ur.LonginCheck(username, password);
System.out.println(b);
//服務器端打印信息
response.setContentType("text/html;charset=GB18030");
//返回html頁面
response.getWriter().println("<html>");
response.getWriter().println("<head>");
response.getWriter().println("<title>登錄信息</title>");
response.getWriter().println("</head>");
response.getWriter().println("<body>");
if(b){
response.getWriter().println("歡迎【" + username + "】用戶登錄成功!!!");
}else
{
response.getWriter().println("登陸失敗");
}
response.getWriter().println("</body>");
response.getWriter().println("</html>");
System.out.println("yeee");
}
//重寫doPost方法
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException {
doGet(request, response);
}
}
RegisterServlet的代碼如下
其中調用了UserRegister類裏面的regist()方法進行註冊。其實就是往數據庫裏面插入一條數據
//引入所需要的包
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class RegisterServlet extends HttpServlet {
//重寫doGet方法
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserRegister tb = new UserRegister();
// TestConnDb tb = new TestConnDb();
UserBean ub =new UserBean();
ub.setUserId(username);
ub.setPassword(password);
tb.setUserBean(ub);
try {
tb.regist();
//服務器端打印信息
//System.out.println("username=" + username);
//System.out.println("password=" + password);
//設置編碼格式
response.setContentType("text/html;charset=GB18030");
//返回html頁面
response.getWriter().println("<html>");
response.getWriter().println("<head>");
response.getWriter().println("<title>登錄信息</title>");
response.getWriter().println("</head>");
response.getWriter().println("<body>");
response.getWriter().println(username + "註冊成功");
response.getWriter().println("</body>");
response.getWriter().println("</html>");
System.out.println("yeee");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//重寫doPost方法
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,
IOException {
doGet(request, response);
}
}
然後就是操作數據庫的類,也是直接創建在SRC下面就OK了,主要是連接數據庫,進行註冊和密碼校驗操作。這裏用到了UserBean類。裏面提供了一個測試的main方法,可進行測試連接數據庫操作是否正確
import com.mysql.jdbc.Driver;
import java.sql.*;
public class UserRegister
{
private UserBean userBean;
private Connection con;
//獲得數據庫連接。
public UserRegister()
{
String url="jdbc:mysql://192.168.1.107/"+"test"+"?user="+"root"+"&password="+"test";
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(url);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//設置待註冊的用戶信息。
public void setUserBean(UserBean userBean)
{
this.userBean=userBean;
}
//進行註冊
public void regist() throws Exception
{
String reg="insert into userinfo(userid,password) values(?,?)";
try
{
PreparedStatement pstmt=con.prepareStatement(reg);
pstmt.setString(1,userBean.getUserId());
pstmt.setString(2,userBean.getPassword());
pstmt.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
}
//登陸校驗
public boolean LonginCheck(String username,String password){
try {
Statement stmt=con.createStatement();
String sql="select * from userinfo where userid='"+username+"';";
ResultSet rs=stmt.executeQuery(sql);
if(rs.next())
{
String passwordR=new String(rs.getString("password"));
// System.out.println(passwordR);
if(passwordR.equals(password)){
System.out.println(passwordR);
return true;
}else{
return false;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
//測試
// public static void main(String[] args) {
// UserRegister ur = new UserRegister();
//// UserBean ub = new UserBean();
//// ub.setUserId("te");
//// ub.setPassword("te1");
//// ur.setUserBean(ub);
//// try {
//// ur.regist();
//// } catch (Exception e) {
//// // TODO Auto-generated catch block
//// e.printStackTrace();
//// }
// System.out.println(ur.LonginCheck("te", "te1"));
//// System.out.println(ur.LonginCheck("u1", "pwd1"));
//
//
// }
}
userbean類的代碼如下
public class UserBean
{
private String userid;
private String password;
public void setUserId(String userid)
{
this.userid=userid;
}
public void setPassword(String password)
{
this.password=password;
}
public String getUserId()
{
return this.userid;
}
public String getPassword()
{
return this.password;
}
}
最後是web-inf下面的web.xml配置了
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>MyServlet1</servlet-name>
<servlet-class>RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet1</servlet-name>
<url-pattern>/RegisterServlet</url-pattern>
</servlet-mapping>
</web-app>
在工程名上右鍵,run as –>run on server
運行結果:
註冊:test1 密碼:test11
登陸驗證一下:
數據庫驗證userinfo裏面插入了一條數據:
這樣一個簡單的登陸和註冊的javaServle+tomcat+mysql的測試環境就搭建好了
備註:
搭建過程中遇到的一些問題:
1 沒有將mysql-connector-java.jar拷貝到tomcat的lib下面導致連接數據庫失敗
搭建環境如果有用到第三方jar包,記得將對應的jar包拷貝到tomcat的lib下面
2 開始提示註冊的servlet找不到,是因爲沒有在web.xml裏面配置對應的servlet,頁面與servlet的交互都應該在web.xml裏面進行配置
3 連接不上mysql原因是mysql的root用戶登錄限定在了linux上,需要改成任意主機。具體實現可以百度一下