HttpServletRequest 请求对象
从客户端发送请求,服务器将会创建该对象
请求的类型
- 在浏览器的地址栏直接输入URL
- 超链接
<a herf="URL"><a>
- JS中:
location.herf="URL"
- 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:
- 以明文的方式通过URL提交数据,数据在URL里面可以看到
- 提交数据不超过2kb
- 安全性较低但效率比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);
}
}