利用idea创建服务器,并使网页中的数据可以存入MySQL中,欢迎留言指导

使用Spring MVC建立服务器,在网页中向该服务器发射注册相关数据,

目标:

1.在服务器中整理数据,并使用JDBC协议将数据储存在mysql中。

1)注册要求重复验证密码,并需保证两次输入一致

2)具有用户名查重提示

2.在网页中输入正确的账号密码,并在idea中输出该用户其他的信息

//目标类:Studenspackage cn.tedu.pojo;import org.springframework.format.annotation.DateTimeFormat;import java.util.Arrays;
import java.util.Date;public class Students {             //创建Students类private String name;            //用户名private String password;        //密码private int age;                //年纪private int sex;                //性别private String[] hobby;         //喜好private  String edu;            //学历@DateTimeFormat(pattern="yyyy-MM-dd")//日期private java.util.Date intime;//为私密对象创建获取调用方法。私密对象更利于数据的保护public Date getIntime(){return intime;}public String getName() {return name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getSex() {return sex;}public void setSex(int sex) {this.sex = sex;}public String[] getHobby() {return hobby;}public void setHobby(String[] hobby) {this.hobby = hobby;}public String getEdu() {return edu;}public void setEdu(String edu) {this.edu = edu;}public void setIntime(Date intime) {this.intime = intime;}@Overridepublic String toString() {        //重写toString方法,方便调用输出检查return "Students{" +"name='" + name + '\'' +", password='" + password + '\'' +", age=" + age +", sex=" + sex +", hobby=" + Arrays.toString(hobby) +", edu='" + edu + '\'' +", intime=" + intime +'}';}
}
package cn.tedu.controller;import cn.tedu.pojo.Students;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.sql.*;
import java.util.Arrays;//http://localhost:8080/stu/reg?name=sayhi&password=lin123&repass=lin123&age=23&sex=0&hobby=1&hobby=3&%E5%AD%A6%E5%8E%86=2&data=2021-08-01        网页发送来的注册信息
@RestController //标注表明了这个类是一个控制器类。但想要让这个类成为一个处理请求的处理器
@RequestMapping("stu") //@RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,表明接受网页数据的指向位置
public class StuController {    //创建StuConller控制器//连接数据库static String url="jdbc:mysql://localhost:3306/cgb2106";//设置Connection/*static {try {Connection  c = DriverManager.getConnection(url, "root", "root");} catch (SQLException throwables) {throwables.printStackTrace();}}*/
//想把Conneion作为一个公用的静态变量使用,但是不知道该如何在使用后及时关闭,所以还是写在了模块里//name password repass age sex hobby edu;//注册会输入的变量,做一个标志防止漏写private java.util.Date intime;  public String hint;public Boolean flag;@RequestMapping("reg")            //reg regist 注册public String stuReg(Students stu, String repass){//获取stu和repassflag=false;  System.out.println(repass);             //控制台检查是否获取repass,程序是否正确运行System.out.println(stu.getPassword());  //检查同上                      System.out.println(stu);                //检查同上if(!repass.equals(stu.getPassword())){  //密码查重hint = "注册失败,两次密码输入不一致";System.out.println(hint);}else if (isrenam(stu.getName())){       //用户名查重hint = "注册失败,用户名重复";System.out.println(hint);}else{                                   //写入sqlwitter(stu,repass);return stu.toString()+hint;}        //输出结果   return stu+" hint";                     //网页上输出结果}private Boolean witter(Students stu,String repass) { //使用jdbc协议向数据库中写入数据String sql = "insert into students(name,password,age,sex,hobby,edu,intime) values (?,?,?,?,?,?,?)";                               //sql语句try {Connection c = DriverManager.getConnection(url, "root", "root"); //2.创建链接数据库   PreparedStatement ps = c.prepareStatement(sql);        //建立sql命令ps.setString(1, stu.getName());                        //填充sql命令ps.setString(2, stu.getPassword());ps.setInt(3, stu.getAge());ps.setInt(4, stu.getSex());ps.setString(5, Arrays.toString(stu.getHobby()));ps.setString(6, stu.getEdu());ps.setObject(7,stu.getIntime());               //使用Obj类型上传日期数据ps.executeUpdate();                            //运行sql语句 ps.close();                                    //关闭PreparedStatement资源hint = "注册成功";return true;                             //注册成功没有触发异常直接返回true              } catch (SQLException throwables) {throwables.printStackTrace();                }return false;                                    //发生异常注册失败返回false}private boolean isrenam(String name) {                  //查重模块flag =false;String sql="select name from students where name=?";//只查name标签,加快查询速度,节省资源try {Connection c = DriverManager.getConnection(url, "root", "root"); //2.创建链接数据库PreparedStatement ps = c.prepareStatement(sql);ps.setString(1,name);System.out.println(name);System.out.println(sql);ResultSet r = ps.executeQuery();    flag = r.next();                                //查到数据了,说明有重复System.out.println(flag);r.close();ps.close();} catch (Exception throwables) {throwables.printStackTrace();}return flag;}@RequestMapping("log")private void isrenam(String name, String password) {flag = false;String sql = "select * from students where name=? and password=?";    //sql语句try {Connection c = DriverManager.getConnection(url, "root", "root");PreparedStatement ps = c.prepareStatement(sql);ps.setString(1, name);ps.setString(2, password);System.out.println(sql);ResultSet r = ps.executeQuery();flag = r.next();   //检查是否查到数据//r.next已经被获取了,再获取就数据丢失了!,所以使用do while循环//按道理来说已经去重了,用户不存在重复且唯一,这个do while....可以不写..吧..do{                                  for (int i=1;r.getObject(i)!=null;i++) {   //使用for循环来获取数据直到获取不到数据为止,//我这里是不是应当重新设计避免数据库出现空值导致获取不到空值后面的数据?String o = r.getString(i);System.out.println(o+" ");        //打印数据因为从表中获取的数据都会是String类型,所以这里倒是不用做区分了}}while(r.next());System.out.println(flag);r.close();ps.close();} catch (Exception throwables) {throwables.printStackTrace();}if(flag){System.out.println("登录成功");}}}
<!--目标网页--><!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>stuform</title><style>    //css语句input{width: 300px;height: 30px;}td{font-size: 20px;}input[type="radio"],[type="checkbox"]{width:15px;height:15px;}select{width:50px;height:20px;}input[type="date"]{width: 120px;height: 20px;}input[type="submit"],[type="reset"]{width:60px;height:40px;border: 0px; color:white;}</style></head>
<body ><h1>学生信息管理系统MIS</h1><form method="post" action="http://localhost:8080/stu/reg"><table><tr><td>姓名:</td></tr><tr><td><input type="text" placeholder="请输入姓名"  name="name"/></td></tr><tr><td>密码:</td></tr><tr><td><input type="password" placeholder="请输入密码" name="password"/></td></tr><tr><td>第二次输入密码:</td></tr><tr><td><input type="password" placeholder="请重复输入密码" name="repass"/></td></tr><tr><td>年龄:</td></tr><tr><td><input type="number" placeholder="请输入年龄" name="age"/></td></tr><tr><td>性别:(单选框)<input type="radio" value="0" name="sex"/>男<input type="radio" value="1"name="sex"/>女</td></tr><tr><td>爱好:(多选框)<input type="checkbox"  value="1" name="hobby"/>乒乓球<input type="checkbox"  value="2" name="hobby"/>爬山<input type="checkbox"  value="3" name="hobby"/>唱歌</td></tr><tr><td>学历:(下拉框)<select name=edu><option value ="1">本科</option><option value ="2">专科</option></select></td></tr><tr><td>入学日期:</td></tr><tr><td><input type="date" name="intime"/></td></tr><tr><td><input type="submit" value="保存" style="background-color: blue;"/><input type="reset" value="重置" style="background-color: fuchsia;"/></td></tr></table></form>
</body>
</html>

萌新建立的简单登陆网页,相关推荐

