WEB-小项目(关键词)

2023-11-03

数据库脚本:

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.7.27-log 
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;

create table `keyword_copy` (
	`id` int (32),
	`name` varchar (66),
	`type` varchar (96),
	`createDate` date 
); 
insert into `keyword_copy` (`id`, `name`, `type`, `createDate`) values('6','股票','金融','2018-11-23');
insert into `keyword_copy` (`id`, `name`, `type`, `createDate`) values('8','电影票房','娱乐','2001-11-12');
insert into `keyword_copy` (`id`, `name`, `type`, `createDate`) values('9','	金融','123','2000-12-31');
insert into `keyword_copy` (`id`, `name`, `type`, `createDate`) values('10','123','456','2007-08-08');

POJO:(KeyWord):

  private int id;
    private String name;
    private String type;
    private Date createDate;
+get/set方法

Dao:

       KeyWordDao:

public interface KeyWordDao {
    /**
     * 查询全部
     * @return
     */
    List<KeyWord> getAll();

    /**
     * 更具关键字搜索
     * @param name
     * @return
     */
    KeyWord getKeyWordByName(String name);

    /**
     * 添加的接口
     * @param keyWord
     * @return
     */
    int AddKeyWord(KeyWord keyWord);

    /**
     * 删除的接口
     * @param id
     * @return
     */
    int deleteKeyWordById(int id);
}
KeyWordImpl:
public class KeyWordImpl extends BaseDao implements KeyWordDao {
    @Override
    public List<KeyWord> getAll() {
        String sql="SELECT * FROM `keyword` ORDER BY `createDate`";
        List<KeyWord> keyWordList=new ArrayList<>();
        ResultSet rs = this.executeQuery(sql, null);
        try {
            while (rs.next()){
                KeyWord keyword = new KeyWord();
                keyword.setId(rs.getInt("id"));
                keyword.setName(rs.getString("name"));
                keyword.setType(rs.getString("type"));
                keyword.setCreateDate(rs.getDate("createDate"));
                keyWordList.add(keyword);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return keyWordList;
    }

    @Override
    public KeyWord getKeyWordByName(String name) {
        String sql="SELECT * FROM `keyword` WHERE `name`=?";
        Object[] objects={name};
        ResultSet rs = this.executeQuery(sql, objects);
         KeyWord keyWord=null;
         try {
             while (rs.next()){
                 keyWord = new KeyWord();
                 keyWord.setId(rs.getInt("id"));
                 keyWord.setName(rs.getString("name"));
                 keyWord.setType(rs.getString("type"));
                 keyWord.setCreateDate(rs.getDate("createDate"));

             }
         } catch (SQLException throwables) {
             throwables.printStackTrace();
         }
        return keyWord;
    }

    @Override
    public int AddKeyWord(KeyWord keyWord) {
        String sql="INSERT INTO `keyword`(`name`,`type`,`createDate`)VALUES(?,?,?)";
        Object[] objects={keyWord.getName(),keyWord.getType(),keyWord.getCreateDate()};
        return this.executeUpdate(sql,objects);
    }

    @Override
    public int deleteKeyWordById(int id) {
        String sql="DELETE FROM `keyword` WHERE id=?";
        Object[] objects={id};
        return this.executeUpdate(sql,objects);
    }
}

  Service:

        KeyWordService:

 /**
     * 查询全部
     * @return
     */
    List<KeyWord> getAll();

    /**
     * 更具关键字搜索
     * @param name
     * @return
     */
    boolean getKeyWordByName(String name);

    /**
     * 添加的接口
     * @param keyWord
     * @return
     */
    boolean AddKeyWord(KeyWord keyWord);

    /**
     * 删除的接口
     * @param id
     * @return
     */
    boolean deleteKeyWordById(int id);
}

      KeyWordServiceimpl:

public class KeyWordServiceimpl implements KeyWordService {
    KeyWordDao ks=new KeyWordImpl();
    @Override
    public List<KeyWord> getAll() {

        return ks.getAll();
    }

    @Override
    public boolean getKeyWordByName(String name) {
        if (ks.getKeyWordByName(name)!=null){
            return true;
        }
        return false;
    }

