1 创建一个Dynamic Web Project.
2 创建一个新的servlet(包名是com.jht.controller,类名是:GoodsServlet)
3 修改Build Path(增加Tomcat引用和mysql-connector-java-5.1.6-bin引用)
4 增加web.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>GoodsServlet</servlet-name>
<servlet-class>com.jht.controller.GoodsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GoodsServlet</servlet-name>
<url-pattern>/GoodsServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
5 index.jsp文件内容如下:
<html>
<head>
<title>录入商品信息</title>
<style type="text/css">
*{font-size: 12px;}
</style>
<script type="text/javascript">
function save(form){
if(form.name.value == ""){
alert("请输入商品名称!");
return false;
}
if(form.price.value == ""){
alert("请输入商品价格!");
return false;
}
if(form.description.value == ""){
alert("请输入商品描述!");
return false;
}
}
</script>
</head>
<body>
<form action="GoodsServlet" method="post" onsubmit="return save(this);">
<table border="1" align="center" width="300">
<tr>
<td align="center" colspan="2">
<br><h1>录入商品信息</h1>
</td>
</tr>
<tr>
<td align="right">商品名称:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td align="right">价 格:</td>
<td><input type="text" name="price"></td>
</tr>
<tr>
<td align="right">商品描述:</td>
<td><textarea name="description" cols="30" rows="3"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="提 交">
<input type="reset" value="重 置">
</td>
</tr>
</table>
</form>
</body>
</html>
6 创建com.jht.model包名
7 在此包下面创建Goods 类和GoodsDao类
Goods内容如下:
package com.jht.model;
public class Goods {
private String name; // 商品名称
private double price; // 单价
private String description; // 描述信息
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
GoodsDao内如如下:
package com.jht.model;
/*
* 商品数据库操作类
* @author
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class GoodsDao {
/**
* 保存商品信息
* @param goods
*/
public void saveGoods(Goods goods){
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接url
String url = "jdbc:mysql://localhost:3306/c2cd?characterEncoding=UTF-8";
// 获取数据库连接
Connection conn = DriverManager.getConnection(url, "root", "root");
// sql语句
String sql = "insert into tb_goods(name,price,description) values(?,?,?)";
// 创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 对sql语句中参数赋值
ps.setString(1, goods.getName());
ps.setDouble(2, goods.getPrice());
ps.setString(3, goods.getDescription());
ps.executeUpdate(); // 更新操作
ps.close(); // 关闭ps
conn.close(); // 关闭conn
} catch (Exception e) {
e.printStackTrace();
}
}
}
8 修改GoodsServlet文件
(注意:在一个Servlet 对象中,最常用的方法是doGet()和doPost()方法,这2个方法分别用于处理HTTP的Get和Post请求。例如,<form>表单对象所声明的method属性为"post",提交到Servlet对象处理时,Servlet将调用doPost()方法进行处理。)
package com.jht.controller;
import java.io.IOException;
import java.io.PrintWriter;
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 com.jht.model.Goods;
import com.jht.model.GoodsDao;
/**
* Servlet implementation class GoodsServlet
*/
@WebServlet("/GoodsServlet")
public class GoodsServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public GoodsServlet() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// 设置response编码
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
// 设置request编码
request.setCharacterEncoding("UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 获取商品信息
String name = request.getParameter("name");
String price = request.getParameter("price");
String description = request.getParameter("description");
Goods goods = new Goods(); // 实例化商品对象
// 对商品对象属性赋值
goods.setName(name);
goods.setPrice(Double.valueOf(price));
goods.setDescription(description);
// 实例化GoodsDao
GoodsDao goodsDao = new GoodsDao();
goodsDao.saveGoods(goods); // 保存商品信息
out.print("保存商品信息成功!");
out.flush();
out.close();
}
}
9 数据表脚本如下:
/*
Navicat MySQL Data Transfer
Source Host : localhost:3306
Source Database : c2cd
Target Host : localhost:3306
Target Database : c2cd
Date: 2012-07-09 14:41:20
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tb_goods
-- ----------------------------
DROP TABLE IF EXISTS `tb_goods`;
CREATE TABLE `tb_goods` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`price` double DEFAULT NULL,
`description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;