栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

AJAX实验(添加+模糊查询 图书)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AJAX实验(添加+模糊查询 图书)

目录
  • 实验要求
  • 前置知识
  • 实验过程
    • 项目文件结构
    • 建立数据库
    • 制作"添加图书"界面,
    • 图书模糊查询界面
  • 总结
    • 1、AJAX框架
    • 2、SQL模糊查询实例
  • 实验项目文件

实验要求

在数据库中建立表T_BOOK,其包含图书ID,图书名称,图书价格等

  1. 制作"添加图书"界面,在界面有一表单,输入对应的信息,提交后能插入数据表,但是页面不刷新。
  2. 制作一个图书模糊查询界面,输入图书名称的模糊信息,能够显示系统中所有符合条件图书的名称和价格等信息,但是页面不刷新
前置知识

HTML、Java、JavaScript、servlet编程、session、MySQL基础
AJAX基础API编程,sql模糊查询

实验过程 项目文件结构

web.xml配置:略

建立数据库

用mysql建立数据库 ts

create database ts;

IDEA连接数据库

ts 数据库建立t_book表以及添加图书
IDEA中建立sql文件,并运行以下sql代码

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `t_book`
-- ----------------------------
DROp TABLE IF EXISTS `t_book`;
CREATE TABLE `t_book` (
  `bookno` varchar(40) DEFAULT NULL,
  `bookname` varchar(40) DEFAULT NULL,
  `author` varchar(40) DEFAULT NULL,
  `booktype` varchar(40) DEFAULT NULL,
  `bookprice` float DEFAULT NULL,
  `bookstate` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_book
-- ----------------------------
INSERT INTO `t_book` VALUES ('001','Java Web程序设计','郭克华','教育',49.8,1);
INSERT INTO `t_book` VALUES ('002', '软件工程导论','张海藩 牟永敏','教育',39.5,1);
INSERT INTO `t_book` VALUES ('003', '通信原理','樊昌信 曹丽娜','教育',58.00,1);
INSERT INTO `t_book` VALUES ('004', '绝代双骄','古龙','小说',407.86,1);
INSERT INTO `t_book` VALUES ('005', '球状闪电','刘慈欣','小说',25.00,1);

编写java的图书类,放在vo包中

package vo;

public class Book {
    private String bookno;
    private String bookname;
    private String author;
    private String booktype;
    private float bookprice;
    private int bookstate=1;
    public String getBookno(){
        return bookno;
    }
    public void setBookno(String bookno) {
        this.bookno = bookno;
    }
    public String getBookname() {
        return bookname;
    }
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getBooktype() {
        return booktype;
    }
    public void setBooktype(String booktype) {
        this.booktype = booktype;
    }
    public float getBookprice() {
        return bookprice;
    }
    public void setBookprice(float bookprice) {
        this.bookprice = bookprice;
    }
    public int getBookstate() {
        return bookstate;
    }
    public void setBookstate(int bookstate) {
        this.bookstate = bookstate;
    }
}
制作"添加图书"界面,

(1)代码编写(部分,完整见项目文件)
添加图书页面前端代码

<%@ page import="java.util.HashMap" %>
<%@ page import="vo.Book" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.Set" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    添加图书


欢迎来到三味书屋
添加图书信息:
书ID:
书名:
作者:
类型:
价格:


查询图书

展示查询的书的页面showbooks.jsp

<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Set" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="vo.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



    <%
        HashMap allbook = (HashMap) session.getAttribute("allbook");
        Set set = allbook.keySet();
        Iterator ite = set.iterator();
        while(ite.hasNext()) {
            String bookno = (String) ite.next();
            Book book = (Book) allbook.get(bookno);
            if(book.getBookstate()==1){
    %>
    
    <%
            }
        }
    %>
书本id 书本名称 作者 书本类型 书本价格/¥
<%= book.getBookno() %> <%= book.getBookname() %> <%= book.getAuthor() %> <%= book.getBooktype() %> <%= book.getBookprice() %>

编写添加图书代码AddBook.java,加入servlets包中

package servlets;

import dao.BookDao;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.HashMap;

public class AddBook extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        BookDao bdao = new BookDao();
        // 获取提交的内容
        String bookno = req.getParameter("bookno");
        String bookname = req.getParameter("bookname");
        String author = req.getParameter("author");
        String booktype = req.getParameter("booktype");
        String bookprice = req.getParameter("bookprice");
        try { //在数据库中添加图书
            bdao.addBook(bookno,bookname,author,booktype,bookprice);
        } catch (Exception e) {
            e.printStackTrace();
        }
        HashMap allbook = null;
        try { // 更新allbook
            allbook=bdao.getAllBook();
        } catch (Exception e){
            e.printStackTrace();
        }
        HttpSession session = req.getSession();
        session.setAttribute("allbook",allbook);
        String targetUrl="/showbooks.jsp";
        ServletContext application = this.getServletContext();
        RequestDispatcher rd = application.getRequestDispatcher(targetUrl);
        rd.forward(req,resp);
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req,resp);
    }
}

