Servlet6—在线考试管理系统1:用户信息注册

1.用户信息注册流程

在这里插入图片描述

2.用户信息注册

2.1.准备工作
1.创建用户信息表——User.frm
  •   create table users (
      userID  int   primary key auto_increment,
      userName  varchar(50),
      password  varchar(50),
      sex  char(1),
      email  varchar(50)
      )
      #插入示例成员信息
      insert into users(userName,password,sex,email)  values  	('mike','123','男','mike@163.com')
      insert into users(userName,password,sex,email) values ('tom','123','男','tom@163.com')
    
2.在src下com.bjpowernode.entity.Users 新建实体类
package com.bjpowernode.entity;

public class Users {
    private Integer userID;
    private  String userName;
    private  String password;
    private  String sex;
    private  String email;

    public Integer getUserID() {
        return userID;
    }

    public String getUserName() {
        return userName;
    }

    public String getPassword() {
        return password;
    }

    public String getSex() {
        return sex;
    }

    public String getEmail() {
        return email;
    }

//    构造方法
    public Users() {
    }

    public Users(Integer userID, String userName, String password, String sex, String email) {
        this.userID = userID;
        this.userName = userName;
        this.password = password;
        this.sex = sex;
        this.email = email;
    }
}

3.在src下,引入com.bjpowernode.util.JdbcUtil 工具类【复用】
package com.bjpowernode.util
import java.sql.*
public class JdbcUtil{
		final String URL="jdbc:mysql://localhost:3306/bjpowernode";
		final String USERNAME = "root";
		final String PASSWORD = "123";
		PreparedStatement ps= null;
		Connection con = null;

		//将jar包中的driver实现类加载到JVM中
		static {
			try{
				Class.forName("com.mysql.jdbc.Driver");
			}catch(ClassNotFoundException e) {
				e.printStackTrace();
			}
		}

		//封装交通工具创建细节
		public PreparedStatement createStatement(String sql){
			try{
				ps = getCon().prepareStatement(sql);
			}catch(SQLException e){
				e.printStackTrace();
			}
			return ps;
		}
		//ps与con的销毁细节,insert,update,delete
		public void close(){
			if(ps!=null){
				try{
					ps.close();
				}catch (SQLException e){
					e.printStackTrace();
				}
			}
		

			if(con!=null){
		        try {
		             con.close();
		        } catch (SQLException e) {
		             e.printStackTrace();
		            }
		    }
	    }
		 //select ps,con,rs
		 public  void close(ResultSet rs){
		      if(rs!=null){
		          try {
		              rs.close();
		          } catch (SQLException e) {
		              e.printStackTrace();
		          }
		      }
		      close();
		  }
}
4.在web文件夹下,WEB-INF创建lib文件夹,存放mysql提供JDBC实现jar包

在这里插入图片描述

5.添加方便的add方法
package com.bjpowernode.dao;

import com.bjpowernode.entity.Users;
import com.bjpowernode.util.JdbcUtil;

import javax.servlet.http.PushBuilder;
import java.sql.PreparedStatement;
import java.sql.SQLException;


public class Userdao {

    private JdbcUtil util = new JdbcUtil();

    public int add(Users user){
        String sql = " insert into users(userName,password,sex,email)"+" values (?,?,?,?)";
        PreparedStatement ps = util.createStatement(sql);
        int result = 0;

        try {
            ps.setString(1,user.getUserName());
            ps.setString(2,user.getPassword());
            ps.setString(3,user.getSex());
            ps.setString(4,user.getEmail());
            result = ps.executeUpdate();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
           util.close();
        }
        return result;
    }

}

6.重写doGet()方法
  • 6.1.继承Servlet类,此时本实现例:
public class UserAddServlet extend HttpServlet
  • 继承的是HttpServlet,又因为HttpServlet继承了Servlet,所以UserAddServlet也间接继承了Servlet。
    之所以这样,是因为HttpServlet才有doGet(),doPost()等方法,才可以重写这些方法。
  • 6.2.Tomcat
  •  1. Tocmat负责销毁【请求对象】和【响应对象】
    
  •  2. Tomcat负责将Http响应协议包推送到发起请求的浏览器上
    
  • 3.  浏览器根据响应头content-type指定编译器对响应体二进制内容编辑
    
  • 4. 浏览器将编辑后结果在窗口中展示给用户【结束】
    
