• 注册界面


    数据库连接工具

    package test;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 数据库连接工具
     * @author 李梦贞
     *
     */
    public class DBUtil {
        //联结字符串                                              //数据库名test
        public static String db_url = "jdbc:mysql://localhost:3306/test?&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=GB2312";
        //数据库用户名
        public static String db_user = "root";
        //数据库密码名
        public static String db_pass = "123";
        
        public static Connection getConn () {
            
            //声明与数据库的连接并实例化为null
            Connection conn = null;
            
            try {
                //驱动程序名
                Class.forName("com.mysql.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();
                }
            }
        }}

    user定义

    package test;
    
    public class User
    {
    	private String zhanghao;
    	private String code;
    	private String sex;
    	private String name;
    	private String xuehao;
    	private String email;
    	private String school;
    	private String xi;
    	private String banji;
    	private String year;
    	private String address;
    	private String beizhu;
      
    	public User(String zhanghao, String code, String sex,String name,String xuehao,String email,String school,
    			String xi,String banji,String year,String address,String beizhu) {
    		this.zhanghao = zhanghao;
    		this.code= code;
    		this.sex = sex;
    		this.name = name;
    		this.xuehao=xuehao;
    		this.email=email;
    		this.school=school;
    		this.xi=xi;
    		this.banji=banji;
    		this.year=year;
    		this.address = address;
    		this.beizhu=beizhu;
    	}
    	public String getZhanghao() {
    		return zhanghao;
    	}
    	public void setZhanghao(String zhanghao) {
    		this.zhanghao = zhanghao;
    	}
    	public String getCode() {
    		return code;
    	}
    	public void setCode(String code) {
    		this.code =code;
    	}
    	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 getXuehao() {
    		return xuehao;
    	}
    	public void setXuehao(String xuehao) {
    		this.xuehao = xuehao;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public String getSchool() {
    		return school;
    	}
    	public void setSchool(String school) {
    		this.school = school;
    	}
    	public String getXi() {
    		return xi;
    	}
    	public void setXi(String xi) {
    		this.xi= xi;
    	}
    	public String getBanji() {
    		return banji;
    	}
    	public void setbBanji(String banji) {
    		this.banji = banji;
    	}
    	public String getYear() {
    		return year;
    	}
    	public void setYear(String year) {
    		this.year = year;
    	}
    	public String getAddress() {
    		return address;
    	}
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	public String getBeizhu() {
    		return beizhu;
    	}
    	public void setBeizhu(String beizhu) {
    		this.beizhu = beizhu;
    	}
    	
    }
    

     添加入Grade表里

    package test;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import test.User;
    import test.DBUtil;;
    
    public class dao
    {
    
    	//添加
    	//添加入Grade表里
    	
    	public boolean insert(User user)
    	{
    		String sql="insert into resgist(zhanghao,code,sex,name,xuehao,email,school,xi,banji,year,address,beizhu) values('"+user.getZhanghao()+"','"+user.getCode()+"','"+
    	user.getSex()+"','"+user.getName()+"','"+user.getXuehao()+"','"+user.getEmail()+"','"+user.getSchool()+"','"+user.getXi()+"','"+user.getBanji()+
    	"','"+user.getYear()+"','"+user.getAddress()+"','"+user.getBeizhu()+"')";
    		//insert语句:
    		//insert INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
    		//注意:insert这里 values(100,'吴林祥','"+bianliang+"'),数字可以直接上,字符串的话用 '',变量的话要用 '"++"'
    		
    		Connection conn=DBUtil.getConn();//数据库连接,加载驱动
    		Statement state=null;//数据库操作
    		try
    		{
    			state=conn.createStatement();//实例化Statement对象,方便对sql语句进行操作
    			state.executeUpdate(sql);
    			//执行数据库更新操作用于执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句,
    			//例如CREATETABLE和DROPTABLE,(创建表和删除表)
    		}catch(Exception e)//当try语句中出现异常时,会执行catch中的语句
    		  {
    			e.printStackTrace();//捕获异常的语句
    		  }
    		 finally //finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下。
    		 {
    			 DBUtil.close(state, conn); //close释放资源
    		 }
    		return false;
    	}
    	
    //	    //删除
    //		//根据ID删除
    //		
    //		public boolean delete(int id)
    //		{
    //			String sql="delete from grade_student where ID='"+id+"'";
    //			//删除语句:
    //			//delete from table_name where some_colume=some_value
    //			
    //			Connection conn=DBUtil.getConn();
    //			Statement state=null;
    //			
    //			try
    //			{
    //				state=conn.createStatement();
    //				state.executeUpdate(sql);
    //			}catch (Exception e)
    //			{
    //				e.printStackTrace();
    //			}
    //			finally
    //			{
    //				DBUtil.close(state, conn);
    //			}
    //			return false;
    //		}
    //		
    //		//修改
    //		//根据学号修改
    //		
    //		public boolean update(Grade grade)
    //		{
    //			String sql="update grade_student set Chinese='"+grade.getChinese()+"',Math='"+grade.getMath()+"',English='"+grade.getEnglish()+"',SUM='"+grade.getSUM()+"'   where ID='"+grade.getID()+"' ";
    //			//update语句:
    //			//update table_name set column1=value1,column2=value2  where some_column=some_value;
    //			
    //			Connection conn=DBUtil.getConn();
    //			Statement state=null;
    //			
    //			try
    //			{
    //				state=conn.createStatement();
    //				state.executeUpdate(sql);
    //			}catch (SQLException e)
    //			{
    //				e.printStackTrace();
    //			}
    //			finally
    //			{
    //				DBUtil.close(state, conn);
    //			}
    //			return false;
    //		}
    //		
    //		//查询
    //		//查询全部并存入list
    //		//List指的是集合.<>是泛型,里面指定了这个集合中存放的是什么数据
    //		//泛型是程序设计语言的一种特性。
    //		//允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,
    //		//但是,那些部分在使用前必须作出指明。
    //		
    //		public  List<User>list()
    //		{
    //			String sql="select * from grade_student order by ID ASC";
    //			//select语句
    //			//select * from tabel_name   这是查询所有,若要查询某一列
    //			//select column1_name,column2_name,column3_name from table_name
    //			
    //			List<User>list=new ArrayList<>();
    //			//给集合list创造(new)一个存储空间用于存放数据
    //			
    //			Connection conn=DBUtil.getConn();
    //			Statement state=null;
    //			ResultSet rs=null;
    //			
    //			try
    //			{
    //				state=conn.createStatement();
    //				rs=state.executeQuery(sql);
    //				User user=null;
    //				while(rs.next()) //这里表示,当rs.next()有值得时候,即收到查询结果
    //				{
    //					String id=rs.getString("ID"); //注意:这里用双引号,ID是表grade_student里的ID列
    //					String name=rs.getString("NAME");
    //					int Chinese=rs.getInt("Chinese");
    //					int Math=rs.getInt("Math");
    //					int English=rs.getInt("English");
    //					int SUM=rs.getInt("SUM");
    //					user=new User(username,password,name,,English,SUM);
    //					list.add(user); //表示,把bean里的数据存入到list当中
    //				}
    //			}
    //			catch (SQLException e)
    //			{
    //				e.printStackTrace();
    //			}
    //			finally
    //			{
    //				DBUtil.close(state, conn);
    //			}
    //			return list;
    //		}
    //		
    		//验证注册是否唯一
    		public boolean username(String username) {
    			
    			boolean flag = false;
    			
    			String sql = "select username from resgist where username = '" + username + "'";
    			Connection conn = DBUtil.getConn();
    			Statement state = null;
    			ResultSet rs = null;
    			
    		try {
    				state = conn.createStatement();
    				rs = state.executeQuery(sql);
    				//要用statement类的executeQuery()方法来下达select指令以查询数据库,
    				//executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。
    				while (rs.next()) {
    					flag = true;
    				}
    			}
    			catch (SQLException e) {
    				e.printStackTrace();
    			} finally {
    				DBUtil.close(rs, state, conn);
    		}
    			return flag;
    		}
    		
    		
    		
    }
    

     implementation class servelt01

    package test;
    
    import java.io.IOException;
    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 servelt01
     */
    @WebServlet("/servelt01")
    public class servelt01 extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
       
    	/**
    	 * @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 test;
    
    import java.util.List;
    import test.dao;
    import test.User;
    
    /**
     * CourseService
     * 服务层
     * @author Hu
     *
     */
    
    //service层相当于一个封装层,封装那些与业务相关的通用数据接口
    
    public class service
    {
    	dao cdao=new dao();
    	/**
    	 * 添加
    	 * @param course
    	 * @return
    	 */
    	public boolean insert(User user)
    	{
    		boolean f=false;
    		if(!cdao.username(user.getName()))
    		{
    			cdao.insert(user);
    			f=true;
    		}
    		return f;
    	}
    	
    	//删除
    	
    //	public void delete(int id)
    //	{
    //		cdao.delete(id);
    //	}
    //	
    //	//修改
    //	
    //	public void update (Grade grade)
    //	{
    //		cdao.update(grade);
    //	}
    //	
    //	//通过ID得到一个Course	
    //	
    //	//通过name得到一个Course	
    //
    //	//查找
    //	
    //	
    //	//全部数据遍历
    //	
    //	public List<Grade>list()
    //	{
    //		return cdao.list();
    //	}
    }
    

     /WebServlet("/servlet")继承的是 HttpServlet方法,和网页交互的方法

    package test;
    
    import java.io.IOException;
    import java.util.List;
    
    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 test.User;
    import test.service;
    
    @WebServlet("/servlet")
    public class servlet extends HttpServlet //继承的是 HttpServlet方法,和网页交互的方法
    {
    	private static final long serialVersionUID = 1L;
    	
    	service service=new service();
    	
    	//方法选择
    	
    	protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException
    	{
    		//req是Request(请求)的简写,指的是从jsp/html界面请求回数据,即 jsp/html → 底层
    		//resp是Response(回答)的简写,指的是发送给jsp/html的数据,,即 底层 → jsp/html
    		
    		req.setCharacterEncoding("utf-8");//设置从jsp或HTML中请求数据的值,也就是设置为中文,防止乱码
    		String method=req.getParameter("method");//getParameter()获取的是客户端设置的数据。
    		if ("insert".equals(method)) {
    			insert(req, resp);
    		} 
    //		//增
    //		else if ("delete".equals(method)) {
    //			delete(req, resp);
    //		} 
    //		//删
    //		else if ("update".equals(method)) {
    //			update(req, resp);
    //		}  
    //		//改
    //		else if ("list".equals(method)) {
    //			list(req, resp);
    //		}
    //		//查
    	}
    	
    	
    	
    	//添加
    	
    	private void insert(HttpServletRequest req,HttpServletResponse resp)throws IOException, ServletException 
    	{
    		//首先读取前端网页数据并将数据存入我创建的grade存储空间里,即 jsp/html → servlet
    		
    		req.setCharacterEncoding("utf-8"); //从网页获得数据
    		String zhanghao=req.getParameter("zhanghao");
    		String code=req.getParameter("code");
    		//因为req.getParameter只能获得String类型的数据
    		//所以下面需要用Integer.parseInt(req.getParameter())来把String类型的数据转换成我们所需的int数据
    		String sex=req.getParameter("sex");
    		String name=req.getParameter("name"); 
    		String xuehao=req.getParameter("xuehao");
    		String email=req.getParameter("email");
    		String school=req.getParameter("school");
    		String xi=req.getParameter("xi");
    		String banji=req.getParameter("banji");
    		String year=req.getParameter("year");
    		String address=req.getParameter("ddress");
    		String beizhu=req.getParameter("beizhu");
    		User user=new User(zhanghao,code,sex,name,xuehao,email,school,xi,banji,year,address,beizhu);
    		
    		
    		//其次进行把grade里的数据与添加到数据库里,即 servlet → mysql数据库
    		//并跳转,req.getRequestDispatcher("add.jsp").forward(req, resp);这一步是跳转到前端jsp/html界面
    		
    		if(service.insert(user)) //如果添加成功
    		{
    			req.setAttribute("message", "添加成功");
    			//这里表示,在req的作用域中设置一个massage变量,变量内容是:添加成功
    			//然后,当跳转到它下一个界面时,这个作用域里的值可以通过Object message =request.getAttribute("message")拿出来使用
    			req.getRequestDispatcher("index.jsp").forward(req, resp);
    			//处理完了,分发到下一个JSP页面或者下一个Action继续处理。
    		}
    		else
    		{
    			req.setAttribute("message", "添加重复,请重新输入");
    			req.getRequestDispatcher("fail.jsp").forward(req, resp);
    		}
    	}
    	
    	
    //	//删除delete
    //	
    //	private void delete(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException
    //	{
    //		req.setCharacterEncoding("UTF-8");
    //		int id=Integer.parseInt(req.getParameter("id"));
    //		service.delete(id); //进行数据库的删除操作
    //		req.setAttribute("message", "删除成功");
    //		req.getRequestDispatcher("servlet?method=list").forward(req, resp);
    //	}
    //	
    //	//修改update
    //	
    //	private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
    //		req.setCharacterEncoding("utf-8");
    //		String id=req.getParameter("id");
    //		int Chinese=Integer.parseInt(req.getParameter("Chinese")); 
    //		int Math=Integer.parseInt(req.getParameter("Math"));
    //		int English=Integer.parseInt(req.getParameter("English"));
    //		int SUM=Integer.parseInt(req.getParameter("SUM"));
    //		Grade grade=new Grade(id,Chinese,Math,English,SUM);	
    //		service.update(grade);//进行数据库的修改操作
    //		req.setAttribute("message", "修改成功");
    //		req.getRequestDispatcher("servlet?method=list").forward(req,resp);
    //	    //?method=list表示传一个叫做method的参数,他的值是list,你可以在Servlet中用request.getParam...获取到。
    //	}
    //	
    //
    //	//全部
    //	
    //	private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
    //		req.setCharacterEncoding("utf-8");
    //		List<Grade> grade_list = service.list();
    //		req.setAttribute("grade_list", grade_list);
    //		req.getRequestDispatcher("list.jsp").forward(req,resp);
    //	}
    //
    }
    

     登陆界面设计

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>用户注册</title>
    <style>
    	.a{
    		margin-top: 20px;
    	}
    	.b{
    		font-size: 20px;
    		 140px;
    		color: white;
    		background-color: black;
    	}
    </style>
    </head>
    <body>
    
    	<%
    	     Object message = request.getAttribute("message");
    	     if(message!=null && !"".equals(message)){
    	 
    	%>
    	     <script type="text/javascript">
    	          alert("<%=request.getAttribute("message")%>"); //弹出对话框
    	     </script>
    	<%} %>
    	<div align="center">
    		<h1 style="color: blue;">用户注册</h1>
    		<a href="index.jsp">返回主页</a>
    		<form action="servlet?method=insert" method="post" onsubmit="return check()">
    			<div class="a">
    				登录账号<input type="text" id="zhanghao" name="zhanghao"/>
    			</div>
    			<div class="a">
    				登录密码<input type="password" id="code" name="code" />
    				</div>
    			<div class="a">
    				性别<input id="man" type="radio" checked="checked" name="sex" value="男" />男
    				<input id="woman" type="radio"  name="sex" value="女"/>女
    			</div>
    			<div class="a">
    				姓名<input type="text" id="name" name="name" />
    				</div>
    			<div class="a">
    				学号<input type="text" id="xuehao" name="xuehao" /d>
    				</div>
    			<div class="a">
    				电子邮件<input type="text" id="email" name="email" />
    				</div>
    			<div class="a">
    				所在学校<input type="text" id="school" name="school" />
    				</div>
    			<div class="a">
    				所在系<input type="text" id="xi" name="xi" />
    				</div>
    			<div class="a">
    				所在班级<input type="text" id="banji" name="banji" />
    			</div>
    			<div class="a">
    				入学年份(届)
    				<select name="year">
      <option value ="1998">1998</option>
      <option value ="1999">1999</option>
      <option value="2000">2000</option>
      <option value="2001">2001</option>
    <select>
    			</div>
    			<div class="a">
    				生源地<input type="text" id="address" name="address" />
    			</div>
    			<div class="a">
    				备注<input type="text" id="beizhu" name="beizhu" />
    			</div>
    			<div class="a">
    				<button type="submit" class="b">添 加</button>
    			</div>
    		</form>
    	</div>
    </body>
    </html>
    

     

    在dor里的inster into...导进数据库里。
  • 相关阅读:
    LFYZ-OJ ID: 1008 求A/B高精度值
    高精度运算
    【2018国庆雅礼集训】部分题解
    【模板】倍增求LCA
    Luogu1516 青蛙的约会
    loj #10043. 「一本通 2.2 例 1」剪花布条
    我太菜了
    Luogu1280 尼克的任务
    Luogu1091 合唱队形
    Luogu1006 传纸条
  • 原文地址:https://www.cnblogs.com/dixingchen/p/11715648.html
Copyright © 2020-2023  润新知