EclipseEE+Tomcat8+MySQL+花生壳 实现简单的购物网站(外网可访问)

/*集大成者,美若天成*/

package cart;

import java.sql.Connection;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Map;
import java.util.TreeMap;

import util.JDBCUtil;

/* 购物车类   */
public class Cart {
    
    /* 属性:商品,采用Map;Key为商品编号,Value为商品   */
   private Map<Integer, Product> product =new TreeMap<Integer, Product>();
   
   Connection conn = null;
   Statement stat = null;
   ResultSet rs = null;
   PreparedStatement prstat = null;
   
   /*  根据商品编号向购物车添加商品  */
   public void addProduct(int id) throws SQLException{
       conn  = JDBCUtil.getConnection();           /*  与数据库建立连接    */
       stat = conn.createStatement();
       String sql = "select * from product"; 
       rs = stat.executeQuery(sql); 
       
       /*  从ResultSet获取商品信息,加入Map中  */
       while(rs.next()){
              Product teppro =new Product(
                rs.getInt("idproduct"),
                   rs.getString("name"),
                   rs.getString("brand"),
                   rs.getInt("price")
                   );  
           product.put(teppro.getId(), teppro);
       } 
       /*  foreach遍历Map  */
       for(Map.Entry<Integer, Product> pro : product.entrySet()) {
              int pid = pro.getKey();
              if(pid == id){ /* 找到要加入的商品id   */
                  sql  = "select * from cart where idproduct = "+pid;
                  System.out.println(sql);
                  rs = stat.executeQuery(sql);    /*    */
                  /*  查询购物中是否已存在该商品  */
                  if(rs.next()){
                      int amo = 1 + rs.getInt("amount") ;     /*  商品数量加一  */
                      sql = "update cart set amount = ? where idproduct = ?";
                      System.out.println(sql);
                      prstat = conn.prepareStatement(sql);
                      prstat.setInt(1, amo);
                      prstat.setInt(2, pid);
                      prstat.execute();
                      /*  设置单品总价  */
                      sql = "update cart set total = ? where idproduct = ?";
                      prstat = conn.prepareStatement(sql);
                      prstat.setInt(1, amo*rs.getInt("price"));
                      prstat.setInt(2, pid);
                      prstat.execute();
                     
                  }else {  /*   当购物车中不存在该商品,添加该商品 */
                      Product p = pro.getValue();System.out.println(p.toString());
                      sql = "insert into cart(idproduct,name,brand,price,amount,total) "
                              + "values(?,?,?,?,?,?)";
                      prstat = conn.prepareStatement(sql);
                      prstat.setInt(1, p.getId());
                      prstat.setString(2, p.getName());
                      prstat.setString(3, p.getBrand());
                      int pr =  p.getPrice();
                      prstat.setInt(4,pr);
                      prstat.setInt(5, 1);/* 商品个数为1   */
                      prstat.setInt(6,pr);
                      prstat.execute();
                  }
              }
       }
       
       JDBCUtil.closeConnection(conn);
   }
   
   
   /*   清除购物车所有商品   */
   public void clearCart() throws SQLException{
       conn  = JDBCUtil.getConnection();
       stat = conn.createStatement();
       String sql = "select * from cart";
       rs = stat.executeQuery(sql); 
       while(rs.next()){
              Product teppro =new Product(
                   rs.getInt("idproduct"),
                      rs.getString("name"),
                      rs.getString("brand"),
                      rs.getInt("price")
                      );  
           product.put(teppro.getId(), teppro);
       }
       for(Map.Entry<Integer, Product> pro : product.entrySet()) {
           int pid = pro.getKey();
           sql = "delete from cart where idproduct = ? ";
           prstat = conn.prepareStatement(sql);
           prstat.setInt(1, pid);
           prstat.execute();
       }
       JDBCUtil.closeConnection(conn);
   }
   
