目录
  • 注册登录
    • 注册
    • 登录
  • 留言板模块
    • 留言板
    • 热搜榜
  • 查询&&搜索
    • 增删改查

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      环境:Tomcat 8.5 +mysql 5.7+jdk1.8

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      这个作业是我们Java课程的考核项目,想在把分享给大家。菜鸟在启航

      MVC+servlet+jsp+mysql

      不废话,下面就来看看这个项目

      注册登录

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      注册

      package com.bjpowernode.javaweb.servlet;
      import com.bjpowernode.javaweb.utils.DButil;
      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;
      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.PreparedStatement;
      import java.sql.SQLException;
      @WebServlet(name = "register", value = "/register")
      public class Register extends HttpServlet {
          @Override
          protected void doGet(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              doPost(request,response);
          }
          @Override
          protected void doPost(HttpServletRequest request, HttpServletResponse response)
                  throws ServletException, IOException {
              String Myname = request.getParameter("registerName");
              String Mypassword =request.getParameter("registerPwd");
              response.setContentType("text/html");
              response.setCharacterEncoding("GBK");
              Connection conn = null;
              PreparedStatement stmt = null;
              try {
                  //注册驱动(作用:告诉Java程序,即将要连接的哪个品牌的数据库)
                  Class.forName("com.mysql.jdbc.Driver");
                  //获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭)
                  String url = "jdbc:mysql://127.0.0.1:3306/book";
                  String user = "root";
                  String password = "123456";
                  conn = DriverManager.getConnection(url,user,password);
                  //获取数据库操作对象(专门(Statement专门执行sql语句的)
                  stmt = conn.prepareStatement("INSERT INTO user VALUES (?,?)");
                  stmt.setString(1,Myname);
                  stmt.setString(2,Mypassword);
                  int count = stmt.executeUpdate();
                  if(count==1){
                      PrintWriter out = response.getWriter();
                      out.println("<script>");
                      out.println("alert('Registered successfully');");
                      out.println("location.href='https://www.freexyz.cn/dev/index.html'");//跳转到用户列表页面
                      out.println("</script>");
                  }else{
                      response.getWriter().print("注册失败");
                  }
      //            System.out.println(count == 1 ? "保存成功" : "保存失败");
              } catch (ClassNotFoundException e) {
                  e.printStackTrace();
              } catch (SQLException e) {
                  e.printStackTrace();
              } finally {
                  DButil.close(conn,stmt,null);
              }
          }
      }
      

      就是通过链接数据库,往数据库里面刷数据(添加数据)

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      1、通过驱动连接数据库
      2、往数据库添加前端输入的数据,作为用户的账号密码存储
      3、用户注册成功
      4、断开与数据库的连接

      登录

      package com.bjpowernode.javaweb.servlet;
      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;
      import java.util.Map;
      @WebServlet(name = "Login", value = "/Login")
      public class Login extends HttpServlet {
          @Override
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              PrintWriter out = response.getWriter();
              String username = request.getParameter("userName");
              String password = request.getParameter("userPwd");
              Map<String,String> map = Mysql.user();
              response.setContentType("text/html");
              response.setCharacterEncoding("GBK");
              if(map.containsKey(username)) {
                  System.out.println("进入if判断循环了");  //TODO  进入循环了
                  String PWD = map.get(username);
                  System.out.println(PWD);//TODO   有值
                  if (PWD.equals("admin")) {
                      if (password.equals("admin")){
                          out.println("<script>");
                          out.println("alert('Log in successfully');");
                          out.println("location.href='https://www.freexyz.cn/dev/Take_01'");//跳转到管理员列表页面
                          out.println("</script>");
                      }
                      else{
                          out.println("<script>");
                          out.println("alert('Dear, the account password is incorrect, please input it again');");
                          out.println("location.href='https://www.freexyz.cn/dev/index.html'");//跳转到用户列表页面
                          out.println("</script>");
                      }
                  }
                  else if(PWD.equals(password)){
                      out.println("<script>");
                      out.println("alert('Log in successfully');");
                      out.println("location.href='https://www.freexyz.cn/dev/Take_02'");//跳转到用户列表页面
                      out.println("</script>");
                  }
                  else{
                      out.println("<script>");
                      out.println("alert('Dear, the account password is incorrect, please input it again');");
                      out.println("location.href='https://www.freexyz.cn/dev/index.html'");//跳转到用户列表页面
                      out.println("</script>");
      //                System.out.println("美猴王");
      //                response.getWriter().println("齐天大圣");
                  }
              }
              else{
                  out.println("<script>");
                  out.println("alert('This account is not registered, dear, please register first!!!');");
                  out.println("location.href='https://www.freexyz.cn/dev/index.html'");//跳转到用户列表页面
                  out.println("</script>");
              }
          }
      }
      

      就是连接数据库,读取数据库里面的内容,和前端输入的做匹配,判断账号密码是否正确。我这粗略的写了一个管理员,可以增删改查后台数据(但是 是写死的)

      登陆注册是对同一张表中数据惊醒操作。登录是查询操作,注册是添加操作(俗称刷数据)

      1、通过驱动连接数据库
      2、读取表中的数据与前端账号做对比
      3、比对成功,登陆成功。比对失败,登陆失败。
      4、断开与数据库的连接

      留言板模块

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      留言板

      这块主要就是一个增加和查看,和前面的注册登录没有太大的区别
      首先留言板就是往表中插入数据(注册)。后面的滚动的数据就是将后端取出来的数据展示在提前准备好的js上面(样式上面)

      1、连接数据库
      2、往相应的表中添加一些数据
      3、读取表中的数据,展示在js上面(传递给js)
      4、断开与数据库的连接

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      热搜榜

      热搜榜就更简单了,只要把后台处理过存入数据库的数据读取出来显示在js上即可。

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      这里用到的是结巴分词,将评论区(也就是数据库)内容通过结巴分词,然后按照词性,是人名就默认初始值为1,其余删掉,再遍历分词后的,统计每个人的频率。

      频率(词频处理):
      1、读取数据库评论区的内容
      2、结巴分词,词性辨析,剔除不符合规定的词语
      3、遍历,计算每个人名的次数
      4、将数据按照人名出现次数存入数据库

      详细步骤和代码见此篇文章 结巴分词之热评处理

      1、连接数据库
      2、读取之前处理好的数据(按照人名出现次数存入数据库)
      3、传递给js
      4、关闭与数据库的连接

      查询&&搜索

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      查询:就是通过主键(或者某一个属性)查询,查询数据库的数据展示在页面上。
      搜索:通过主键(或者某一个属性)搜索,和查询一个意思
      select XX from 表明 where 属性=XX;

      package com.bjpowernode.javaweb.servlet;
      import com.bipowernode.pojo.Olypic;
      import com.bjpowernode.javaweb.utils.DButil;
      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;
      import java.sql.*;
      import java.util.ArrayList;
      import java.util.List;
      @WebServlet(name = "select",value = "/select")
      public class Select extends HttpServlet {
          @Override
          protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              response.setContentType("text/html;charset=UTF-8");
              request.setCharacterEncoding("UTF-8");
              String name = request.getParameter("select_name");
              System.out.println(name);
              //连接数据库
              Connection conn = null;
              PreparedStatement ps = null;
              ResultSet rs = null;
              List<Olypic> olypicList=new ArrayList<>();
              try {
                  Class.forName("com.mysql.jdbc.Driver");
                  //获取连接
                  conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mofa", "root", "123456");
                  String sql = "select * from medals_table where Country=?";
                  //编译sql语句
                  ps = conn.prepareStatement(sql);
                  //赋值    第一个问好赋值 country   国家名称
                  ps.setString(1, name);
                  //查询返回结果集    这个结果集只有一条记录  ,国家名称是主键  ,  故只有一条数据
                  rs = ps.executeQuery();
                  if (rs.next()) {
                      String country = rs.getString("Country");
                      String Glod = rs.getString("Glod_num");
                      String Silver = rs.getString("Silver_num");
                      String Copper = rs.getString("Copper_num");
                      String id=rs.getString("id");
                      String logo=rs.getString("logo");
                      System.out.println("这是数据");
                      System.out.println(country);
                      System.out.println("Glod");
      //                   String Sum=rs.getString("Sum");
                      int G = Integer.valueOf(Glod).intValue();
                      int S = Integer.valueOf(Silver).intValue();
                      int C = Integer.valueOf(Copper).intValue();
                      int A=G+S+C;
                      String Sum=String.valueOf(A);
                      //将数据封装程Java对象
                      Olypic olpic=new Olypic();
                      olpic.setCountry(country);
                      olpic.setGlod_num(Glod);
                      olpic.setSilver_num(Silver);
                      olpic.setCopper_num(Copper);
                      olpic.setId(id);
                      olpic.setSum(Sum);
                      olpic.setLogo(logo);
                      // TODO 将数据放入上面定义好的容器
                      olypicList.add(olpic);
                  }
              } catch (SQLException e) {
                  e.printStackTrace();
              } catch (ClassNotFoundException e) {
                  e.printStackTrace();
              } finally {
                  DButil.close(conn, ps, rs);
              }
              request.setAttribute("olypicList",olypicList);
              request.getRequestDispatcher("./take_03.jsp").forward(request,response);
          }
      }
      

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      1、连接数据库
      2、查询数据交给前端页面
      3、页面展示出来
      4、断开数据库连接

      看完用户功能,下面我们来看看管理员功能。
      登陆页面(账号密码写死):
      账号:admin
      密码:admin
      时间仓促,没写的太好

      增删改查

      Tomcat 8.5 +mysql 5.7+jdk1.8开发JavaSE的金牌榜小项目

      就是通过对表的增删改查来增加,删除,修改,查询表中的数据。
      看到这不知道你们是否发现,在写项目的时候功能往往都是一些增删改查,或者是由增删改查所组成。所以学号增删改查你就可以进行下面的学习了。所以每个项目一开始往往都是增删改查开始的。

      详细代码见 Java/JavaWeb 连接数据库完成增删改查

      完整项目见:JavaSE项目

      因为有些同学找我要数据库文件,就把他放入这里数据库数据

      声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。