  1. 使用html 语言建立一个简单的网页,如何用记事本建立简单的网页(1).doc

    第九章 网页制作 实验一 用记事本建立简单的HTML文件 [实验目的] 学会用HTML语言建立一个简单的网页. [实验内容] 建立一个网页,布局自定,包括自我介绍.图片.自己的电子信箱地址等,要求在标 ...

  2. ESP8266(NodeMCU)建立最简单的网页

      通常承担网络服务器工作的设备都是运算能力比较强大的服务器电脑.ESP866-NodeMCU虽然也能实现网络服务器的一些功能,但是毕竟它的运算能力是无法与那些昂贵的服务器电脑相媲美的,因此ESP82 ...

  3. 通过Dreamweaver建立一个简单的网页音乐盒模型效果/css/h5/

    一.结构分析 由图我们可以看到音乐盒的效果右外边框盒子组成,盒子内部又分为两个部分,其中上面部分为标题,下面部分为图片. 二.样式 1.通过外层的大盒子对音乐盒的整体样式进行控制,设置最外层的宽度.高 ...

  4. 使用HTML建立一个简单的网页

    开发过程如下: 1.打开Dreamweaver2021,新建立一个HTML5格式的文档 2.而后在<body>双标签内部嵌套使<h2>标题标签创建标题 <body> ...