   /*   清除购物车单一商品   */
   public void clearProduct(int id) throws SQLException{
       conn  = JDBCUtil.getConnection();
       stat = conn.createStatement();
       String sql = "select * from cart";
       rs = stat.executeQuery(sql); 
       while(rs.next()){
              Product teppro =new Product(
                   rs.getInt("idproduct"),
                      rs.getString("name"),
                      rs.getString("brand"),
                      rs.getInt("price")
                      );  
           product.put(teppro.getId(), teppro);
       }
       for(Map.Entry<Integer, Product> pro : product.entrySet()) {
           int pid = pro.getKey();
           if(id==pid){       
           sql = "delete from cart where idproduct = ? ";
           prstat = conn.prepareStatement(sql);
           prstat.setInt(1, pid);
           prstat.execute();
           }
       }
       JDBCUtil.closeConnection(conn);
   }
   
   
  /*修改单品数量*/
   public void changeAmount(int idp ,int amon) throws SQLException{
       conn  = JDBCUtil.getConnection();
       stat = conn.createStatement();
       String sql = "select * from cart";
       rs = stat.executeQuery(sql); 
       while(rs.next()){
              Product teppro =new Product(
                   rs.getInt("idproduct"),
                      rs.getString("name"),
                      rs.getString("brand"),
                      rs.getInt("price")
                      );  
           product.put(teppro.getId(), teppro);
       }
       for(Map.Entry<Integer, Product> pro : product.entrySet()) {
           int pid = pro.getKey();System.out.println(pid);
           if(pid==idp){
               sql = "update cart set amount = ? where idproduct = ? ";
               prstat = conn.prepareStatement(sql);
               prstat.setInt(1, amon);
               prstat.setInt(2 , idp);
               prstat.execute();
           }
        }
       JDBCUtil.closeConnection(conn);
   }
   
}
package cart;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import util.JDBCUtil;
/*  用户类      */
public class User {
    
   private String username;
   private String password;
   
   Connection conn = null;
   Statement stat = null;
   ResultSet rs = null;
   
   /*  验证登录信息    */
   public boolean login() throws SQLException{
        Connection conn = JDBCUtil.getConnection();
        Statement stat = conn.createStatement();
        String sql = "select * from user"; 
        ResultSet rs = stat.executeQuery(sql);
        while(rs.next()){
            User us = new User(rs.getString("username"),rs.getString("psd"));us.toString();
            if(us.equals(this)){
                 return true;
            }
        }return false;
   }
   
@Override
public String toString() {
    return "User [username=" + username + ", password=" + password + "]";
}
public User(String username, String password) {

    this.username = username;
    this.password = password;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((password == null) ? 0 : password.hashCode());
    result = prime * result + ((username == null) ? 0 : username.hashCode());
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    User other = (User) obj;
    if (password == null) {
        if (other.password != null)
            return false;
    } else if (!password.equals(other.password))
        return false;
    if (username == null) {
        if (other.username != null)
            return false;
    } else if (!username.equals(other.username))
        return false;
    return true;
}

   
   
   
}
package cart;

/*    商品类      */
public class Product {
    
