Java web+数据库 登录界面

1.Java web 项目的文件结构

 

 

Dao.java:书写java程序与数据库连接的代码

 1 package com.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.Statement;
 5 
 6 import com.bean.uBean;
 7 import com.db.DB;
 8 
 9 public class Dao {
10     public boolean add(uBean bean) {
11         String tablename = "zhangziyi1";//表的名字
12         DB db=new DB();
13         Connection con = db.getCon();
14         
15         try {
16             String sql="insert into "+tablename+"(zhanghao,password,sex,name,id,postbox,xueyuan,xi,class_,time,area,beizhu) values ('"+bean.getZhanghao()+"','"+bean.getPassword()+"','"+bean.getSex()+"','"+bean.getName()+"','"+bean.getId()+"','"+bean.getPostbox()+"','"+bean.getXueyuan()+"','"+bean.getXi()+"','"+bean.getClass_()+"','"+bean.getTime()+"','"+bean.getArea()+"','"+bean.getBeizhu()+"')";
17            //以上为SQL语句,表示向数据库中添加数据
Statement stm = con.createStatement(); 18 System.out.println(sql); 19 stm.execute(sql); 20 db.close(stm, con); 21 System.out.println("add success"); 22 }catch(Exception e) { 23 e.printStackTrace(); 24 System.out.println("add false"); 25 return false; 26 } 27 System.out.println("add true"); 28 return true; 29 } 30 }


DB.java 书写操作数据库的代码,包括增删改查,对数据库的操作通过SQL语句来实现
 1 package com.db;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 
 9 import com.sun.corba.se.impl.ior.GenericTaggedComponent;
10 
11 public class DB {
12     private static String mysqlname = "zhangziyi1";//新建的库的名字
13     private static Connection con;
14     private static Statement sta;
15     private static ResultSet re;
16     private static String coursename = "com.mysql.jdbc.Driver";
17     private static String url = "jdbc:mysql://127.0.0.1:3306/"+mysqlname+"?useSSL=false&characterEncoding=utf8";//固定格式
18     
19     
20     public static Connection getCon() {
21         try {
22             Class.forName(coursename);
23             System.out.println("成功");
24         }catch(ClassNotFoundException e) {
25             e.printStackTrace();
26         }
27         try {
28             con = DriverManager.getConnection(url,"root","zhangziyi1670");
29             System.out.println("成功");
30         }catch(Exception e){
31             e.printStackTrace();
32             con = null;
33         }
34         return con;
35     }
36     
37     public static void close(Statement sta,Connection connection) {
38         if(sta!=null) {
39             try {
40                 sta.close();
41             }catch(SQLException e) {
42                 e.printStackTrace();
43             }
44         }
45         if(connection!=null) {
46             try {
47                 connection.close();
48             }catch(SQLException e) {
49                 e.printStackTrace();
50             }
51         }
52     }
53         
54     //关闭
55     public static void close(ResultSet re,Statement sta,Connection connection) {
56         if(re!=null) {
57             try {
58                 re.close();
59             }catch(SQLException e) {
60             e.printStackTrace();
61             }
62         }
63         if(sta!=null) {
64             try {
65                 sta.close();
66             }catch(SQLException e) {
67                 e.printStackTrace();
68             }
69         }
70         if(connection!=null) {
71             try {
72                 connection.close();
73             }catch(SQLException e) {
74                 e.printStackTrace();
75             }
76         }
77     }
78     public static void main(String[] args)
79     {
80         getCon();
81     }
82 }

uBean.java 将所有数据封装成一个类,定义get()和set()函数,方便操作。

package com.bean;

public class uBean{
	private String zhanghao;
	private String password;
	private String sex;
	private String name;
	private String id;
	private String postbox;
	private String xueyuan;
	private String xi;
	private String class_;
	private String time;
	private String area; 
	private String beizhu;
	