package com.bjpowernode.controller;
import com.bjpowernode.entity.Users;
import com.bjpowernode.dao.Userdao;

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 java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "UserAddServ")
public class UserAddServlet extend HttpServlet{

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       
	String userName,password,sex,email;
	Userdao userdao = new Userdao();
	Users user = null;
	int result = 0;
	PrintWriter out = null;

 1.调用【请求对象】读取【请求头】参数信息,得到用户的信息
	userName = request.getParameter("userName");
	password = request.getParameter("password");
	sex = request.getParameter("sex");
    email = request.getParameter("email");
2.调用【UserDao】将用户信息填充到INSERT命令并借助JDBC规范发送到数据库服务器
	user = new Users(null, userName, password, sex, email);
	result =userdao.add(user);
3.【调用响应对象】将【处理结果】以二进制形式写入到响应体
	response.setContentType("text/html;charset=utf-8");
	out = response.getWriter();
	if(result ==1){
            out.print("<font style='color:red;font-size:40'>用户信息注册成功</font>");
        }
    else{
            out.print("<font style='color:red;font-size:40'>用户信息注册失败</font>");
        }
  }

}
7.在web文件夹下,新建user_Add.html文件

在这里插入图片描述

  • .网页效果图:
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

        <center>
            <form action="/myWeb/user/add" method="get">
                <table>
                    <tr>
                        <td>用户姓名</td>
                        <td> <input type="text" name="userName"/> </td>
                    </tr>
                    <tr>
                        <td>用户密码</td>
                        <td> <input type="password" name="password"/> </td>
                    </tr>
                    <tr>
                        <td>用户sex</td>
                        <td> <input type="radio" name="sex" value=""/><input type="radio" name="sex" value=""/></td>
                    </tr>
                    <tr>
                        <td>用户email</td>
                        <td> <input type="text" name="email"/> </td>
                    </tr>
                    <tr>
                        <td> <input type="submit" name="用户注册"/> </td>
                        <td> <input type="reset"/> </td>
                    </tr>


                </table>

            </form>

        </center>

</body>
</html>

7.1.注意

<form action="/myWeb/user/add" method="get">

路径是:myWeb/user/add,方法是:get。(即:调用doGet()方法)
在web.xml注册时,要把路径搞对。

8.将Servlet接口实现类,类路径地址交给Tomcat
  • 在web.xml注册时:
    路径:/user/add,要与上边user_Add.html对应好
 <url-pattern>/user/add</url-pattern> 
<!-将Servlet接口实现类,类路径地址交给Tomcat-->
    <servlet>
        <servlet-name>UserAddServ</servlet-name>  <!--声明1个变量,存储servlet接口实现类类路径-->
        <servlet-class>com.bjpowernode.controller.UserAddServlet</servlet-class><!--声明servlet接口实现类类路径-->
    </servlet>

    <!--    Tomcat  String mm = "com.bjpowernode.controller.UserAddServlet"-->
<!-为了降低用户访问Servlet接口实现类难度,需要设置简短请求别名-->
    <servlet-mapping>
        <servlet-name>UserAddServ</servlet-name>
        <url-pattern>/user/add</url-pattern> <!--设置简短请求别名,别名在书写时必须以"/"为开头-->
    </servlet-mapping>
9.配置IDEA
  • 9.1.配置Tomcat
    在这里插入图片描述

  • 9.2.配置mysql,JDBC
    在这里插入图片描述

  • 9.3.当出现no artifacts的warnings时,配置artifacts
    或参考网址:
    添加链接描述
    在这里插入图片描述

  • 9.4.配置Tomcat启停按钮
    在这里插入图片描述
    在这里插入图片描述

3.实验验证

3.1.点击【Tomcat启停】按钮
  • 输入网址
  • 输入注册信息
    在这里插入图片描述
3.2.显示成功

在这里插入图片描述

3.3.去数据库验证

在这里插入图片描述
成功!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值