zoukankan      html  css  js  c++  java
  • web添加学生信息(首发web)

    程序思路,先在JSP上画好页面,然后再创建一Servlet文件用于判断在网页上操作是否正确,还需要与数据库相连接,用DBUtile文件连接数据库,用Dao层来实现数据的增加,用Service来服务于Dao层

    其代码如下:

    jsp页面代码:



    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" import="java.util.*"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>注册</title> </head> <% Object message=request.getAttribute("message"); if(!(message==null||message.equals(""))) { %> <script type="text/javascript">alert('<%=message%>')</script> <% } %> <body style="background:blue" align="center"> <form action="LoginServlet?method=register" method="post"> <p style="padding-left:400px;">登录账号:<input type="text" name="username" ></p> <p style="padding-left:400px;">密 码:&nbsp;&nbsp;&nbsp;<input type="password" name="password"></p> <p style="padding-left:400px;">性 别:&nbsp;&nbsp;&nbsp;<select name=sex> <option value="男">男</option> <option value="女">女</option> </select></p> <p style="padding-left:400px;">姓 名:&nbsp;&nbsp;&nbsp;<input type="text" name="name" ></p> <p style="padding-left:400px;">学 号:&nbsp;&nbsp;&nbsp;<input type="text" name="num"></p> <p style="padding-left:400px;">电子邮件&nbsp;&nbsp;<input type="text" name="email"></p> <p style="padding-left:400px;">所在学院&nbsp;&nbsp;<input type="text" name="xueyuan"></p> <p style="padding-left:400px;">所在系&nbsp;&nbsp;<input type="text" name="xi"></p> <p style="padding-left:400px;">所在班级&nbsp;&nbsp;<input type="text" name="banji"></p> <p style="padding-left:400px;">入学年份:&nbsp;&nbsp;&nbsp;<select name=ruxue> <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></p> <p style="padding-left:400px;">生源地:<input type="text" name="dizhi"> <p style="padding-left:400px;">备注:<input type="text" name="beizhu"> <p style="padding-left:400px;"><input type="submit" value="注册"></p> </form> </body> </html>

    Servletceng代码:

    package zzz;
    
    
    import java.io.IOException;
    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;
    
    
    /**
     * Servlet implementation class LoginServlet
     */
    @WebServlet("/LoginServlet")
    public class LoginServlet extends HttpServlet {
        public static boolean isMatchString(String str,String pattern)
        {
            boolean isMatch = Pattern.matches(pattern, str);
            return isMatch;
        }
    
        
        private static final long serialVersionUID = 1L;
        zhuceService fuwu=new zhuceService();
           /**
         * @see HttpServlet#HttpServlet()
         */
        
        public LoginServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        @Override
        protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
            ZhuceDao haha=new ZhuceDao();
            // TODO 自动生成的方法存根
            arg0.setCharacterEncoding("utf-8");
            arg1.setCharacterEncoding("utf-8");
            //super.service(arg0, arg1);
            
            zhucexinxi sta=new zhucexinxi();
            String function=arg0.getParameter("method");
            
            if(function.equals("register"))
            {
                String str;
                str=arg0.getParameter("username");
                if(str.length()==0||str==null||str.equals(""))
                {
                    arg0.setAttribute("message","账号不能为空");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0,arg1);
                    return;
                }
                
                if(str.charAt(0)>='a'&&str.charAt(0)<='z'||str.charAt(0)>='A'&&str.charAt(0)<='Z');
                else
                {
                    arg0.setAttribute("message","账号第一位需要是字母");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0,arg1);
                    return;
                    
                }
                
                if(str.length()<6||str.length()>12)
                {
                    arg0.setAttribute("message", "账号需是6-12位");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                    return;
                }
                for(int a=0;a<str.length();a++)
                {
                    if(!(str.charAt(a)>='0'&&str.charAt(a)<='9'||str.charAt(a)>='a'&&str.charAt(a)<='z'||str.charAt(a)>='A'&&str.charAt(a)<='Z'||str.charAt(a)=='_'))            
                    {
                        arg0.setAttribute("message", "账号只能由字母数字下划线组成");
                        arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                        return;
                    }
                }
                sta.setYonghuming(str);
                str=arg0.getParameter("password");
                if(str.length()<8||str==null||str.equals(""))
                {
                    arg0.setAttribute("message", "用户密码需要是8位以上数组字母组成");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0,arg1);
                    return;
                }
                int flag1=0;
                int flag2=0;
                for(int b=0;b<str.length();b++)
                {
                    if(str.charAt(b)>='0'&&str.charAt(b)<='9')
                    {
                        flag1=1;
                    }
                    if(str.charAt(b)>='a'&&str.charAt(b)<='z'||str.charAt(b)>='A'&&str.charAt(b)<='Z')
                    {
                        flag2=1;
                    }
                }
                
                
                if(flag1!=1||flag2!=1)
                {
                    arg0.setAttribute("message", "安全程度低,需要由8位以上的数字和字母组成");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                    return;
                }
                sta.setPassword(str);
                str=arg0.getParameter("sex");
                sta.setSex(str);
                str=arg0.getParameter("name");
                if(str.length()==0||str==null)
                {
                    arg0.setAttribute("message", "姓名不能为空");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                    return;
                }
                sta.setMingzi(str);
                str=arg0.getParameter("num");
                if(str.length()!=8)
                {
                    arg0.setAttribute("message", "学号是由8位数字组成");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                    return;
                }
                int flag3=1;
                if(str.charAt(0)!='2')flag3=0;
                if(str.charAt(1)!='0')flag3=0;
                if(str.charAt(2)!='1')flag3=0;
                if(str.charAt(3)!='8')flag3=0;
                if(flag3==0)
                {
                    arg0.setAttribute("message", "学号输入错误");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                    return;
                }
                sta.setNum(str);
                
                str=arg0.getParameter("email");
                boolean nani=LoginServlet.isMatchString(str,"([a-zA-Z0-9])+@([a-zA-Z0-9])+\.([a-zA-Z0-9])+");
                if(!nani)
                {
                    arg0.setAttribute("message", "请输入正确格式的邮箱号码");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                    return;
                }
    
                sta.setEmail(str);
                str=arg0.getParameter("xueyuan");
                sta.setXueyuan(str);
                str=arg0.getParameter("xi");
                sta.setXi(str);
                str=arg0.getParameter("banji");
                sta.setBanji(str);
                
                str=arg0.getParameter("ruxue");
                sta.setRuxue(str);
                str=arg0.getParameter("dizhi");
                sta.setDizhi(str);
                
                str=arg0.getParameter("beizhu");
                sta.setBeizhu(str);
                
                //判断是否添加数据库成功
                if(fuwu.add("tianjiaxuesheng", sta))
                {
                    arg0.setAttribute("message", "注册成功");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                }
                else
                {
                    arg0.setAttribute("message", "注册失败");
                    arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1);
                }
                
            }
        }
    
        /**
         * @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());
        }*/
    
        /**
         * @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);
        }*/
    
    }

    暂存信息层:

    package zzz;
    
    public class zhucexinxi {
        String yonghuming;
        String password;
        String sex;
        String mingzi;
        String num;
        String email;
        String xueyuan;
        String xi;
        String banji;
        String ruxue;
        String dizhi;
        String beizhu;
        public String getXueyuan() {
            return xueyuan;
        }
        public void setXueyuan(String xueyuan) {
            this.xueyuan = xueyuan;
        }
        public String getYonghuming() {
            return yonghuming;
        }
        public void setYonghuming(String yonghuming) {
            this.yonghuming = yonghuming;
        }
        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 getMingzi() {
            return mingzi;
        }
        public void setMingzi(String mingzi) {
            this.mingzi = mingzi;
        }
        public String getNum() {
            return num;
        }
        public void setNum(String num) {
            this.num = num;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getXi() {
            return xi;
        }
        public void setXi(String xi) {
            this.xi = xi;
        }
        public String getBanji() {
            return banji;
        }
        public void setBanji(String banji) {
            this.banji = banji;
        }
        public String getRuxue() {
            return ruxue;
        }
        public void setRuxue(String ruxue) {
            this.ruxue = ruxue;
        }
        public String getDizhi() {
            return dizhi;
        }
        public void setDizhi(String dizhi) {
            this.dizhi = dizhi;
        }
        public String getBeizhu() {
            return beizhu;
        }
        public void setBeizhu(String beizhu) {
            this.beizhu = beizhu;
        }
        
        
        
    
    }

    数据连接层:

    package zzz;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 数据库连接工具
     * @author Hu
     *
     */
    public class DBUtil {
        
        public static String db_url = "jdbc:mysql://localhost:3306/yonghucaozuo?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
        public static String db_user = "root";
        public static String db_pass = "password";
        
        public static Connection getConn () {
            Connection conn = null;
            
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
                conn = DriverManager.getConnection(db_url, db_user, db_pass);
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return conn;
        }
        
        /**
         * 关闭连接
         * @param state
         * @param conn
         */
        public static void close (Statement state, Connection conn) {
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void close (ResultSet rs, Statement state, Connection conn) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) throws SQLException {
            Connection conn = getConn();
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            String sql ="select * from course";
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            if(rs.next()){
                System.out.println("空");
            }else{
                System.out.println("不空");
            }
        }
    }

    Dao层:

    package zzz;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class ZhuceDao {
        
        public boolean add(String table,zhucexinxi en)
        {
            boolean c=false;
            String sql="insert into "+table+"(username,password,sex,name,num,email,xueyuan,xi,banji,ruxue,dizhi,beizhu) values('"+en.getYonghuming()+"','"+en.getPassword()+"','"+en.getSex()+"','"+en.getMingzi()+"','"+en.getNum()+"','"+en.getEmail()+"','"+en.getXueyuan()+"','"+en.getXi()+"','"+en.getBanji()+"','"+en.getRuxue()+"','"+en.getDizhi()+"','"+en.getBeizhu()+"');";               
            Connection conn=DBUtil.getConn();
            Statement state=null;
            try {
                state=conn.createStatement();
                int num=state.executeUpdate(sql);
                if(num!=0)
                    c=true;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            return c;
            
        }
    
    }

    服务层:

    package zzz;
    
    
    public class zhuceService {
         ZhuceDao  str=new ZhuceDao();
         public boolean add(String table,zhucexinxi en)
         {
             return str.add(table, en);
         }
    
    }

     

     

  • 相关阅读:
    Java 8 对 List<List<String>> 排序
    获取自然月的起始日期和终止日期
    Java 中如何计算两个字符串时间之间的时间差?(单位为分钟)
    Java StringJoiner
    回文数
    Java 中的值传递和引用传递问题
    substring
    集合的四种遍历方式
    Java 中的静态嵌套类和非静态嵌套类
    使用 Java 查找字符串中出现次数最多的字符以及出现的次数?
  • 原文地址:https://www.cnblogs.com/yizhixiaozhu/p/11715712.html
Copyright © 2011-2022 走看看