在BookDao.java中添加addBook()函数

public boolean addBook(String bookno,String bookname,String author,String booktype,String bookprice)
        throws Exception {
    this.initConnection();
    Statement stat = conn.createStatement();
    booktype = numtotype(booktype);
    String sql = "INSERT INTO `t_book` VALUES ('"+bookno+"','"+bookname+"','"
            +author+"','"+booktype+"',"+bookprice+",1)";
    stat.execute(sql);
    this.closeConnection();
    return true;
}

(2)网页效果展示

添加后,表中插入记录,但是页面没有刷新

数据库中也添加了该图书

图书模糊查询界面

书模糊查询界面
(1)代码编写
查询界面前端代码和添加界面类似
后端 servlet 代码

package servlets;

import dao.BookDao;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.HashMap;

public class FindBook extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        BookDao bdao = new BookDao();
        HashMap allbook = null;
        // 获取提交的内容
        String bookname = req.getParameter("bookname");
        try { //模糊查询
            allbook = bdao.findBook(bookname);
        } catch (Exception e) {
            e.printStackTrace();
        }
        HttpSession session = req.getSession();
        session.setAttribute("allbook",allbook);
        String targetUrl="/showbooks.jsp";
        ServletContext application = this.getServletContext();
        RequestDispatcher rd = application.getRequestDispatcher(targetUrl);
        rd.forward(req,resp);
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }
}

在 BookDao.java 中添加 findBook()函数

public HashMap findBook(String bookname) throws Exception {
    HashMap hm=new HashMap();
    this.initConnection();
    Statement stat = conn.createStatement();
    String sql = "SELECT * from t_book WHERe bookname LIKE '%"+bookname+"%'";
    ResultSet rs = stat.executeQuery(sql);
    while (rs.next()){
        Book book=new Book();
        book.setBookno(rs.getString("bookno"));
        book.setBookname(rs.getString("bookname"));
        book.setAuthor(rs.getString("author"));
        book.setBooktype(rs.getString("booktype"));
        book.setBookprice(rs.getFloat("bookprice"));
        book.setBookstate(rs.getInt("bookstate"));
        hm.put(book.getBookno(),book);
    }
    this.closeConnection();
    return hm;
}

(2)网页效果展示

总结 1、AJAX框架



书名:

2、SQL模糊查询实例
// 本语句将会查询出u_name中所有包含“我”的记录。
SELECt * FROM table WHERe u_name LIKE '%我%'

//本语句将会查询出 u_name 中长度为三且第二个字是而的记录。
SELECt * FROM table WHERe u_name LIKE '_而_'

// 找到的结果将可能是‘你们’‘我们’‘他们’
SELECt * FROM table WHERe u_name LIKE '[你我他]们'

// 最后查询的结果中将不能包括’你们‘’我们‘’他们‘
SELECt * FROM [user] WHERe u_name LIKE '[^你我他]们'
实验项目文件

AJAX实验(添加+模糊查询 图书)项目文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号