    @Override
    public boolean AddKeyWord(KeyWord keyWord) {
        if (ks.AddKeyWord(keyWord)>0){
            return true;
        }
        return false;
    }

    @Override
    public boolean deleteKeyWordById(int id) {
        if (ks.deleteKeyWordById(id)>0){
            return true;
        }
        return false;
    }
}
Servlet:
AddServlet:
public class AddServlet 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 {
        response.setCharacterEncoding("utf-8");
        request.setCharacterEncoding("utf-8");
        KeyWordService keywordService = new KeyWordServiceimpl();
        String name = request.getParameter("name");
        String type = request.getParameter("type");
        String createDate = request.getParameter("createDate");
        KeyWord keyword = new KeyWord();
        keyword.setName(name);
        keyword.setType(type);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = simpleDateFormat.parse(createDate);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        keyword.setCreateDate(date);
        response.setContentType("text/html;charset=utf-8");
        boolean flag = keywordService.AddKeyWord(keyword);
        if (flag){
            response.getWriter().print("<script type='text/javascript'> alert('添加成功');window.location='ShowAllServlet';</script>");
        }else {
            response.getWriter().print("<script type='text/javascript'> alert('添加失败');window.location='ShowAllServlet';</script>");
        }
    }
}
CheckServlet:
@WebServlet("/CheckServlet")
public class CheckServlet 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 {
        response.setCharacterEncoding("utf-8");
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        KeyWordService keywordService = new KeyWordServiceimpl();
        boolean keyWordByName = keywordService.getKeyWordByName(name);
        System.out.println(keyWordByName);
        response.getWriter().print(keyWordByName);

    }
}
DeleteServlet:
@WebServlet("/DeleteServlet")
public class DeleteServlet 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 {
        response.setCharacterEncoding("utf-8");
        request.setCharacterEncoding("utf-8");
        HttpSession session = request.getSession();
        KeyWordService keywordService = new KeyWordServiceimpl();
       // String ids = request.getParameter("id");
        //int id=Integer.valueOf(ids);
        boolean b = keywordService.deleteKeyWordById(Integer.valueOf(request.getParameter("id")));
        List<KeyWord> keywordList = keywordService.getAll();
        session.setAttribute("keywordList",keywordList);
        response.getWriter().print(b);
    }
}
ShowAllServlet:
@WebServlet("/ShowAllServlet")
public class ShowAllServlet 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 {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        HttpSession session = request.getSession();
        KeyWordService keyWordService =new KeyWordServiceimpl();
        List<KeyWord> keyWordList= keyWordService.getAll();
        session.setAttribute("keyWordList",keyWordList);
        response.sendRedirect("index.jsp");
    }
}

jsp页面:

展示区全部的页面:index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<script src="js/jquery-1.8.2.min.js"></script>
<html>
  <head>
    <title>勇士总冠军</title>
  </head>
  <body>
  <form action="">
    <table align="center" border="1">
       <tr>
         <td>编号</td>
         <td>关键词名称</td>
         <td>业务类型</td>
         <td>创建时间</td>
          <td>操作</td>
       </tr>
     <c:forEach items="${keyWordList}" var="keyword">
       <tr class="ghhs" id="${keyword.id}">
          <td>${keyword.id}</td>
         <td>${keyword.name}</td>
         <td>${keyword.type}</td>
         <td>${keyword.createDate}</td>
         <td><a href="#" onclick="del(${keyword.id})">删除</a></td>
       </tr>
     </c:forEach>
         <tr align="center">
           <td colspan="5"><input align="center" type="button" value="添加关键词" onclick="toAdd()"></td>
         </tr>
    </table>>
      <h6 id="text" style="width: 100%; text-align: center"></h6>

  </form>
  <script>
      $(".ghhs:even").css("background","green");
      $(".ghhs:odd").css("background","red");

      function del(id) {
          if (confirm("确定删除吗")){
              $.post("DeleteServlet","id="+id,function (data) {
                  if (data == "true"){
                      $("#"+id).remove();
                      $("#text").html("删除成功");
                  }else {
                      $("#text").html("删除失败");
                  }
              },"text")
          }
      }

    function toAdd() {
      window.location = "Add.jsp";
    }

  </script>
  </body>
