model2

  1. model2是由JSP+Servlet+JavaBean一起实现的,由jsp负责页面,JavaBean用于存储数据,Servlet处在jsp和JavaBean中间,负责调用JavaBean的存储方法将JSP传来的数据存储到数据库中。
  2. 这里要说以下MVC原理。
    1. M model模型层,这是应用程序的核心部分,主要由JavaBean充当。可以是一个实体对象或者一种业务逻辑。
    2. V  view视图层 提供与用户交互的界面,但是不包含任何的业务逻辑,只是将数据传递给Controller
    3. C Controller控制层 三层中的大佬,获取视图层的数据并且把他交由模型层处理。
  3. 简单实现例子
    1. 数据库
       create table tb_goods
          -> (name varchar(45),
          -> price double,
          -> description varchar(100)
          -> );
    2. 贴心提醒文件的位置                                                                                  
  4. web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <servlet>
            <servlet-name>GoodsServlet</servlet-name>
            <servlet-class>GoodsServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>GoodsServlet</servlet-name>
            <url-pattern>/GoodsServlet</url-pattern>
        </servlet-mapping>
    </web-app>
  5. 视图层(index.jsp)

    <%--
      Created by IntelliJ IDEA.
      User: 11955
      Date: 2018/10/20
      Time: 9:33
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>$Title$</title>
      </head>
      <body>
      <form action="GoodsServlet" method="post" onsubmit="return save(this);">
        <table border="1" align="center" width="300">
    
          <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="ok">
              <input type="reset" value="reset">
            </td>
          </tr>
    
        </table>
      </form>
      </body>
    </html>
    
  6. 控制层,也就是servlet

    import com.model.Goods;
    import com.model.GoodsDao;
    
    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 java.io.IOException;
    import java.io.PrintWriter;
    
    @WebServlet(name = "GoodsServlet")
    public class GoodsServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html");
            response.setCharacterEncoding("utf-8");
            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 = new GoodsDao();
            goodsDao.saveGoods(goods);
            out.print("ok");
            out.flush();
            out.close();
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        }
    }
    
  7. 模型层,两个JavaBean

    /**
     * Demo Goods
     *
     * @author linMinRui
     * @date 2016/10/20
     */
    package com.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 proice) {
            this.price = proice;
        }
    
        public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    }
    
    /**
     * Demo Goods
     *
     * @author GoodsDao
     * @date 2016/10/20
     */
    package com.model;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    
    public class GoodsDao {
        public void saveGoods(Goods goods){
            try{
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/test";
                Connection conn = DriverManager.getConnection(url, "root", "123456");
                String sql = "insert into tb_goods(name, price, description) values(?,?,?)";
                PreparedStatement ps = conn.prepareStatement(sql);
                ps.setString(1,goods.getName());
                ps.setDouble(2,goods.getPrice());
                ps.setString(3,goods.getDescription());
                ps.executeUpdate();
                ps.close();
                conn.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
  8. 运行index.jsp输入数据,就可以在数据库中查看到。

猜你喜欢

转载自blog.csdn.net/weixin_39452731/article/details/83210928