   private int id;/* 商品编号  */
   private String name;/*商品名称*/
   private String brand;/*商品品牌*/
   private int price;/*商品价格*/
   
   
   /* 构造函数   */ 
public Product(int id, String name, String brand, int price) {
    super();
    this.id = id;
    this.name = name;
    this.brand = brand;
    this.price = price;
}

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 getBrand() {
    return brand;
}
public void setBrand(String brand) {
    this.brand = brand;
}
public int getPrice() {
    return price;
}
public void setPrice(int price) {
    this.price = price;
}
   
@Override
public String toString() {
    return "Product [id=" + id + ", name=" + name + ", brand=" + brand
            + ", price=" + price + "]";
}

   
}
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCUtil {

    private static String driverName = "com.mysql.jdbc.Driver";
    private static String URL = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK";
    private static String userName = "root";//根据自己数据库
    private static String password = "12345";

    /*   注册驱动       */
    public static void registerDriver() {
        try {
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("找不到驱动");
        }
    }
    
    /*  连接数据库     */
    public static Connection getConnection() throws SQLException {
        registerDriver();
        Connection conn = null;
        System.out.println("正在连接数据库...");
        conn = DriverManager.getConnection(URL, userName, password);
        System.out.println("数据库已连接!");
        return conn;

    }
    
    /*  关闭连接    */
    public static void closeConnection(Connection conn) {
        System.out.println("正在释放所有资源...");
        try {
            if (conn != null) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    /*
     * 释放所有资源
     */
    public static void realeaseAll(Statement st,Connection conn){
        if (st!=null){
            try {
                st.close();
                st = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        closeConnection(conn);
    }
    
    

}
<%@page import="java.util.LinkedList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
<%@ page import="java.sql.*,util.JDBCUtil,cart.Product,java.util.*"%>
<!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=UTF-8">
<title>商品信息</title>
</head>

<!-- 设置背景图片 -->
<style type="text/css">    
 body{    
      background-image: url(background.jpg);    
      background-size :100%;  
 }    
</style>

<!-- 设置字体 -->
<style type="text/css">
#product
  {
  font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
  width:70%;
  border-collapse:collapse;
  }

#product td, #product th 
  {
  font-size:1em;
  border:1px solid #98bf21;
  padding:3px 7px 2px 7px;
  }

#product th 
  {
  font-size:1.1em;
  text-align:left;
  padding-top:5px;
  padding-bottom:4px;
  background-color:#A7C942;
  color:#ffffff;
  }

#product tr.blt td 
  {
  color:#000000;
  background-color:#FFFFFF;
}
 
#product tr.alt td 
  {
  color:#000000;
  background-color:#EAF2D3;
  }
</style>

<!-- 建立数据库连接,获取所有商品信息-->
<%  
Connection conn = JDBCUtil.getConnection();
Statement stat = conn.createStatement();
String sql = "select * from product"; 
ResultSet rs = stat.executeQuery(sql); 
%>   

<!-- 显示商品信息-->
<body>
<% 
String username = null;
%>
<!-- 显示欢迎信息 -->
    <div align="center">
        <br>  
        <% 
          username =  request.getParameter("username");
          if(username == null) out.println("<a href=‘login.jsp‘>用户登录                     </a>  ");
          else out.println("欢迎您,"+  username +" &nbsp&nbsp  <a href=‘operate.jsp?&op=exit&username="+username+"‘>退出             </a>  ");
        %>
              
   </div>

<!-- 输出商品信息 -->
  <div align="center">
    <table id="product" border="2" width="400">  
        <tr class="alt" >  
            <td align="center" width="90">商品编号</td>   
            <td align="center" width="90">商品名称</td>  
            <td align="center" width="90">商品品牌</td>  
            <td align="center" width="90">商品价格</td>  
            <td align="center" width="90">点击购买</td>
        </tr>
        <%
        /*  将商品信息读出    */
        List<Product> pl = new LinkedList<Product>();
        while(rs.next()){
            pl.add(new Product(
                    rs.getInt("idproduct"),
                    rs.getString("name"),
                    rs.getString("brand"),
                    rs.getInt("price")
                    ));
        }
        int i=1;
        for(Product pro:pl){
            if(i%2==0)out.println("<tr  class=‘alt‘ >"); 
            else out.println("<tr class=‘blt‘  >"); i++;
            out.println("<td align=‘center‘ width=‘90‘>"  +pro.getId()+"    </td>");
            out.println("<td align=‘center‘ width=‘90‘>"  +pro.getName()+"  </td>");
            out.println("<td align=‘center‘ width=‘90‘>"  +pro.getBrand()+" </td>");
            out.println("<td align=‘center‘ width=‘90‘>¥"  +pro.getPrice()+" </td>");
            out.println("<td><a href=‘operate.jsp?op=add&id="+pro.getId()+"&username="+username+"‘>加入购物车</a></td>"); 
            out.println("</tr>");  
        }
        %>
    </table> 
        </div>
        
<!--查看购物、清空购物车 -->
<div align="center">
           <br> 
            <%
               out.println("<a href=‘cart.jsp?username="+username+"‘>查看购物车                       </a>  &nbsp &nbsp ");
               out.println(" <a href=‘operate.jsp?op=clear&username="+username+"‘>清空购物车</a>     ");
            %>
                
                
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>用户登录</title>
</head>

<!-- 设置背景图片 -->
<style type="text/css">    
 body{    
      background-image: url(background.jpg);    
      background-size :100%;  
 }
 </style>
 
 <!-- 设置字体-->
<style type="text/css">
p.serif{font-family:Arial,Verdana,Sans-serif}
</style>

<body>
   <div align="center">
    <form name="postForm" action="dologin.jsp" method="get">    
        <p  class="serif">用户名 :<input type="text" name="username" /></p>
          <p  class="serif">密&nbsp&nbsp&nbsp&nbsp码:<input type="password" name="password" /></p>
        <input type="submit" value="登录" /> &nbsp &nbsp    &nbsp &nbsp    
          <a href="index.jsp">返回                  </a> 
    </form>

             

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>用户登录</title>
</head>

<!-- 设置背景图片 -->
<style type="text/css">    
 body{    
      background-image: url(background.jpg);    
      background-size :100%;  
 }
 </style>
 
 <!-- 设置字体-->
<style type="text/css">
p.serif{font-family:Arial,Verdana,Sans-serif}
</style>

<body>
   <div align="center">
    <form name="postForm" action="dologin.jsp" method="get">    
        <p  class="serif">用户名 :<input type="text" name="username" /></p>
          <p  class="serif">密&nbsp&nbsp&nbsp&nbsp码:<input type="password" name="password" /></p>
        <input type="submit" value="登录" /> &nbsp &nbsp    &nbsp &nbsp    
          <a href="index.jsp">返回                  </a> 
    </form>

             

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import=  "cart.Cart" %>
<!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=UTF-8">
<title>operating</title>
</head>
<body>
<!-- 连接数据库,计算总价 -->
<style type="text/css">    
 body{    
      background-image: url(background.jpg);    
      background-size :100%;  
 }    
</style>

<script>
function RepNumber(obj) {
    var reg = /^[\d]+$/g;
    if (!reg.test(obj.value)) {
    var txt = obj.value;
    txt.replace(/[^0-9]+/, function (char, index, val) {//匹配第一次非数字字符
    obj.value = val.replace(/\D/g, "");//将非数字字符替换成""
    var rtextRange = null;
    if (obj.setSelectionRange) {
    obj.setSelectionRange(index, index);
    } else {//支持ie
    rtextRange = obj.createTextRange();
    rtextRange.moveStart(‘character‘, index);
    rtextRange.collapse(true);
    rtextRange.select();
    }
    })
    }
    } 
</script>

<%
   String op = null;
   String username = null;
   String number = null;
   int id = 0;
   Cart cart = new Cart();
   op = request.getParameter("op");
   username = request.getParameter("username");
  
   
   if( !op.equals("exit") && (username == null || username.equals("null") || username.equals(null))){
       out.println(" &nbsp &nbsp  请登录....");
       response.setHeader("Refresh","1;URL=index.jsp"); 
   }else if(op.equals("add")){
       id = Integer.parseInt(request.getParameter("id"));
       cart.addProduct(id);
       out.println(" &nbsp &nbsp  正在添加商品....");
       response.setHeader("Refresh","0;URL=cart.jsp?username="+username);
   }else if(op.equals("clear")){
       cart.clearCart();
       out.println(" &nbsp &nbsp  正在清除购物车....");
       response.setHeader("Refresh","0;URL=cart.jsp?username="+username);
   }else if(op.equals("pay")){
       out.println(" &nbsp &nbsp  正在结算....");
       response.setHeader("Refresh","0;URL=pay.jsp?username="+username);
   }else if(op.equals("exit")){
       cart.clearCart();
       out.println(" &nbsp &nbsp  正在登出....");
       response.setHeader("Refresh","0;URL=index.jsp");  
   }else if(op.equals("delete")){
       id = Integer.parseInt(request.getParameter("id"));
       cart.clearProduct(id);
       out.println(" &nbsp &nbsp  正在退回....");
       response.setHeader("Refresh","0;URL=cart.jsp?username="+username);  
   }else if(op.equals("paid")){
       out.println("<div align=‘center‘ >");
       out.println(" &nbsp &nbsp 已经成功付款,顺丰快递将尽快为您配送....");
       out.println("<div>");
       cart.clearCart();
       response.setHeader("Refresh","2;URL=index.jsp?username="+username);
   }else if(op.equals("change")){
       id = Integer.parseInt(request.getParameter("id"));
       out.println("<div align=‘center‘ >");
       out.println("<form name=‘postForm‘ action=‘operate.jsp‘ method=‘get‘>    ");
       out.println("请输入数量:");
       out.println("<input type=‘text‘ name=‘number‘  onkeyup=‘javascript:RepNumber(this)‘/>");
       out.println("<input type=hidden name=‘id‘ value="+ id+">" );
       out.println("<input type=hidden name=‘op‘ value=changed>" );
       out.println(" <input type=hidden name=‘username‘ value="+ username+">");
       out.println(" <input type=‘submit‘ value=‘提交‘ /> ");
       out.println("</form>");
       out.println("<div>");
   }else if(op.equals("changed")){
        id = Integer.parseInt(request.getParameter("id"));
        cart.changeAmount(id,Integer.parseInt(request.getParameter("number")));
        out.println(" &nbsp &nbsp   修改成功....");
        response.setHeader("Refresh","0;URL=cart.jsp?username="+username);
   }

   
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%@ page import="java.sql.*,util.JDBCUtil,cart.*,java.util.*"%>
<!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=UTF-8">
<title>    支付页面    </title>
</head>
<body>
<%
String username = request.getParameter("username");
%>

<!-- 设置背景图片 -->
<style type="text/css">    
 body{    
      background-image: url(background.jpg);    
      background-size :100%;  
 }    
</style>  

<!-- 连接数据库,计算总价 -->
<div  align="center"  >
<%
Connection conn = JDBCUtil.getConnection();
Statement stat = conn.createStatement();
String sql = "select * from cart"; 
ResultSet rs = stat.executeQuery(sql); 

int sum = 0;

while(rs.next()){
    sum+=rs.getInt("price")*rs.getInt("amount");
}
out.println(" &nbsp 需支付¥ :"+sum);
JDBCUtil.closeConnection(conn);
%>
</div>

<!-- 选择收货地址 -->
<div align="center" >
选择送货地址:
<select  >
<option value="1" selected>福建</option>
</select>
 &nbsp &nbsp 
<select >
<option value="1" selected>厦门</option>
<option value="2" >泉州</option>
<option value="3">漳州</option>
</select>
&nbsp &nbsp 
具体地址 :<input type="text" name="address" size=20 />
&nbsp &nbsp 

 <% 
 out.println("<a href=‘operate.jsp?op=paid&username="+username+"‘>确定付款</a>   &nbsp &nbsp  ");
 out.println("<a href=‘cart.jsp?username="+username+"‘>返回购物车</a>   &nbsp &nbsp  ");
 %> 
</div>

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*,util.JDBCUtil,cart.Product,java.util.*"%>
<!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=UTF-8">
<title>我的购物车</title>
</head>
<!-- 设置背景 -->
<style type="text/css">    
 body{    
      background-image: url(background.jpg);    
      background-size :100%;  
 }    
</style>  

<!-- 表格美化 -->
<style type="text/css">
#product
  {
  font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
  width:70%;
  border-collapse:collapse;
  }

#product td, #product th 
  {
  font-size:1em;
  border:1px solid #98bf21;
  padding:3px 7px 2px 7px;
  }

#product th 
  {
  font-size:1.1em;
  text-align:left;
  padding-top:5px;
  padding-bottom:4px;
  background-color:#A7C942;
  color:#ffffff;
  }

#product tr.blt td 
  {
  color:#000000;
  background-color:#FFFFFF;
}
 
#product tr.alt td 
  {
  color:#000000;
  background-color:#EAF2D3;
  }
</style>

<!-- 连接数据库 -->
<% 
Connection conn = JDBCUtil.getConnection();
Statement stat = conn.createStatement();
String sql = "select * from cart"; 
ResultSet rs = stat.executeQuery(sql); 
String username = null;
%>
<body>
    <div align="center">
<% 
username = request.getParameter("username");
if(username == null || username.equals("null") || username.equals(null)){
    out.println(" &nbsp &nbsp  请登录....");
    response.setHeader("Refresh","0;URL=index.jsp"); 
}else
out.println("欢迎您,"+  username +" &nbsp&nbsp  <a href=‘operate.jsp?op=exit&username"+username+"‘>退出             </a>  ");
%>
</div>

  <!-- 输出购物车内容 -->
  
 <div align="center">
    <table border="2" width="600">  
        <tr class=‘alt‘>  
            <td align="center" width="90">商品编号</td>   
            <td align="center" width="90">商品名称</td>  
            <td align="center" width="90">商品品牌</td>  
            <td align="center" width="90">商品价格</td>  
            <td align="center" width="90">购买数量</td>
            <td align="center" width="90">单品总价</td>
            <td align="center" width="90">退回商品</td>
            <td align="center" width="90">修改数量</td>
        </tr>
        <%
        int j=1;int sum=0;
        while(rs.next()){
            int k,p,m;
            if(j%2==0)out.println("<tr  class=‘alt‘ >"); 
            else out.println("<tr class=‘blt‘  >"); j++; 
            out.println("<td align=‘center‘ width=‘90‘>"  +(k=rs.getInt("idproduct"))+"    </td>");
            out.println("<td align=‘center‘ width=‘90‘>"  +rs.getString("name")+"  </td>");
            out.println("<td align=‘center‘ width=‘90‘>"  +rs.getString("brand")+" </td>");
            out.println("<td align=‘center‘ width=‘90‘>"  +(p=rs.getInt("price"))+" </td>");
            out.println("<td align=‘center‘ width=‘90‘>"  +(m=rs.getInt("amount"))+" </td>");
            out.println("<td align=‘center‘ width=‘90‘>¥"  +p*m+"  </td>");
            out.println("<td align=‘center‘ width=‘90‘>"+ "<a href=‘operate.jsp?op=delete&username="+username+"&id="+ k+"‘>点击退回</a></td>");
            out.println("<td align=‘center‘ width=‘90‘>"+ "<a href=‘operate.jsp?op=change&username="+username+"&id="+ k+"‘>点击修改</a></td>");
            out.println("</tr>");  
            sum+=p*m;
        }
        %>
    </table> 
      </div>
     <div align="center">
        <br>  
    <%
    out.println("总计:¥   "+sum+" &nbsp &nbsp  ");
    out.println(" <a href=‘index.jsp?username="+username+"‘>继续购物                        </a>    &nbsp &nbsp      ");
    out.println("<a href=‘operate.jsp?op=clear&username="+username+"‘>清空购物车</a>    &nbsp &nbsp  ");
    out.println("  <a href=‘operate.jsp?op=pay&username="+username+"‘>结算</a>   &nbsp &nbsp  ");
    %>    
        
    </div>
</body>
</html>

这是网站采用的背景,个人觉得还不错。

这样代码部分就完工了。虽然还是缺少某些功能,以及有些处理不恰当,但总体还是可以的。接下来我们往数据库添加内容。注意网页字符集和数据库字符集,可能会出现乱码。

接着我们下载花生壳并安装好,申请一个免费域名(要花1元钱实名认证来着),然后将你的ip映射到外网。

由于我的tomcat的8080端口被占用了,所以改成了8088端口。那么怎么改端口号还有需要改什么,网上教程有很多,我这里简单陈述一下。进入tomcat文件夹,打开conf文件夹里的server.xml,搜索一下第一个8080,将其改成8088或其他,如果没被占用就不必改了。除此之外,搜索localhost并替换成xxxx.xicp.net。这样就可以了。

最后我们看一下成果。

时间: 2024-10-09 21:41:29

EclipseEE+Tomcat8+MySQL+花生壳 实现简单的购物网站(外网可访问)的相关文章

利用花生壳在自己电脑上建立外网可访问的svn

下载花生壳并注册账号 2.花生壳会送你一个免费的二级域名 3.登陆到路由器界面192.168.0.1或者192.168.0.0进入动态dns选项输入你的花生壳账号密码 4.在路由器设置界面设置转发规则 5.到花生壳官网的域名管理激活花生壳,打开花生壳软件中的域名检测你可以看到 6.下载TortoiseSVNhttp://tortoisesvn.net/downloads.html和VisualSVNServerhttp://www.visualsvn.com/server/download/ 7

我在腾讯云上买了太CVM服务器,来配置下外网如何访问MySql全程实录

1.服务器申请 最近在给一个小企业做个报价系统,C#WPF框架开发,桌面程序.由于用户可能经常出差,更换电脑,因此考虑将程序的数据库放到外网服务器上,每次程序使用需要登录验证,有点类似QQ的方法.这里有人说为什么不直接做成web,桌面应用已经落伍了.确实如此,原因主要是这个企业的报价系统的前端交互太多,一堆的javascript代码,还有一堆的word报表输入输出,做成web太过麻烦.因此还是决定做成桌面应用程序.由于访问量和并发性并不大,因此考虑性能一般的云服务器就可以了. 正好赶上腾讯活动,

Windows Server 2008上MYSQL外网无法访问有关问题解决

公司断网了 网络恢复之后 一直提示连不上MySQL服务器 本地能连接 远程不行 解决方法如下:选择:网络->windows 防火墙->高级设置->入站规则然后点击右上角的新建规则选择"端口" 下一步,输入3306端口,加入规则,然后再次点击新建规则选择"程序" 找到mysql bin下的启动路径,加入规则 然后外部访问mysql.成功!!!! 这个是防火墙的问题 Windows Server 2008上MYSQL外网无法访问有关问题解决,布布扣,b

Windows Server2008下MYSQL外网无法访问问题解决

这几天为俱乐部配置了个服务器,用作项目开发之用. 安装的是windows Server 2008 R2 操作系统 按照国际管理,安装了数据库 MYSQL 5.0. 一路顺利,可以通过外部连接MYSQL的时候出现了问题,无论如何也连接不上 发现这方面的资料很少,几经摸索,终于知道是防火墙的问题 解决方法如下: 选择:网络->windows 防火墙->高级设置->入站规则 然后点击右上角的新建规则 选择"端口" 下一步,输入3306端口,加入规则, 然后再次点击新建规则

【安富莱专题教程第3期】开发板搭建Web服务器,利用花生壳让电脑和手机可以外网远程监控

说明:1.  开发板Web服务器的设计可以看我们之前发布的史诗级网络教程:链接.2.  需要复杂些的Web设计模板,可以使用我们V6开发板发布的综合Demo:链接.3.  教程中使用的是花生壳免费版,免费版仅支持电信用户,每个月1GB的流量,实际测试几天,稳定性还行.收费版没有这些限制.4.  现在已经用了快两年的花生壳收费版,比较稳定,基本没有死机现象.5.  不管是免费版本的花生壳还是收费版的,有时候会提示需要实名认证,可以不用管.现在还没有强制必须执行.如果长期使用的话,建议做一下认证,认

使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)(转)

原文地址:http://www.cnblogs.com/qqflying/archive/2012/04/02/2430162.html 1.安装花生壳动态域名6.0,安装之后会自动给你一个二级域名,然后你还可以去花生壳网站再申请其他的免费二级域名,见下图: 新花生壳界面如下: 2.检测域名解析工作状态:花生壳在本机安装之后,双击免费二级域名出现如下图则表示花生壳二级域名解析本机外网IP正常: 3.部署站点 在IIS中部署站点,端口设置为默认端口80,然后设置默认文档,完成之后能通过本机内外IP

花生壳内网发布外网可以访问的网站

http://hsk.oray.com/download/ 进入花生壳网站官网,下载花生壳2.3 注意:下载2.2版本外部访问时会提醒没有到工信部注册,所以请下载2.3版本 1.进入花生壳官网注册一个账号,注册成功后会得到一个免费的域名,此域名用于外网访问内网的网址 2.安装花生壳软件,安装成功后,打开花生壳,使用注册的账号和密码登录 3.会显示你所有的域名 4.选中域名,右键添加映射,填入内网主机ip,tomcat端口为8080 5.点击确定,出现网址,放到浏览器上可以访问

Apache+php+花生壳搭建自己个个人网站,个人服务器

我使用的是集成环境AppServ安装的Apache,PHP和MysSql 用其他的也行,比如XMAPP,微软的IIS都是可以的 下面给出几个软件的下载地址: AppServ:http://www.appservnetwork.com/en/ 花生壳:http://hsk.oray.com/ 端口扫描(http://tool.chinaz.com/port/)通过这个网站输入你的ip查看你的端口是否开启,如果没有端口打开的话,自己想办法,或者就是不行了 这幅图是我的例子 然后安装AppServ一路

利用jquer+css简单实现购物网站的图片增大。

在我们浏览淘宝京东等网站的时候,浏览商品的图片时,当我们把鼠标移动到图片上的时候,会让其变大,利于消费者观察,接下来我将用jQuery+css技术对其功能进行一简单实现. 第一步:创建项目,并且在webapp下建立如下文件夹. 第二步:代码编译: HTML+CSS: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here<