javaweb簡單的學生信息錄入系統


講一下思路,主界面的設計就是用html表單元素,百度查找各個元素的用法,按照自己的想法擺放即可,表單提交后會把數據交給serverlet去處理,在那里定義幾個字符串變量來儲存獲取到的數據,然后按照項目要求對數據格式進行判斷(如學號長度是否為8位),對有錯誤的格式進行相應報錯,若數據無誤則提交數據庫並跳轉至success頁面。格式判斷應該是這里面對算法要求最多的,但也很簡單,長度判斷直接調用String類型的length()方法返回長度即可,而郵箱格式或“首字符必須為字母”這樣的判斷最好用正則表達式來寫,如果不會寫的話直接百度現成的方法就好。

下面是代碼:

主界面

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

</head>
<body>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
<form action="AdminServlet" method="post" name="form1" id="form1">
    <div id="container">
        <div class="header">
            <p>學生注冊</p>
        </div>
        <div class="form-body">
                
                    <label for="">登錄賬號:</label>
                   <input type="text" class="form-input" name="user" value="" placeholder="6-12位">
               
                <div class="form-group">
                    <label for="">登錄密碼:&nbsp;</label>
                    <input type="password" class="form-input" value="" name="password" >
                </div>
                
                
                 <div class="form-group">
                    <label for="">&nbsp;&nbsp;&nbsp;別:</label>
                   <select name="sex">
                        <option value="男"></option>
                        <option value="女"></option>
                    </select>
                </div>
                
                <div class="form-group">
                    <label for="">&nbsp;&nbsp;&nbsp;名:&nbsp;</label>
                    <input type="text" class="form-input" name="name" size="20" maxlength="15" value="" placeholder="請在這里輸入用戶名">
                </div>
               
                
                                
                                
                                <div class="form-group">
                    <label for="">&nbsp;&nbsp;&nbsp;號:&nbsp;</label>
                    <input type="text" class="form-input" name="num" value="" placeholder="8位">
                </div>
                                
                                <div class="form-group">
                    <label for="">電子郵箱:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="email">
                </div>
                 <div class="form-group">
                    <label for="">所在學院:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="yuan">
                </div>
                 <div class="form-group">
                    <label for="">所在系:&nbsp;&nbsp;&nbsp;</label>
                    <input type="text" class="form-input" value="" name="xi">
                </div>
                
                 <div class="form-group">
                    <label for="">所在班級:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="clas">
                </div>
                  <div class="form-group">
                    <label for="">入學年份(屆):</label>
                    <select name="year">
                        <option value="1998">1998</option>
                        <option value="1999">1999</option>
                        <option value="2000">2000</option>
                        <option value="2001">2001</option>
                        <option value="2002">2002</option>
                        <option value="2003">2003</option>
                        <option value="2004">2004</option>
                        <option value="2005">2005</option>
                        <option value="2006">2006</option>
                        <option value="2007">2007</option>
                        <option value="2008">2008</option>
                        <option value="2009">2009</option>
                        <option value="2010">2010</option>
                        <option value="2011">2011</option>
                        <option value="2012">2012</option>
                        <option value="2013">2013</option>
                        <option value="2014">2014</option>
                        <option value="2015">2015</option>
                        <option value="2016">2016</option>
                        <option value="2017">2017</option>
                        <option value="2018">2018</option>
                        <option value="2019">2019</option>
                    </select></div>
                <div class="form-group">
                    <label for="">生源地:&nbsp;</label>
                    <input type="text" class="form-input" value="" name="address">
                </div>
                
                備注:<div class="form-group">
              
                    <textarea rows="10" name="bei" cols="30"></textarea> 
                </div>
            <div class="btn">
                <input type="submit" value="添加" class="form-btn form-btn-primary">
                <input type="reset" value="重置" class="form-btn form-btn-primary">
            </div>
        </div>
        <div class="footer">
        </div>
    </div>
</form>
</body>
<script>
    obj = document.getElementById('container');
    cWidth = window.innerWidth;
    cHeight = window.innerHeight;
    obj.style.marginLeft = (cWidth - 380)/2+"px";
    obj.style.marginTop = (cHeight - 300)/2+"px";
    window.onresize=function(){
        cWidth = window.innerWidth;
        cHeight = window.innerHeight;
        obj.style.marginLeft = (cWidth - 380)/2+"px";
        obj.style.marginTop = (cHeight - 300)/2+"px";
    }
</script>
</html>

錄入成功后界面

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
<h1>歡迎使用本系統</h1>
</body>
</html>

后台

serverlet

 

package a;

import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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;



/**
 * Servlet implementation class AdminServlet
 */
