浅谈MVC(jsp+servlet+JavaBean简单实例)

2023-11-07

MVC(Model View Controller) 旨在分离模型、控制、视图。是一种分层思想的体现。

mvc简单流程图

项目实例:购物车商品管理

总体设计

1实现DBHelper类
2创建实体类
3创建业务逻辑类(DAO)
4创建控制层
5创建页面层


1数据库连接

package util;

import java.sql.*;

public class DBHelper {

    public DBHelper() {
        // TODO Auto-generated constructor stub
    }
     private static final String driver="com.mysql.jdbc.Driver";
        private static final String url="jdbc:mysql://localhost:3306/shopping";
        private static final String username="root";
        private static final String password="123";

    private static Connection con;
    //加载驱动
    static
    {
        try{
            Class.forName(driver);
        }catch (Exception e) {
            e.printStackTrace( );
        }
    }


    //单例模式返回数据库对象
    public static Connection getConnection() throws Exception {
        if(con==null){
            con=DriverManager.getConnection(url,username,password);
            return con;
    }
        return con;
    }
    public static void main(String[] args) {
        try {
            Connection con=DBHelper.getConnection();
            if(con!=null){
                System.out.println("连接正常!");
            }else{
                System.out.println("连接异常!");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

2实体类

  • 商品类
package entity;

public class Items {

    private int id;
    private String name;
    private String city;
    private int price;
    private int number;
    private String picture;

    public Items() {

    }

    public Items(int id, String name, String city, int price, int number, String picture) {

        this.id = id;
        this.name = name;
        this.city = city;
        this.price = price;
        this.number = number;
        this.picture = picture;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getPicture() {
        return picture;
    }

    public void setPicture(String picture) {
        this.picture = picture;
    }

    @Override
    public int hashCode() {
        // TODO Auto-generated method stub
        return this.getId() + this.getName().hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        // TODO Auto-generated method stub
        if (this == obj) {
            return true;
        }
        if (obj instanceof Items) {
            Items i = (Items) obj;
            if (this.getId() == i.getId() && this.getName().equals(i.getName())) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }

    @Override
    public String toString() {

        return "商品编号" + this.getId() + ",商品名称" + this.getName();
    }

}

  • 购物车类
package entity;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;



//购物车类
public class Cart {

    // 购买商品集合
    private HashMap<Items, Integer> goods;

    // 购物车总金额
    private double totalPrice;


    public Cart() {

        goods = new HashMap<Items, Integer>();
        totalPrice = 0.0;
    }

    public HashMap<Items, Integer> getGoods() {
        return goods;
    }

    public void setGoods(HashMap<Items, Integer> goods) {
        this.goods = goods;
    }

    public double getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(double totalPrice) {
        this.totalPrice = totalPrice;
    }
   //添加商品
    public boolean addGoodsInCart(Items item,int number){

        if(goods.containsKey(item)){
            goods.put(item, goods.get(item)+number);
        }else{
            goods.put(item, number);
        }


        calTotalPrice();//重新计算购物车总金额
        return true;
    }
    //删除
    public boolean removeGoodsFromCart(Items item){
        goods.remove(item);
        return true;
    }
    //统计总金额
    public double calTotalPrice(){
        double sum=0.0;
        Set<Items> keys= goods.keySet();//获得键集合
        Iterator<Items> it=keys.iterator();//获得迭代器对象
        while(it.hasNext()){
            Items i= it.next();
            sum +=i.getPrice()* goods.get(i);
        }
        this.setTotalPrice(sum);//设置购物车总金额
        return this.getTotalPrice();
    }
    //测试购物车类
    public static void main(String[] args) {

        //创建两个商品对象
        Items i1 =new Items(1,"沃特篮球鞋","温州",200,500,"001.jpg");
        Items i2 =new Items(2,"李宁篮球鞋","广州",300,500,"002.jpg");
        Items i3 =new Items(2,"李宁篮球鞋","广州",300,500,"002.jpg");
        Cart c=new Cart();
        c.addGoodsInCart(i1, 1);
        c.addGoodsInCart(i2, 2);
        //再次购买李宁 三双
        c.addGoodsInCart(i3, 3);
        //遍历购物商品集合
        Set<Map.Entry<Items, Integer>> items=c.getGoods().entrySet();
        for(Map.Entry<Items, Integer> obj:items){

            System.out.println(obj);
        }
        System.out.println("总金额"+c.getTotalPrice());
    }
}

DAO层(javabean)

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import util.DBHelper;

import entity.Items;

//商品的业务逻辑类
public class ItemsDAO {

    // 获得所有的商品信息
    public ArrayList<Items> getAllItems() {
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        ArrayList<Items> list = new ArrayList<Items>(); // 商品集合
        try {
            conn = DBHelper.getConnection();
            String sql = "select * from items;"; // SQL语句
            stmt = conn.prepareStatement(sql);
            rs = stmt.executeQuery();
            while (rs.next()) {
                Items item = new Items();
                item.setId(rs.getInt("id"));
                item.setName(rs.getString("name"));
                item.setCity(rs.getString("city"));
                item.setNumber(rs.getInt("number"));
                item.setPrice(rs.getInt("price"));
                item.setPicture(rs.getString("picture"));
                list.add(item);// 把一个商品加入集合
            }
            return list; // 返回集合。
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        } finally {
            // 释放数据集对象
            if (rs != null) {
                try {
                    rs.close();
                    rs = null;
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
            // 释放语句对象
            if (stmt != null) {
                try {
                    stmt.close();
                    stmt = null;
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }

    }

    // 根据商品编号获得商品资料
    public Items getItemsById(int id) {
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            conn = DBHelper.getConnection();
            String sql = "select * from items where id=?;"; // SQL语句
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1, id);
            rs = stmt.executeQuery();
            if (rs.next()) {
                Items item = new Items();
                item.setId(rs.getInt("id"));
                item.setName(rs.getString("name"));
                item.setCity(rs.getString("city"));
                item.setNumber(rs.getInt("number"));
                item.setPrice(rs.getInt("price"));
                item.setPicture(rs.getString("picture"));
                return item;
            } else {
                return null;
            }

        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        } finally {
            // 释放数据集对象
            if (rs != null) {
                try {
                    rs.close();
                    rs = null;
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
            // 释放语句对象
            if (stmt != null) {
                try {
                    stmt.close();
                    stmt = null;
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }

        }
    }
    //获取最近浏览的前五条商品信息
    public ArrayList<Items> getViewList(String list)
    {
        System.out.println("list:"+list);
        ArrayList<Items> itemlist = new ArrayList<Items>();
        int iCount=5; //每次返回前五条记录
        if(list!=null&&list.length()>0)
        {
            String[] arr = list.split("#");
            System.out.println("arr.length="+arr.length);
            //如果商品记录大于等于5条
            if(arr.length>=5)
            {
               for(int i=arr.length-1;i>=arr.length-iCount;i--)
               {
                  itemlist.add(getItemsById(Integer.parseInt(arr[i])));  
               }
            }
            else
            {
                for(int i=arr.length-1;i>=0;i--)
                {
                    itemlist.add(getItemsById(Integer.parseInt(arr[i])));
                }
            }
            return itemlist;
        }
        else
        {
            return null;
        }

    }

}

Servlet控制层

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

import dao.ItemsDAO;
import entity.Cart;
import entity.Items;

public class CartServlet extends HttpServlet {

    private String action;     // action对象有三个动作add show delete
    private ItemsDAO idao = new ItemsDAO();

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        if (request.getParameter("action") != null) {
            this.action = request.getParameter("action");
            if (action.equals("add"))// 添加商品进购物车
            {
                if (addToCart(request, response)) {
                    request.getRequestDispatcher("/success.jsp").forward(request, response);
                } else {
                    request.getRequestDispatcher("/failure.jsp").forward(request, response);
                }
            }

             if(action.equals("show")){              //显示购物车
                    request.getRequestDispatcher("/cart.jsp").forward(request, response);
             }
             if(action.equals("delete")){
                 if(deleteFromCart(request,response)){
                     request.getRequestDispatcher("/cart.jsp").forward(request, response); 
                 }else{
                     request.getRequestDispatcher("/cart.jsp").forward(request, response); 
                 }
             }
             }
             }



    private boolean addToCart(HttpServletRequest request, HttpServletResponse response) {
        String id = request.getParameter("id");
        String number = request.getParameter("num");
        Items item = idao.getItemsById(Integer.parseInt(id));

        // 是否第一次给购物车添加商品,需要给session中创建一个新的购物车对象
        if (request.getSession().getAttribute("cart") == null) {
            Cart cart = new Cart();
            request.getSession().setAttribute("cart", cart);
        }
        Cart cart = (Cart) request.getSession().getAttribute("cart");
        if (cart.addGoodsInCart(item, Integer.parseInt(number))) {
            return true;
        } else {
            return false;
        }
    }
    private boolean deleteFromCart(HttpServletRequest request,HttpServletResponse response){


        String id=request.getParameter("id");
        Cart cart=(Cart)request.getSession().getAttribute("cart");
        Items item=idao.getItemsById(Integer.parseInt(id));
        if(cart.removeGoodsFromCart(item)){
            return true;
        }else{
            return false;
        }
    }

    public CartServlet() {
        // TODO Auto-generated constructor stub
    }
    public void init() throws ServletException {
        // Put your code here
    }

}

jsp页面

index.jsp

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="entity.Items"%>
<%@ page import="dao.ItemsDAO"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <style type="text/css">
       div{
          float:left;
          margin: 10px;
       }
       div dd{
          margin:0px;
          font-size:10pt;
       }
       div dd.dd_name
       {
          color:blue;
       }
       div dd.dd_city
       {
          color:#000;
       }
    </style>
  </head>

  <body>
    <h1 >商品展示</h1>
    <hr>

    <center>
    <table width="750" height="60" cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td>

          <!-- 商品循环开始 -->
           <% 
               ItemsDAO itemsDao = new ItemsDAO(); 
            ArrayList<Items> list=itemsDao.getAllItems();
               if(list!=null&&list.size()>0)
               {
                   for(int i=0;i<list.size();i++)
                   {
                      Items item = list.get(i);
           %>   
          <div>
             <dl>
               <dt>
                 <a href="details.jsp?id=<%=item.getId()%>"><img src="images/<%=item.getPicture()%>" width="120" height="90" border="1"/></a>
               </dt>
               <dd class="dd_name"><%=item.getName() %></dd> 
               <dd class="dd_city">产地:<%=item.getCity() %>&nbsp;&nbsp;价格¥:<%=item.getPrice() %></dd> 
             </dl>
          </div>
          <!-- 商品循环结束 -->

          <%
                   }
              } 
          %>
        </td>
      </tr>
    </table>
    </center>
  </body>
</html>

details.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %>
<%@ page import="entity.Items"%>
<%@ page import="dao.ItemsDAO"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'details.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <link href="css/main.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="js/lhgcore.js"></script>
    <script type="text/javascript" src="js/lhgdialog.js"></script>
    <script type="text/javascript">
      function selflog_show(id)
      { 
         var num =  document.getElementById("number").value; 
         J.dialog.get({id: 'haoyue_creat',title: '购物成功',width: 600,height:400, link: '<%=path%>/servlet/CartServlet?id='+id+'&num='+num+'&action=add', cover:true});
      }
      function add()
      {
         var num = parseInt(document.getElementById("number").value);
         if(num<100)
         {
            document.getElementById("number").value = ++num;
         }
      }
      function sub()
      {
         var num = parseInt(document.getElementById("number").value);
         if(num>1)
         {
            document.getElementById("number").value = --num;
         }
      }

    </script>

    <style type="text/css">
       hr{

         border-color:FF7F00; 
       }

       div{
          float:left;
          margin-left: 30px;
          margin-right:30px;
          margin-top: 5px;
          margin-bottom: 5px;

       }
       div dd{
          margin:0px;
          font-size:10pt;
       }
       div dd.dd_name
       {
          color:blue;
       }
       div dd.dd_city
       {
          color:#000;
       }
       div #cart
       {
         margin:0px auto;
         text-align:right; 
       }
       span{
         padding:0 2px;border:1px #c0c0c0 solid;cursor:pointer;
       }
       a{
          text-decoration: none; 
       }
    </style>
  </head>

  <body>
    <h1>商品详情</h1>
    <a href="index.jsp">首页</a> >> <a href="index.jsp">商品列表</a>
    <hr>
    <center>
      <table width="750" height="60" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <!-- 商品详情 -->
          <% 
             ItemsDAO itemDao = new ItemsDAO();
             Items item = itemDao.getItemsById(Integer.parseInt(request.getParameter("id")));
             if(item!=null)
             {
          %>
          <td width="70%" valign="top">
             <table>
               <tr>
                 <td rowspan="5"><img src="images/<%=item.getPicture()%>" width="200" height="160"/></td>
               </tr>
               <tr>
                 <td><B><%=item.getName() %></B></td> 
               </tr>
               <tr>
                 <td>产地:<%=item.getCity()%></td>
               </tr>
               <tr>
                 <td>价格:<%=item.getPrice() %></td>
               </tr>
               <tr>
                 <td>购买数量:<span id="sub" onclick="sub();">-</span><input type="text" id="number" name="number" value="1" size="2"/><span id="add" onclick="add();">+</span></td>
               </tr> 
             </table>
             <div id="cart">
               <img src="images/buy_now.png"><a href="javascript:selflog_show(<%=item.getId()%>)"><img src="images/in_cart.png"></a><a href="servlet/CartServlet?action=show"><img src="images/view_cart.jpg"/></a>
             </div>
          </td>
          <% 
            }
          %>
          <% 
              String list ="";
              //从客户端获得Cookies集合
              Cookie[] cookies = request.getCookies();
              //遍历这个Cookies集合
              if(cookies!=null&&cookies.length>0)
              {
                  for(Cookie c:cookies)
                  {
                      if(c.getName().equals("ListViewCookie"))
                      {
                         list = c.getValue();
                      }
                  }
              }

              list+=request.getParameter("id")+"#";
              //如果浏览记录超过1000条,清零.
              String[] arr = list.split("#");
              if(arr!=null&&arr.length>0)
              {
                  if(arr.length>=1000)
                  {
                      list="";
                  }
              }
              Cookie cookie = new Cookie("ListViewCookie",list);
              response.addCookie(cookie);

          %>
          <!-- 浏览过的商品 -->
          <td width="30%" bgcolor="#EEE" align="center">
             <br>
             <b><font color="#FF7F00">您浏览过的商品</font></b><br>
             <!-- 循环开始 -->
             <% 
                ArrayList<Items> itemlist = itemDao.getViewList(list);
                if(itemlist!=null&&itemlist.size()>0 )
                {
                   System.out.println("itemlist.size="+itemlist.size());
                   for(Items i:itemlist)
                   {

             %>
             <div>
             <dl>
               <dt>
                 <a href="details.jsp?id=<%=i.getId()%>"><img src="images/<%=i.getPicture() %>" width="120" height="90" border="1"/></a>
               </dt>
               <dd class="dd_name"><%=i.getName() %></dd> 
               <dd class="dd_city">产地:<%=i.getCity() %>&nbsp;&nbsp;价格:<%=i.getPrice() %></dd> 
             </dl>
             </div>
             <% 
                   }
                }
             %>
             <!-- 循环结束 -->
          </td>
        </tr>
      </table>
    </center>
  </body>
</html>

success.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'success.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="style.css">
    -->

  </head>

  <body>
    <center>
      <img src="images/add_cart_success.jpg"/>
      <hr>
      <% 
         String id = request.getParameter("id");
         String num = request.getParameter("num");
      %>
             您成功购买了<%=num%>件商品编号为<%=id%>的商品&nbsp;&nbsp;&nbsp;&nbsp;
      <br>
      <br>
      <br>

    </center>
  </body>
</html>

failure.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'success.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
    <center>
      <img src="images/add_cart_failure.jpg"/>
      <hr>

      <br>
      <br>
      <br>

    </center>
  </body>
</html>

cart.jsp

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ page import="entity.Cart" %>
<%@ page import="entity.Items" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'cart.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <link type="text/css" rel="stylesheet" href="css/style1.css" />
    <script language="javascript">
     function delcfm(){
         if(!comfirm("确认要删除?")){
             window.event.returnValue=false;
         }
     }
   </script>
  </head>

  <body>
   <h1>我的购物车</h1>
   <a href="index.jsp">首页</a> >> <a href="index.jsp">商品列表</a>
   <hr> 
   <div id="shopping">
   <form action="" method="">       
            <table>
                <tr>
                    <th>商品名称</th>
                    <th>商品单价</th>
                    <th>商品价格</th>
                    <th>购买数量</th>
                    <th>操作</th>
                </tr>
                <% 
                   //首先判断session中是否有购物车对象
                   if(request.getSession().getAttribute("cart")!=null)
                   {
                %>
                <!-- 循环的开始 -->
                     <% 
                         Cart cart=(Cart)request.getSession().getAttribute("cart");
                     HashMap<Items,Integer> goods=cart.getGoods();
                     Set<Items> items=goods.keySet();
                     Iterator<Items> it=items.iterator();

                     while(it.hasNext()){
                         Items i=it.next();
                         %> 
                <tr name="products" id="product_id_1">
                    <td class="thumb"><img src="images/<%=i.getPicture()%>" /><a href=""><%=i.getName()%></a></td>
                    <td class="number"><%=i.getPrice() %></td>
                    <td class="price" id="price_id_1">
                        <span><%=i.getPrice()*goods.get(i) %></span>
                        <input type="hidden" value="" />
                    </td>
                    <td class="number">
                        <%=goods.get(i)%>                   
                    </td>                        
                    <td class="delete">
                      <a href="servlet/CartServlet?action=delete&id=<%=i.getId()%>" onclick="delcfm();">删除</a>   <!-- onclick 调用js删除方法  -->                           
                    </td>
                </tr>
                     <% 
                     }
                     %>
                <!--循环的结束-->

            </table>
             <div class="total"><span id="total">总计:<%=cart.getTotalPrice() %></span></div>
              <% 
                }
             %>
            <div class="button"><input type="submit" value="" /></div>
        </form>
    </div>
  </body>
</html>


WEB.xml
servlet类一定不要忘记配置xml文档!!!切记!!


<servlet>
    <servlet-name>CartServlet</servlet-name>
    <servlet-class>servlet.CartServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>CartServlet</servlet-name>
    <url-pattern>/servlet/CartServlet</url-pattern>
  </servlet-mapping>

参照慕课网课程项目实例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈MVC(jsp+servlet+JavaBean简单实例) 的相关文章

  • 3.2 回溯法—N皇后问题

    1 问题描述 在 n n n times n n n的棋盘上摆放 n n n个皇后 使任意两个皇后都不能处于同一行 同一列或同一斜线上 2 问题

随机推荐

  • uniapp 跳转支付宝支付

    saId 作用 20000123 支付宝收款码 10000007 支付宝扫一扫 let authUrl alipays platformapi startapp saId 10000007 qrcode decodeURI res code
  • 华为机试 放苹果

    题解 动态规划 采用dp i j 表示 i个苹果放入j个盘子的不同分法数 状态转移 我们首先要明确一点 j个苹果放入i个盘中中 总共有下列两种情况 盘子全部放满 至少有一个盘子不放 为空 一 当i gt j 时 也就是苹果数多于盘子数时 1
  • FreeRTOS学习笔记<中断>

    中断概念 Cortex M的NVIC最多支持240个IRQ 中断请求 1个不可屏蔽中断 NMI 1个Systick 滴答定时器 定时器中断和多个系统异常 Cortex M处理器有多个用于管中断和异常的可编程寄存器 这些寄存器大多数都在 NV
  • 代码编辑神器--VSCode之插件

    代码编辑神器 VSCode之插件 Visual Studio Code 简称VS Code 是一个由微软开发 同时支持Windows Linux 和 macOS 等操作系统的免费代码编辑器 在2019年的Stack Overflow组织的开
  • MySQL引擎

    MyISAM存储引擎 MyIsam 的存储文件有三个 后缀名分别是 frm MYD MYI 其中 frm 是表的定义文件 MYD 是数据文件 MYI 是索引文件 MyIsam 只支持表锁 不支持事务 MyIsam 由于有单独的索引文件 在读
  • STM32单片机初学5-IIC通信驱动OLED屏幕

    在我上篇文章 STM32 软件模拟IIC通信 讲解了软件模拟IIC通信 这篇文章详将细讲解利用软件模拟IIC来控制0 96寸的OLED屏幕 如下图 使其显示字符串 本文将不再对IIC通信原理做详细讲解 所以对IIC通信原理不熟悉的话可以参考
  • NAT技术和代理服务器

    NAT NAT是地址转换协议 将内网地址转换为公网地址 简单的说 NAT就是在局域网内部网络中使用内部地址 而当内部节点要与外部网络进行通讯时 就在网关处 将内部地址替换成公用地址 从而在外部公网 internet 上正常使用 NAT可以使
  • Nginx配置静态资源文件403 没权限及404 Not Found问题解决方法

    Nginx配置静态资源文件403 没权限及404 Not Found问题解决方法 修改配置文件nginx conf 静态文件报错403配置 文件最上方 user nobody改为 user root owner 404错误配置 nginx配
  • Shell脚本——流量探测(自动化运维)

    目的 自动 捕获指定IP或端口的流量生成日志 实现流量探测功能 准备 Root用户权限下才能运行tcpdump脚本 优势 Liunx系统自带 无需安装其他组件 捕获准确度高 缺点 不能同时检测多个IP流量 效率低 重点 日志文件 touch
  • 【报错记录】解决华擎J3455-ITX不插显示器无法开机的问题

    我的J3455 ITX主要当作下载机使用 对付那个速度奇慢的百度云 速度任它慢 我7 24小时不停的下 总能下完 然后又嵌套了一个CentOS7的虚拟机 用于作为GitLab代码服务器使用 可以说是一举多得 但是最近发现这台经常掉线 远程桌
  • idea集成visualvm插件 以及添加visual GC插件 - 监控程序

    安装VisualVM插件 1 插件安装 setting gt Plugings gt VisualVM launcher gt Search in repositories gt install gt Restart IDEA 安装完成之后
  • Java——Intellij IDEA出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver处理办法

    Intellij IDEA出现 Exception in thread main java lang ClassNotFoundException com mysql jdbc 处理办法 解决方法 File gt project struc
  • git修改提交记录的邮箱

    前言 旧仓库迁移到新的git仓库 而新仓库开启了规则 检查 Git 提交的提交者 Committer 和提交作者 Author 必须是已验证的邮箱 于是 旧的代码仓库无法整库迁移 提交时提示 remote 提交 52954f93882138
  • vue 循环input获取值

    html代码 循环input v model绑定
  • c语言中的语义错误和语法错误,C语言程序中对错误的调试

    程序调试 现在我们已经可以编写一个简单的 C语言程序了 但是你可能会犯一些简单的错误 程序的错误通常叫做 bug 而发现和修正这些错误的过程叫做调试 下面有一个带有一些错误的程序 看看你能找出多少 语法错误 上面的程序中包含了几个语法错误
  • linux grep 使用

    1 grep 单独使用 搜素指定目录中包含指定字符的文件 例如 grep r words 搜素当前目录中包含 words 字符的文件 grep r words wc 搜素当前目录中包含 words 字符的文件 只显示 包含该字符的数量 2
  • gre 填空78-89

    section 78 median 1 Kinetic dynamic energizing Immutable not capable of or susceptible to change 2 It is often argued th
  • idea build 报错,maven install 正常运行

    pom中引的包 代码写的时候也有提示 写完也不报错 build 或者 run 或者 debug 启动就报错 提示程序包xxx无法找到 原来是idea 自身的问题 首先执行maven 命令 mvn idea idea 再点击idea的菜单fi
  • 被包围的棋子 Surrounded Regions

    问题 Given a 2D board containing X and O capture all regions surrounded by X A region is captured by flipping all O s into
  • 浅谈MVC(jsp+servlet+JavaBean简单实例)

    MVC Model View Controller 旨在分离模型 控制 视图 是一种分层思想的体现 项目实例 购物车商品管理 总体设计 1实现DBHelper类 2创建实体类 3创建业务逻辑类 DAO 4创建控制层 5创建页面层 1数据库连