</html>

添加的页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>勇士总冠军</title>
    <script src="js/jquery-1.8.2.min.js"></script>
</head>
<body>
<form action="AddServlet" method="post">
    <table align="center" border="1px">
        <tr>
            <th colspan="2">添加关键字</th>
        </tr>
        <tr>
            <td>关键词(*)</td>
            <td><input id="name" type="text" name="name" onblur="check()"><p id="text"></p></td>
        </tr>
        <tr>
            <td>业务类型(*)</td>
            <td><input type="text" name="type"></td>
        </tr>
        <tr>
            <td>创建时间(*)</td>
            <td><input type="text" name="createDate"></td>
        </tr>
        <tr>
            <td colspan="2" align="center"><input type="submit" onclick=""></td>
        </tr>
    </table>
</form>
<script>
    function check() {
        alert("进入")
        var name = $("#name").val();
        alert(name)
        $.post("CheckServlet","name="+name,function (data) {
            if (data == "true"){
                alert(data)
                $("#text").html("关键词已经存在");
            }else {
                $("#text").html("可用");
            }
        },"text");
    }
</script>

</body>
</html>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WEB-小项目(关键词) 的相关文章

  • XP及PHP MYSQL 练级系统

    我已经查看了所有提出的问题和答案 但我似乎找不到最适合我的答案 我想做的是开发一个系统 当用户达到一定的 XP 限制时 系统会进入下一个级别 它显示了下一个 XP 之前需要多少 XP So lvl1 0 gt lvl2 256 gt lvl
  • 就SQL注入而言,哪种sql查询更安全

    我有两个 SQL 查询正在尝试更新sup and opp每次调用查询时 值分别为 1 和 1 第一个查询 query update disc set sup sup opp opp where did did int sup getnoof
  • 触发器与非规范化存储过程的优缺点

    当涉及到对事务数据库中的数据进行非规范化以提高性能时 至少 有三种不同的方法 通过存储过程推送更新 更新规范化交易数据和非规范化报告 分析数据 在事务表上实现更新辅助表的触发器 这几乎总是维护历史时所采取的路线 将处理推迟到夜间批处理 可能
  • 使用来自另一个的 SELECT 更新表,但字段为 SUM(someField)

    基本上我有这样的事情 UPDATE Table SET Table col1 other table col1 FROM Table INNER JOIN other table ON Table id other table id 问题是
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • MySQL 中布尔值的 TINYINT 与 ENUM(0, 1)

    MyISAM 表和 MySQL 5 1 中具有 0 和 1 值的 Tinyint 或 ENUM 0 1 哪个更好 您可以使用BIT 1 如中提到的MySQL 5 1 参考 http dev mysql com doc refman 5 1
  • 我的用例可以合并到单个查询中而不影响性能吗?

    我主要着眼于改善表现查询的内容以及是否能够解决单一查询对于我的用例之一 解释如下 涉及到2张表 Table 1 EMPLOYEE column1 column2 email1 email2 column5 column6 Table 2 E
  • 如何检查一个值是否已经存在以避免重复?

    我有一个 URL 表 但我不想要任何重复的 URL 如何使用 PHP MySQL 检查给定 URL 是否已在表中 如果您不想重复 可以执行以下操作 添加唯一性约束 use REPLACE http dev mysql com doc ref
  • 数据加密

    存储大量信用卡信息的数据库是我们刚刚完成的系统中不可避免的一部分 不过 我想要的是卡号的最终安全性 我们可以设置一种加密和解密机制 但我们自己无法解密任何给定的号码 我所追求的是一种即使在数据库级别也能保护这些信息的方法 这样任何人都无法进
  • 数据读取过程中遇到致命错误

    我正在进行定期更新表扫描 Using connect1 As New MySqlConnection ConnectLocalhost serverString connect1 Open Dim cmd New MySqlCommand
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • 主键默认可以为NULL吗?为什么这样描述呢?

    我有一张桌子 当我describe这是 mysql gt DESC my table Field Type Null Key Default Extra contact id int 11 NO PRI NULL auto incremen
  • 连接两个表而不返回不需要的行

    我的表结构如下所示 tbl users tbl issues userid real name issueid assignedid creatorid 1 test 1 1 1 1 2 test 2 2 1
  • MongoDB 支持浮点类型吗?

    我正在将 mysql 数据库迁移到 mongodb 但我读过 MongoDb 数据类型 然后没有引用浮点类型 如 float double decimal 我如何在 mysql 模式中拥有一些带有十进制类型的字段 我该怎么做或我能做什么 M
  • 使用 php 和 mysql 计算日期差(以小时为单位)

    我如何使用 php 和 mysql 找到以小时为单位的日期差异 Use TIMEDIFF http dev mysql com doc refman 5 1 en date and time functions html function
  • PDO获取最后插入的ID

    我有一个查询 我想获取插入的最后一个 ID 字段ID是主键并且自动递增 我知道我必须使用这个声明 LAST INSERT ID 该语句适用于如下查询 query INSERT INTO cell place ID VALUES LAST I
  • 从 SQL 数据库获取日期时间

    我的数据库表中有一个 DateTime 记录 我编写一个查询从数据库中获取它 string command2 select Last Modified from Company Data where Company Name Descrip
  • 为什么要为字符变化类型指定长度

    参考 Postgres 文档字符类型 http www postgresql org docs current static datatype character html 我不清楚指定字符变化 varchar 类型的长度 假设 字符串的长
  • 如何在 Ansible 中运行 MySQL 查询

    我需要编写一个 Ansible 脚本来在 MySQL 数据库中执行 SQL 查询 这是我尝试过的 你能指导一下吗 hosts localhost tasks name retrive data command mysql u root h
  • 使用 Laravel 和 Eloquent 从表中选择全部

    我正在使用 Laravel 4 设置我的第一个模型 以从名为的表中提取所有行posts 在标准 MySQL 中我会使用 SELECT FROM posts 如何在 Laravel 4 模型中实现这一目标 我的完整模型源代码如下

