06_HttpServletRequest_添加书籍

HttpServletRequest 请求对象

  • 从客户端发送请求,服务器将会创建该对象

  • 请求的类型

    1. 在浏览器的地址栏直接输入URL
    2. 超链接<a herf="URL"><a>
    3. JS中:location.herf="URL"
    4. form表单的提交

注:如果使用get提交,那么所提交的参数是追加到URL后的
?name=values&price=25.6 这样的方式追加,1、2、3都是get方式,4如果method=get也是get提交;
如果使用的是post提交,那么数据将会被封装到form data.

get和post的区别:

<from name="regFrom" action="动作" method="提交方式"></from>

提交方式:get,post

  • get:
    1. 以明文的方式通过URL提交数据,数据在URL里面可以看到
    2. 提交数据不超过2kb
    3. 安全性较低但效率比post高

适合提交数据量不大,安全性不高的数据。比如:搜索和查询等功能


  • post:
    • 将用户信息封装到Html Header内提交

适合提交数据量大,安全性高的用户信息。比如:注册,修改,上传等功能

get:长度有限,安全性较差,效率相对较高
post:长度没有限制,安全性较高,效率相对较低


新建add.html

  • 直接放于WebRoot目录下面可以直接访问
  • 放于WEB-INF目录下不能被直接访问
 <body>
    <form action="add" method="post">
        <table width="80%" align="center">
            <tr>
            <td colspan="2"><h3>添加书籍</h3></td>
            </tr>

            <tr>
            <td>书名:</td>
            <td><input type="text" name="name"></td>
            </tr>

            <tr>
            <td>价格:</td>
            <td><input type="text" name="price"></td>
            </tr>

            <tr>
            <td>作者:</td>
            <td><input type="text" name="author"></td>
            </tr>

            <tr>
            <td>出版日期:</td>
            <td><input type="text" name="pubDate"></td>
            </tr>

            <tr>
            <td colspan="2" align="center"><input type="submit" name="提交"></td>
            </tr>
        </table>
    </form>
  </body>

在dao包中的BookDao类中写一个添加书籍的方法

//添加书籍
    public int add(Book b){
        String sql="insert into book(name,price,author,pubDate) values(?,?,?,?)";
        return DBhelper.executeUpdate(sql, b.getName(),b.getPrice(),b.getAuthor(),
                new SimpleDateFormat("yyyy-MM-dd").format(b.getPubDate()));
    }

编写AddServlet类

  • HttpServletRequest 有getParameter(“filedName”) 获取提交的数据
package com.zhushen.servlet;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zhushen.dao.BookDao;
import com.zhushen.entity.Book;

public class AddServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String name=req.getParameter("name");
        double price=Double.parseDouble(req.getParameter("price"));
        String author=req.getParameter("author");
        Date pubDate=null;
        try {
            pubDate=new SimpleDateFormat("yyyy-MM-dd").parse(req.getParameter("pubDate"));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Book book=new Book(name, price, author, pubDate);
        BookDao bookdao=new BookDao();
        if(bookdao.add(book)>0){
            resp.getWriter().print("添加成功!!!");
        }else{
            resp.getWriter().print("添加失败!!!");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doGet(req, resp);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现批量添加图书,可以采用以下步骤: 1. 创建一个包含图书信息的 Excel 文件,每一行代表一本图书,包括图书名称、作者、出版社、ISBN 码等信息。 2. 在 Java Web 项目中编写一个上传文件的页面,用户可以上传 Excel 文件。 3. 在后台处理上传的 Excel 文件,读取其中的图书信息并解析,将解析出来的图书信息保存到数据库中。 以下是具体的代码实现: 1. 创建 Excel 文件 可以使用 Excel 编辑软件(如 Microsoft Excel)创建一个包含图书信息的 Excel 文件,保存为 .xls 或 .xlsx 格式。 2. 创建上传文件的页面 在 JSP 页面中添加一个上传文件的表单,并设置表单的 enctype 属性为 multipart/form-data,这样就可以上传二进制文件了。代码示例: ``` <form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form> ``` 3. 处理上传的 Excel 文件并保存到数据库 在 Servlet 中处理上传的 Excel 文件,并使用 Apache POI 库读取 Excel 文件中的数据。代码示例: ``` protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 读取上传的文件 Part filePart = request.getPart("file"); InputStream fileStream = filePart.getInputStream(); // 解析 Excel 文件 Workbook workbook = WorkbookFactory.create(fileStream); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { // 读取每一行的图书信息 String name = row.getCell(0).getStringCellValue(); String author = row.getCell(1).getStringCellValue(); String publisher = row.getCell(2).getStringCellValue(); String isbn = row.getCell(3).getStringCellValue(); // 将图书信息保存到数据库中 Book book = new Book(name, author, publisher, isbn); bookDao.addBook(book); } // 关闭输入流和工作簿 fileStream.close(); workbook.close(); } ``` 在代码中,我们使用了 BookDao 类来保存图书信息到数据库中。BookDao 类可以使用 JDBC 或者 MyBatis 等 ORM 框架来实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值