	public uBean() {}
	public uBean(String zhanghao, String password, String sex, String name, String id, String postbox, String xueyuan,
			String xi, String class_, String time, String area, String beizhu) {
		super();
		this.zhanghao = zhanghao;
		this.password = password;
		this.sex = sex;
		this.name = name;
		this.id = id;
		this.postbox = postbox;
		this.xueyuan = xueyuan;
		this.xi = xi;
		this.class_ = class_;
		this.time = time;
		this.area = area;
		this.beizhu = beizhu;
	}
	public String getZhanghao() {
		return zhanghao;
	}
	public void setZhanghao(String zhanghao) {
		this.zhanghao = zhanghao;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	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 getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPostbox() {
		return postbox;
	}
	public void setPostbox(String postbox) {
		this.postbox = postbox;
	}
	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 getClass_() {
		return class_;
	}
	public void setClass_(String class_) {
		this.class_ = class_;
	}
	public String getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = time;
	}
	public String getArea() {
		return area;
	}
	public void setArea(String area) {
		this.area = area;
	}
	public String getBeizhu() {
		return beizhu;
	}
	public void setBeizhu(String beizhu) {
		this.beizhu = beizhu;
	}
}

 

Servlet.java 文件主要是判断前端的操作需要调用后端哪个函数。

package com.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 javax.swing.JOptionPane;

import com.bean.uBean;
import com.dao.Dao;

/**
 * Servlet implementation class Servlet
 */
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet() {
        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
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        request.setCharacterEncoding("utf-8");
          response.setContentType("textml;charset=utf-8");
          uBean bean =new uBean(request.getParameter("zhanghao"),request.getParameter("password"),request.getParameter("sex"),request.getParameter("name"),request.getParameter("id"),request.getParameter("postbox"),request.getParameter("xueyuan"),request.getParameter("xi"),request.getParameter("class_"),request.getParameter("time"),request.getParameter("area"),request.getParameter("beizhu"));
          Dao dao = new Dao();
          dao.add(bean);

//          response.sendRedirect("index.jsp");
          PrintWriter out = response.getWriter();
      
          out.print("<script language='javascript'>alert('sucess');window.location.href='index.jsp';</script>");
    }

    /**
     * @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);
    }

}

 

index.jsp 文件主要用来显示前端页面(html+Java Script)

  1 <%@ page language="java" contentType="text/html; charset=UTF-8"
  2     pageEncoding="UTF-8"%>
  3 <!DOCTYPE html>
  4 <html>
  5 <head>
  6 <meta charset="UTF-8">
  7 <title>Insert title here</title>
  8 </head>
  9 <body>
 10 <div style="width:100%;text-align:center">
 11         <form id="form" action="Servlet" method="post" onsubmit="return checkAll()">
 12         <% //form用于提交,table用于布局,tr每行,td每列,使用时table > tr > td ,若报错Invalid location of tag,就是嵌套顺序不对%>
 13         <table>
 14             <tr>
 15                 <td>登录账号:</td>
 16                <td><input id="zhanghao" type=text"  name="zhanghao" onblur="checkZhanghao()" /></td>
 17                <td><span  style="font-size:13px" id="zhanghaospan"></span></td>
 18             <tr>
 19                 <td>登录密码:</td>
 20                 <td><input id="password" type="password"  name="password" onblur="checkPassword()" /></td>
 21                 <td><span  style="font-size:13px" id="passwordspan"></span></td>
 22             </tr>
 23              <tr>
 24                 <td>性别:</td>
 25                 <td>
 26                     男:<input type="radio" value="boy" name="sex"/>
 27                     女:<input type="radio" value="girl" name="sex"/>
 28                 </td>
 29             </tr>
 30             <tr>
 31                 <td>姓名:</td>
 32                 <td><input type="text"  value=" " name="name"/></td>
 33             </tr>
 34              <tr>
 35                 <td>学号:</td>
 36                <td><input id="id" type=text"  name="id" onblur="checkId()" /></td>
 37                <td><span  style="font-size:13px" id="idspan"></span></td>
 38             </tr>
 39              <tr>
 40                 <td>电子邮箱:</td>
 41                 <td><input id="postbox" type="text"  name="postbox" onblur="checkPostbox()" placeholder="邮箱"/></td>
 42                 <td><span  style="font-size:13px" id="postboxspan"></span></td>
 43             </tr>
 44             <tr>
 45                 <td>所在学院:</td>
 46                <td><input id="xueyuan" type=text"  name="xueyuan" onblur="checkXueyuan()" /></td>
 47                <td><span  style="font-size:13px" id="xueyuanspan"></span></td>
 48             </tr>
 49             <tr>
 50                 <td>所在系:</td>
 51                <td><input id="xi" type=text"  name="xi" onblur="checkXi()" /></td>
 52                <td><span  style="font-size:13px" id="xispan"></span></td>
 53             </tr>
 54             <tr>
 55                 <td>所在班级:</td>
 56                <td><input id="class_" type=text"  name="class_" onblur="checkClass_()" /></td>
 57                <td><span  style="font-size:13px" id="class_span"></span></td>
 58             </tr>
 59             <tr>
 60                 <td>入学年份(界):</td>
 61                 <td>
 62                     <select name="time">
 63                         <option selected= "selected">1998</option>
 64                         <option>1997</option>
 65                         <option>1996</option> 
 66                     </select>
 67                 </td>
 68             </tr>
 69             
 70             <tr>
 71                 <td>生源地:</td>
 72                 <td><input id="area" type="text"  name="area" onblur="checkArea()" /></td>
 73                 <td><span  style="font-size:13px" id="areaspan"></span></td>
 74             </tr>
 75             <tr>
 76                 <td>备注:</td>
 77                 <td><input id="beizhu" type="text"  name="beizhu" onblur="checkBeizhu()" /></td>
 78                 <td><span  style="font-size:13px" id="beizhuspan"></span></td>
 79             </tr>
 80            <tr>
 81                 <td><input type="submit" value="注册"/></td>
 82                 <td><input type="button" name="" value="重置" onclick="formReset()" /></td>
 83             </tr>
 84         </table>
 85     </form>
 86 </div>
 87     <script type="text/javascript">
 88         //重置按钮处添加onclick调用formReset %>
 89         function formReset() 
 90         {
 91             document.getElementById("form").reset();
 92         }
 93         function checkZhanghao()
 94         {
 95             var zhanghao = document.getElementById("zhanghao");
 96             if(!zhanghao.value.match(/^[a-zA-Z]\w{5,11}$/)){
//利用正则表达式判断输入的内容是否符合要求
97 alert("输入不正确"); 98 } 99 //var spanNode = document.getElementById("zhanghaospan"); 100 //编写邮箱的正则 101 var reg = /^[0-9a-zA-Z]{6}/; 102 if(reg.test(zhanghao)){ 103 //符合规则 104 spanNode.innerHTML = "".fontcolor("green"); 105 return true; 106 }else{ 107 //不符合规则 108 spanNode.innerHTML = "登录账号格式不正确,请重新填写!".fontcolor("red"); 109 return false; 110 } 111 } 112 //邮箱输入框处添加onblur在鼠标焦距移出时调用checkPostbox %> 113 function checkPostbox() 114 { 115 var postbox = document.getElementById("postbox").value; 116 var spanNode = document.getElementById("postboxspan"); 117 //编写邮箱的正则 118 var reg = /^[a-z0-9]\w+@[a-z0-9]+(\.[a-z]{2,3}){1,2}$/i; 119 if(reg.test(postbox)){ 120 //符合规则 121 spanNode.innerHTML = "".fontcolor("green"); 122 return true; 123 }else{ 124 //不符合规则 125 spanNode.innerHTML = "邮箱格式不正确,请重新填写!".fontcolor("red"); 126 return false; 127 } 128 } 129 function checkPassword() 130 { 131 var password = document.getElementById("password").value; 132 var spanNode = document.getElementById("passwordspan"); 133 //编写密码的正则 134 var reg =/^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}$/; 135 if(reg.test(password)){ 136 //符合规则 137 spanNode.innerHTML = "".fontcolor("green"); 138 return true; 139 }else{ 140 //不符合规则 141 spanNode.innerHTML = "密码格式不正确,请重新填写!".fontcolor("red"); 142 return false; 143 } 144 } 145 function checkId() 146 { 147 var id = document.getElementById("id").value; 148 var spanNode = document.getElementById("idspan"); 149 //学号的正确形式 150 // var reg = /^[0-9a-zA-Z]{6}/; 151 if((id<"20180000")|| (id>"20189999")) 152 { 153 spanNode.innerHTML = "学号格式不正确,请重新填写!".fontcolor("red"); 154 return false; 155 } 156 else{ 157 //不符合规则 158 spanNode.innerHTML = "".fontcolor("green"); 159 return true; 160 } 161 } 162 function checkAll(){ 163 var postbox = checkPostbox(); 164 var id=checkId(); 165 var zhanghao=checkZhanghao(); 166 var password=checkPassword(); 167 if(postbox&&id&&password&&zhanghao){ 168 return true; 169 }else{ 170 return false; 171 } 172 } 173 </script> 174 </body> 175 </html>

 

  

posted @ 2019-10-21 20:28  Protect_Winter  阅读(605)  评论(0)    收藏  举报