zoukankan      html  css  js  c++  java
  • 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语句中不知何时有了一个空格 (就像这样!!!!!),最后重新写了一次才成功,哎,成败只在一个 。

    不得不说,"看似寻常最奇崛,成如容易却艰辛",十年磨一剑,究竟何时才能铁柱磨成针?!

  • 相关阅读:
    Apache httponly Cookie泄露

    shell脚本
    Linux与windows的文件系统结构
    使用rsync进行远程同步
    电子邮件服务
    httpd虚拟主机
    Enpass 基于 Mezzanine
    powershell: 生成随机字符串
    thinkPHP5.x 更新字段为 NULL
  • 原文地址:https://www.cnblogs.com/ywqtro/p/11715657.html
Copyright © 2011-2022 走看看