随笔-0  评论-0  文章-16  trackbacks-0
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;




posted on 2012-07-09 14:31 jhtchina 阅读(739) 评论(0)  编辑  收藏 所属分类: servlet