javaweb+mysql+servlet實現信息添加功能


1.題目要求

 

 

2.源代碼及結果

1)文件結構:

 

 

2)添加信息界面   stuinfo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>當前位置:添加學生信息</title>
</head>
<body>
<form action="AddServlet" method="post"> 

<table    align="center" width="600px"  >
<tr>
<td align="center">登錄賬號:</td>
<td><input type="text" name="uusername"></td>
</tr>

<tr>
<td align="center">登錄密碼:</td>
<td><input type="password"  name="upwd"></td>
</tr>


<tr>
<td align="center">性別:</td>
<td>
<select   name="usex">
<option></option>
<option></option>
</select> </td>
</tr>

<tr>
<td align="center">姓名:</td>
<td><input type="text"  name="uname"></td>
</tr>


<tr>
<td align="center">學號:</td>
<td><input type="text"   name="ustuid"></td>
</tr>



<tr>
<td align="center">電子郵件:</td>
<td><input type="text"  name="uemail"></td>
</tr>
<tr>
<td align="center">所在學院:</td>
<td><input type="text"   name="uxy"></td>
</tr>


<tr>
<td align="center">所在系:</td>
<td><input type="text"   name="ux"></td>
</tr>
<tr>
<td align="center">所在班級:</td>
<td><input type="text"   name="ubj"></td>
</tr>


<tr>
<td align="center">入學年份(屆):</td>
<td>
<select   name="uyear">
<option> 2019</option>
<option> 2018</option>
<option> 2017</option>
<option> 2016</option>
<option>2014</option>
<option>2013</option>
</select> </td>
</tr>    

<tr>
<td align="center">生源地:</td>
<td><input type="text"   name="uwhere"></td>
</tr>

<tr>
<td align="center" >備注</td>
<td><input type="text"   name="ubeizhu"></td>
</tr>

<tr>
<td align="center"><input type="submit" value="添加"> </td>
</tr>
</table>
</form>
</body>
</html>

 

3)用戶屬性  User.java

package service;

public class User {

    private String zh;
    private String pwd;
    private String sex;
    private String name;
    private String stuid;
    private String email;
    private String xueyuan;
    private String xi;
    private String bj;
    private String enter;
    private String wher;
    private String beizhu;
    public String getZh() {
        return zh;
    }
    public void setZh(String zh) {
        this.zh = zh;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getStuid() {
        return stuid;
    }
    public void setStuid(String stuid) {
        this.stuid = stuid;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getXueyuan() {
        return xueyuan;
    }
    public void setXueyuan(String xueyuan) {
        this.xueyuan = xueyuan;
    }
    public String getXi() {
        return xi;
    }
    public void setXi(String xi) {
        this.xi = xi;
    }
    public String getBj() {
        return bj;
    }
    public void setBj(String bj) {
        this.bj = bj;
    }
    public String getEnter() {
        return enter;
    }
    public void setEnter(String enter) {
        this.enter = enter;
    }
    public String getWher() {
        return wher;
    }
    public void setWher(String wher) {
        this.wher = wher;
    }
    public String getBeizhu() {
        return beizhu;
    }
    public void setBeizhu(String beizhu) {
        this.beizhu = beizhu;
    }
    
    
    
    
}

4)獲取數據庫鏈接  DBUtil.java

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {
    

    // 數據庫連接地址
    private static String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

    // 數據庫的用戶名
    private static String UserName = "root";
    // 數據庫的密碼
    private static String Password = "18735";

    public static Connection getConnection() {
        Connection Conn=null;

        try {

            Class.forName("com.mysql.cj.jdbc.Driver"); // 加載驅動

            System.out.println("加載驅動成功!!!");
        } catch (ClassNotFoundException e) {
            // TODO: handle exception
            e.printStackTrace();
        }

        try {

            //通過DriverManager類的getConenction方法指定三個參數,連接數據庫
            Conn = DriverManager.getConnection(URL, UserName, Password);
            System.out.println("連接數據庫成功!!!");

            //返回連接對象
            //return Conn;

        } catch (SQLException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return Conn;
    }
    public static void main(String[] args)throws SQLException {  //測試數據庫是否連通
        Connection conn = getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql ="select * from stuInfo";
        pstmt = conn.prepareStatement(sql);
        rs = pstmt.executeQuery();
        System.out.println(getConnection());
        while(rs.next()){
            System.out.println("空");
        }

        }


}

 

5)數據處理接口,提交數據到數據庫 UserDao.java

package dao;

import java.sql.*;

import service.User;
import util.DBUtil;

public class UserDao {
    public boolean addx(User user) {
        //創建數據庫連接
        String sql="insert into stuinfo(zh,pwd,sex,name,stuid,email,xueyuan,xi,bj,enter,diqu,beizhu)values('"+user.getZh()+"','"+user.getPwd()+"','"+user.getSex()+"','"+user.getName()+"','"+user.getStuid()+"','"+user.getEmail()+"',"
                + "'"+user.getXueyuan()+"','"+user.getXi()+"','"+user.getBj()+"','"+user.getEnter()+"','"+user.getWher()+"','"+user.getBeizhu()+"')";
        Connection conn = DBUtil.getConnection();        
        Statement state = null;        
        try {
            state = conn.createStatement();
            int a= state.executeUpdate(sql);
            state.close();
            return a>0?true:false;
        } catch (Exception e) {
            e.printStackTrace();
        }   
        return false;
    }

}

6)   連接服務器,交互式的瀏覽和修改數據   AddServlet.java

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.UserDao;