  5. 超萌新级的学习心得——网页打开过程

    概要:网页打开是一个十分复杂的过程,本文是本人通过学习所得,来讲解用户从浏览器输入域名(如:www.baidu.com)到可以浏览网页之间的各种过程;如有错误,敬请指正. 首先,我们需要知道各种前置知 ...

  6. Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)——概率预测

    Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5个样本)--概率预测 目录 输出结果 核心代码 输出结果 核心代码 # -*- coding: ...

  7. Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5+1个样本)——类别预测

    Keras之ML~P:基于Keras中建立的简单的二分类问题的神经网络模型(根据200个数据样本预测新的5+1个样本)--类别预测 目录 输出结果 核心代码 输出结果 核心代码 # -*- codin ...

  8. 一个简单的网页登陆(html)

    今天和大家分享如何用html做一个简易版的登陆网页. 一般简单的登陆页面有用户名.密码框以及提交与清空两个按钮,效果图如下所示: 1.首先网页制作中应当包含两个部分head以及body; <ht ...

  9. 【前端实例代码】Html5+css3创建登录和注册表单~实现新拟态新拟物风格(Neumorphism)网页图标效果~手把手教学~新手必会~超简单 ~

    b站视频演示效果: [web前端特效源码]Html5+css3创建登录和注册表单2!实现新拟态新拟物风格(Neumorphism)网页图标效果!手把手教学!新手必会!超简单 ~ 效果图: 完整代码: ...

最新文章

  1. 硬核科普:到底啥是云原生?
  2. 深入Java虚拟机之虚拟机体系结构
  3. 听食品企业大佬讲故事:寻找记忆深处的年味
  4. 算法导论 第六章 堆排序 习题6.5-8 k路合并排序
  5. Dagger2 知识梳理(1) Dagger2 依赖注入的两种方式
  6. JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)...
  7. 服务器2012怎么换桌面背景,2012年职称计算机Windows XP:更改桌面背景和颜色
  8. yoast造成php内存,php – Yoast SEO |如何创建自定义变量
  9. spring security 的 logout 功能
  10. ABP框架详解(六)Aspects
  11. WinForm窗体内嵌浏览器实现方式
  12. 计算机歌曲带歌词,mp3上怎么看歌词?我的机子说是可以显示的啊
  13. OPPO A59m怎么刷机 OPPO A59m的刷机教程 OPPO A59m完美解除账号锁
  14. 转载:分配器、切换器、同屏器、分屏器 区别
  15. html怎么把正方形改成圆形,css怎样让div变成圆的?
  16. Android material design 之 BottomSheet基础入门
  17. freemyapps 推荐链接
  18. Git下载安装及使用说明
  19. 菜单转换Java_java递归菜单树转换成pojo对象
  20. Java类型转换笔记

热门文章

  1. 服务器推送之HTTP Mime multipart/x-mixed-replace
  2. 风压和功率计算公式轴流式_风机的风压、风量、功率与转速的相互关系
  3. 【MarkDown】CSDN Markdown之时间轴图timeline详解
  4. GoLang之M如何找工作(13)
  5. 花开富贵--国兰的基本介绍
  6. 《武林外传》之(一) 除了目标,还需要什么?
  7. LaTex跨栏插入表格或图片
  8. Linux目录和文件管理
  9. Steam里的这款动态壁纸wallpaper engine也可以免费白嫖了
  10. 利用Cookie劫持+HTML注入进行钓鱼攻击