javaServlet+tomcat+mysql簡單登陸註冊web測試環境搭建

  • 配置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上,需要改成任意主機。具體實現可以百度一下

發佈了65 篇原創文章 · 獲贊 29 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章