@WebServlet("/AdminServlet")
public class Adminservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Adminservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String user = request.getParameter("user");
        String password=request.getParameter("password");
        String name=request.getParameter("name");
        String sex=request.getParameter("sex");
        String address=request.getParameter("address");
        String num=request.getParameter("num");
        String email=request.getParameter("email");
        String xi=request.getParameter("xi");
        String yuan=request.getParameter("yuan");
        String clas=request.getParameter("clas");
        String bei=request.getParameter("bei");
        String year=request.getParameter("year");
        int x=0;
        int a=0;
        if(user.equals("")) {
            request.setAttribute("message", "賬號不能為空!");
            request.getRequestDispatcher("index.jsp").forward(request,response);
        }
        if(!num.equals("")) {
         a=num.length();
        String ye=num.substring(0, 4);
        
        
        if(!ye.equals("2018"))x=4;}
        
        int ps=password.length();
        if(ps<8)x=2;
        
        int l=user.length();    
        if(l<6||l>12)x=3;
        String s=user;
        Pattern pa = Pattern.compile("[a-zA-Z].*");
           Matcher isNum = pa.matcher(s.charAt(0)+"");
           if (!isNum.matches()) {
               x=1;
               
           }
          
        
        
        String reg = "\\w+@(\\w+\\.){1,3}\\w+";
        Pattern pattern = Pattern.compile(reg);
        boolean flag = false;
        if (email != null) {
            Matcher matcher = pattern.matcher(email);
            flag = matcher.matches();
        }
        
        boolean n = false;
        if(x==0)
        {
        if(a==8)
        {
            if(flag==true)
            {
                try {
                    /*request.setAttribute("message", username+ userpassword+ name+sex+address+ phone+ email);*/
                    
                    n=UserDao.addPerson(user, password, name, sex, address, num, email, clas, xi, bei, yuan, year);
                    
                } catch (Exception e) {;
                    // TODO 自動生成的 catch 塊
                    e.printStackTrace();
                }
                if(n!=true)
                {
                    request.setAttribute("message", "注冊成功!!");
                    request.getRequestDispatcher("success.jsp").forward(request,response);
                }else {
                    request.setAttribute("message", "注冊失敗");
                    request.getRequestDispatcher("index.jsp").forward(request,response);
                }
            }
            else
            {
                request.setAttribute("message", "郵箱格式錯誤");
                request.getRequestDispatcher("index.jsp").forward(request,response);
            }
        }
        else
        {
            request.setAttribute("message", "學號不為8位");
            request.getRequestDispatcher("index.jsp").forward(request,response);
        }}
        else {
            if(x==1) {
                request.setAttribute("message", "賬號開頭必須為字母");
                request.getRequestDispatcher("index.jsp").forward(request,response);
            }
if(x==2) {
    request.setAttribute("message", "密碼長度應在8位以上");
    request.getRequestDispatcher("index.jsp").forward(request,response);
            }
if(x==3) {
    request.setAttribute("message", "賬號長度應為6到12");
    request.getRequestDispatcher("index.jsp").forward(request,response);
}
if(x==4) {
    request.setAttribute("message", "學號開頭應為2018");
    request.getRequestDispatcher("index.jsp").forward(request,response);
}
        }
    }

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

}

數據庫的連接DBUL類

package DBU;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil {
    //這里可以設置數據庫名稱
    private final static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=777";
    private static final String USER="sa";
    private static final String PASSWORD="1999";
    
    private static Connection conn=null;
    //靜態代碼塊(將加載驅動、連接數據庫放入靜態塊中)
    static{
        try {
            //1.加載驅動程序
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //2.獲得數據庫的連接
            conn=(Connection)DriverManager.getConnection(URL,USER,PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    //對外提供一個方法來獲取數據庫連接
    public static Connection getConnection(){
        return conn;
    }
}

Dao

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import DBU.DBUtil;



public class UserDao {


    public static boolean addPerson(String user,String password,String name,String sex,String address,String num,String email,String clas ,String xi,String bei,String yuan,String year)throws SQLException{
        //首先拿到數據庫的連接
        Connection conn=DBUtil.getConnection();
        String sql= "insert into Table_7 values(?,?,?,?,?,?,?,?,?,?,?,?)";//參數用?表示,相當於占位符;
        
        //預編譯sql語句
        PreparedStatement pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); 
        
        //先對應SQL語句,給SQL語句傳遞參數
        pst.setString(1, user);
        pst.setString(2, password);
        pst.setString(3, sex);
        pst.setString(4, name);
        pst.setString(5, num);
        pst.setString(6, email);
        pst.setString(7,yuan);
        pst.setString(8, xi);
        pst.setString(9, clas);
        pst.setString(10, year);
        pst.setString(11,address);
        pst.setString(12, bei);
        //執行SQL語句
        boolean a=pst.execute();
        /**
         * prepareStatement這個方法會將SQL語句加載到驅動程序conn集成程序中,但是並不直接執行
         * 而是當它調用execute()方法的時候才真正執行;
         * 
         * 上面SQL中的參數用?表示,相當於占位符,然后在對參數進行賦值。
         * 當真正執行時,這些參數會加載在SQL語句中,把SQL語句拼接完整才去執行。
         * 這樣就會減少對數據庫的操作
         */
        return a;
    

 運行效果:

提示信息:

提交成功界面:

 


免責聲明!

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



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