随机推荐

  • CentOS8基础篇14:使用源代码安装FTP软件

    一 TAR包管理工具简介 TAR Tape Archive TAR 是Linux下的包管理工具 利用tar命令可以将要备份保存的数据打包成一个扩展名为 tar的文件 以便文件的保存 需要使用时再利用tar命名进行释放即可 使用tar命令对文
  • Java面向对象编程

    下面有关JVM内存 说法错误的是 A 程序计数器是一个比较小的内存区域 用于指示当前线程所执行的字节码执行到了第几行 是线程隔离的 B Java方法执行内存模型 用于存储局部变量 操作数栈 动态链接 方法出口等信息 是线程隔离的 C 方法区
  • 自己组装电脑配置清单2022 自己组装电脑需要哪些配件

    自己组装电脑需要主板 CPU处理器 CPU散热器 内存条 显卡 硬盘 鼠标 键盘 声卡 耳机 音箱 机箱 显示器 电源等等 组装电脑怎么搭配更合适这些点很重要 http www adiannao cn du 3500左右性价比游戏型组装电脑
  • 【RPA】机器人流程自动化(RPA)概念、原理与实践

    多数人每天都会使用到一些机器人流程自动化工具 例如读取邮件和系统 计算 生成文件和报告 而在未来 那些你不想做的枯燥的工作 也许真的可以不做了 重复化 标准化的工作都可以让机器人帮你完成 本期推文特邀陈剑独家原创阐述RPA的概念 原理与实践
  • Kubernetes 的控制器模型

    文章目录 控制器模式 控制循环 控制器的配置和定义 Deployment 控制器详解 水平扩展 收缩 滚动更新 版本控制 控制器模式 本篇文章我们来看看 编排 这个 Kubernetes 项目最核心的功能吧 经过上篇文章的介绍后 你可能已经
  • redis主从-哨兵模式(windows下搭建)

    一 下载 由于redis官方并不支持windows操作系统 所以官网上是下不到的 需要到gitlab上下载 下载地址如下 https github com MicrosoftArchive redis releases 二 解压安装 将下载
  • webpack4---模块化打包工具(一)

    一 webpack4初识 1 首先先了解几个规范 ES规范 导出 export default Header 导入 import Header from header js CommonJS规范 导出 module exports Head
  • 如何快速安装和配置Node.js环境

    Node js是一种可以简化Web应用程序开发的平台 它使用JavaScript编写 并使用Chrome V8 JavaScript引擎 本文将介绍如何快速安装和配置Node js环境 为读者打开了Node js的大门 并提供了背景信息 一
  • 有趣的数据结构算法11——实现中缀表达式到后缀表达式的转换

    有趣的数据结构算法11 实现中缀表达式到后缀表达式的转换 解题思路 实现代码 GITHUB下载连接 这是学习栈的最后一篇blog了 在上一篇博客里 讲述了如何利用栈计算后缀表达式的结果 但是谁会无缘无故用后缀表达式写一个式子在那里计算呢 这
  • Quartz 之 JobExecutionContext 解读

    项目地址 https github com yuleiqq quartz example tree master quartz study 查看源码注释可以得知 JobExecutionContext 是一个包含了各种上下文信息的句柄 指向
  • 软件工程-分离原理

    分离原理是建立企业管理信息系统分析方法体系的基础分离原理与组合原理的关系定义分离原理 将研究对象中符合相同设计方法的同类项进行分离 归集 这种分离方式为在软件工程中建立具有普遍意义的分析与设计模型奠定了基础 作用将企业的运行体系进行拆分 在
  • [QT编程系列-13]:QT快速学习 - 1- 初识

    目录 第1章 QT的介绍 1 1 QT VS MFC 1 2 QT历史 1 3 QT的应用 1 4 QT学习方法 1 5 QT对象树 1 6 2 8定律 1 7 QT优势 1 8 QT支持的平台 第2章 QT UI是各种控件对象的堆积 第3
  • 【2021版本】软件测试的分类

    按测试阶段分类 单元测试 对软件中最小可充实单元进行检查和验证 单元测试的原则 尽可能保证各个测试用例是相互独立的 一般由代码的开发人员来实施 用以检验所开发的代码功能符合自己的设计要求 单元测试的益处 能尽早发现缺陷 有利于重构 简化集成
  • 决策树的典型案例

    小王是一家著名高尔夫俱乐部的经理 但是他被雇员数量问题搞得心情十分不好 某些天好像所有人都來玩高尔夫 以至于所有员工都忙的团团转还是应付不过来 而有些天不知道什么原因却一个人也不来 俱乐部为雇员数量浪费了不少资金 小王的目的是通过下周天气预
  • CentOS7 升级Python2.x到3.x

    CentOS 7 中默认安装了 Python 版本比较低 2 7 5 为了使用新版 3 x 需要对旧版本进行升级 由于很多基本的命令 软件包都依赖旧版本 比如 yum 所以 在更新 Python 时 建议不要删除旧版本 新旧版本可以共存 一
  • 临时标识--免登陆uuid

    一 什么是临时标识 就是一个字符串 可以让用户查看购物车等需要注册登录的信息 通常用uuid就可以创建这个字符串 临时标识 在请求拦截器中加 存储在vuex中的state userTempId 二 正式开始 1 下载创建uuid 并且生成用
  • 安卓隐藏输入法键盘以及去除光标方法

    在开发中遇到一个需求 点击屏幕非编辑区以及点击键盘回车键后要隐藏输入法以及光标要关闭 因此向各位分享一下做法 一 点击屏幕处于非edittext时让键盘消失以及清除edittext光标方法 1 在Activity中使用如下代码 重写事件分发
  • Android Jetpack新成员Compose尝鲜

    前言 Compose的alpha版已经出来有段时间了 前不久的GDG上郭神介绍了Hilt 没曾想居然没有Compose和4 2版本的studio介绍 Compose是google今年在jetpack里新增的一位成员 想着能越过传统的xml
  • 强化学习圣经-GridWorld实现

    import numpy as np import matplotlib pyplot as plt grid size 5 posA 0 1 primeA 4 1 posB 0 3 primeB 2 3 discount 0 9 acti
  • WEB-小项目(关键词)

    数据库脚本 SQLyog Ultimate v12 09 64 bit MySQL 5 7 27 log 40101 SET NAMES utf8 create table keyword copy id int 32 name varch