import service.User;

/**
 * Servlet implementation class AddServlet
 */
@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub

        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        doGet(request, response);

        String zh = request.getParameter("uusername");
        System.out.println(zh);
        String pwd = request.getParameter("upwd");
        String email = request.getParameter("uemail");
        String name = request.getParameter("uname");
        String sex = request.getParameter("usex");
        String where = request.getParameter("uwhere");
        String enter = request.getParameter("uyear");
        String stuid = request.getParameter("ustuid");
        String xy = request.getParameter("uxy");
        String xi = request.getParameter("ux");
        String bj = request.getParameter("ubj");
        String beizhu = request.getParameter("ubeizhu");
        Integer kpeople = Integer.valueOf(request.getParameter("ustuid"));

        //int s=Integer.parseInt(stuid);
        // 登錄賬號
        String a = "^[a-zA-Z][a-zA-Z0-9]{6,12}$";
        // E-mail

        String d = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";

//
        String b = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,12}$";
        if (!zh.matches(a)) { System.out.println(zh); PrintWriter out =
          response.getWriter(); out.print(
          "<script>alert('用戶名有誤');window.location.href='stuInfo.jsp'</script>");
          }
          
          else
         if (!pwd.matches(b)) {
            PrintWriter out = response.getWriter();
            out.print("<script>alert('密碼有誤!');window.location.href='stuInfo.jsp'</script>");

        } 
        else if (!email.matches(d)) {
            PrintWriter out = response.getWriter();
            out.print("<script>alert('郵箱有誤!');window.location.href='stuInfo.jsp'</script>");
        } 
        else if(stuid.length()!=8||kpeople<20180000||kpeople>20189999)
        {  PrintWriter out = response.getWriter();
            out.print("<script>alert('學號有誤!');window.location.href='stuInfo.jsp'</script>");
        }
        else {
            User user = new User();
            user.setZh(zh);
            user.setPwd(pwd);
            user.setName(name);
            user.setSex(sex);
            user.setWher(where);
            user.setXueyuan(xy);
            user.setEmail(email);
            user.setXi(xi);
            user.setStuid(stuid);
            user.setBj(bj);
            user.setEnter(enter);
            user.setBj(bj);
            user.setBeizhu(beizhu);
            System.out.println(zh);
            UserDao user1 = new UserDao();
            user1.addx(user);
            PrintWriter out = response.getWriter();
            out.print("<script>alert('注冊成功!');</script>");

        }
    }
}

7)各項測試結果及表

 

 

 

 

 

 

 

 

 

 

 

 3.學習收獲

對數據庫的操作還是個小白吧,信息填報界面完成后,然后進行連接數據庫(成功),可惜最后惜敗在了數據怎么也傳不到數據庫里。經過兩個多小時的身心俱疲的排查也算有了眉目:

1)數據庫里有一欄的命名和關鍵字重復,才知道不能隨便命名

2)sql語句中前后項不匹配

3)sql語句中不知何時有了一個空格 (就像這樣!!!!!),最后重新寫了一次才成功,哎,成敗只在一個 。

不得不說,"看似尋常最奇崛,成如容易卻艱辛",十年磨一劍,究竟何時才能鐵柱磨成針?!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM