图书购买系统之本地添加购物车(完善版)--实现生成订单和子订单

来源:互联网 发布:网络属于强电还是弱电 编辑:程序博客网 时间:2024/04/29 20:42

1.实现效果图


2.cart.jsp购物车页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>cart</title><!--引入bootstrap.css--><link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/bootstrap/css/bootstrap.css"/><!--引入myscss.css--><link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/myscss.css" /><!--bootstrapValidator.css--><link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/bootstrapvalidate/css/bootstrapValidator.css" /><!--引入jquery.js--><script type="text/javascript" src="<%=request.getContextPath()%>/bootstrap/js/jquery-3.1.1.js"></script><!--bootstrap.js--><script type="text/javascript" src="<%=request.getContextPath()%>/bootstrap/js/bootstrap.js"></script><!--cart.js--><script type="text/javascript" src="<%=request.getContextPath()%>/foreground/cart/cart.js"></script><!--bootstrapValidator.js--><script type="text/javascript" src="<%=request.getContextPath()%>/bootstrapvalidate/js/bootstrapValidator.js"></script><!--contextPath--><script type="text/JavaScript">var contextPath = "${pageContext.request.contextPath}";</script></head><body><!--公用头部--><!-- <div id="navhead"></div> --><%@include file="/foreground/common/head.jsp"%><!--主体部分--><div class="container"><div class="row"><div class="col-md-1"></div><div class="col-md-10"><!--content头部图片--><img src="<%=request.getContextPath()%>/img/otherimages/buy1.gif" /><!--content中的table--><div class="panel panel-info margintop">  <div class="panel-heading text-center"><h4><strong>购物车列表</strong></h4></div>  <div id="cartable">    <!--<table class="table text-center"><tr class="danger"><th class="text-center">序号</th><th class="text-center">商品名称</th><th class="text-center">价格</th><th class="text-center">购买数量</th><th class="text-center">库存</th><th class="text-center">小计</th></tr><tr><td>0</td><td>Java模式</td><td>21.5</td><td><a class='glyphicon glyphicon-minus-sign' onclick='subBuyNum(this)'></a>1<a class='glyphicon glyphicon-plus-sign' onclick='addBuyNum(this)'></a></td><td>100</td><td>21.5</td></tr><tr><td>1</td><td>JavaScript</td><td>18.5</td><td>1</td><td>100</td><td>18.5</td></tr></table>-->  </div><div class="panel-footer clearfix"><span id="totalprice" class="pull-right">总计</span></div></div><form id="orderform" class="form-horizontal">  <div class="form-group">    <label for="receiverAddress" class="col-md-1 control-label">地址</label>    <div class="col-md-4">      <input type="text" class="form-control" name="receiverAddress" id="receiverAddress" placeholder="请输入收货地址">    </div>  </div>  <div class="form-group">    <label for="receiverName" class="col-md-1 control-label">收货人</label>    <div class="col-md-4">      <input type="text" class="form-control" id="receiverName" name="receiverName" placeholder="请输入收货人姓名">    </div>  </div>  <div class="form-group">    <label for="receiverPhone" class="col-md-1 control-label">电话</label>    <div class="col-md-4">      <input type="text" class="form-control" id="receiverPhone" name="receiverPhone" placeholder="请输入收货人电话">    </div>  </div>  <div class="form-group">    <div class="col-md-12 text-right">      <a href="<%=request.getContextPath()%>/foreground/book/home.jsp">      <input type="button" value="" style="background:url('<%=request.getContextPath()%>/img/otherimages/gwc_jx.gif') no-repeat;width:130px;height:45px;border:0px"/>      </a>      <a href="<%=request.getContextPath()%>/foreground/user/user.jsp">      <input type="submit" id="submitform" value="" style="background:url('<%=request.getContextPath()%>/img/otherimages/gwc_buy.gif') no-repeat;width:130px;height:45px;border:0px"/>      </a>   </div>  </div></form></div><div class="col-md-1"></div></div></div><!--显示弹出框让用户登录--><div id="showloginform"></div></body></html>

3.cart.js

//购物车动态添加购物车信息$(function(){//1.从localStorage获取购物信息var books = localStorage.getItem("carts");var bookArr = JSON.parse(books);//将获取到的字符串存放进数组中//2.声明一个html用来拼接页面var html = "";html +="<table id='cart' class='table text-center'>";html +="<tr class='danger'>";html +="<th class='text-center'>序号</th>";html +="<th class='text-center'>商品名称</th>";html +="<th class='text-center'>价格</th>";html +="<th class='text-center'>购买数量</th>";html +="<th class='text-center'>库存</th>";html +="<th class='text-center'>小计</th>";html +="</tr>";//3.遍历数组for(var i = 0;i < bookArr.length;i++){//获取一本书var abook = bookArr[i];//将书本的信息填到表格中html +="<tr>";html +="<td>"+i+"</td>";html +="<td>"+abook.name+"</td>";html +="<td>"+abook.price+"</td>";html +="<td><a class='glyphicon glyphicon-minus-sign' onclick='subBuyNum(this)'></a>"+abook.buynum+"<a class='glyphicon glyphicon-plus-sign' onclick='addBuyNum(this)'></a></td>";html +="<td>"+abook.num+"</td>";html +="<td>"+abook.price*abook.buynum+"</td>";html +="</tr>";}html +="</table>";$("#cartable").html(html);});//点击减号按钮function subBuyNum(caller){calFunction(caller,"sub");}//点击加号按钮function addBuyNum(caller){calFunction(caller,"add");}//优化代码function calFunction(caller,tag){//得到当前调用者的父节点var $parent = $(caller).parent();//得到当前调用者的父节点的下一个兄弟var $bro = $(caller).parent().next();//找到父节点的文本信息var buyNum = parseInt($parent.text());var num = parseInt($bro.text());//判断当前是+还是-if(tag == "sub"){//减号if(buyNum>=2){buyNum--;num++;}}//加号else{buyNum++;num--;}//4.拼接html信息,把html放到parent中var html = "";html += "<a class='glyphicon glyphicon-minus-sign' onclick='subBuyNum(this)'></a>"+buyNum+"<a class='glyphicon glyphicon-plus-sign' onclick='addBuyNum(this)'></a>";$parent.html(html);$bro.html(num);//5.找到价格元素的信息var $price = $parent.prev();var price = parseFloat($price.text());//6.修改小计元素的信息var $lastB = $parent.next().next();$lastB.text(price*buyNum);//7.修改总计元素的信息calTotal();//8.修改本地购物车的数量//8.1找到序号数列var $first = $parent.parent().children(":first-child");var n = parseInt($first.text());modiyBuyNum(n,buyNum,num);}//计算当前购物车的总价格function calTotal(){var $totalPrice = $("#totalprice"); //找到table里面的tbody,其实table的所有正文信息都放在tbody里面var $table = $("#cart").children();var $children = $table.children(":not(:first)");var $rowprices = $children.children(":last-child");var totalp = 0;$rowprices.each(function(){var p = parseFloat($(this).text());totalp += p;})$totalPrice.text("总计:"+totalp);}//页面一载入就计算总计购物车的总价信息$(function(){calTotal();})//修改本地购物车的数量function modiyBuyNum(idx,buynum,num){//1.获取本地购车的数据(字符串)var books = localStorage.getItem("carts");//2.把字符串转换为数组对象var bookArr = JSON.parse(books);//3.从数组中获取指定idx的数据var abook = bookArr[idx];//4.修改这条数据abook.buynum = buynum;abook.number = num;//5.重新保存购物车var booksStr = JSON.stringify(bookArr);localStorage.setItem("carts",booksStr);}//表单验证的方法,使用bootstrapValidator插件来完成$(function(){$("#orderform").bootstrapValidator({feedbackIcons : {valid : 'glyphicon glyphicon-ok',invalid : 'glyphicon glyphicon-remove',validating : 'glyphicon glyphicon-refresh'},fields : {receiverAddress : {validators : {notEmpty : {message : '地址不能为空'},stringLength : {min : 2,max : 18,message : '地址必须在2到18位之间'}}},receiverName : {validators : {notEmpty : {message : '姓名不能为空'},stringLength : {min : 2,max : 18,message : '姓名长度必须在2到18位之间'}}},receiverPhone : {validators : {notEmpty : {message : '电话不能为空'},regexp : {regexp : /^1[0-9]{10}$/,message : '电话格式不正确'}}}}}).on("success.form.bv", function(e) {/*alert("sucess");*/});});//在购物车没有数据、用户没有输入送货地址等信息的情况下,不需要检查用户的登录情况(不需要发送ajax)$(function(){$("#submitform").click(function(){//1.从localStorage获取所存的购物车信息var books = localStorage.getItem("carts");var bookArr = JSON.parse(books);//2.如果bookArr不存在或者数据长度为0,则不允许提交表单if(bookArr == null){return false;}if(bookArr.length == 0){return false;}//3.如果输入框没有内容,禁止提交表单var inputisnull = false;$(":text").each(function(){if($(this).val().length == 0){inputisnull = true;}});if(inputisnull == true){alert("请输入地址,收货人和电话");return false;}//4.使用Ajax检查用户是否登录var sendUrl = contextPath+"/AjaxCheckIsLoginServlet?time="+new Date().getTime();$.ajax({type:"post",url:sendUrl,asasync:true,//请求成功回调函数success:function(backData,textStatus,xmlHttpRequest){if(backData == "yes"){//提交订单commitOrder();}//如果用户没有登录else{alert("sdfsdf");//显示登录页面showLoginPage();}}});return false;});});//发送ajax请求,提交订单function commitOrder(){//1.从localStorage获取所存的购物车信息var orderitems = localStorage.getItem("carts");//2.发送ajax请求,订单提交数据var sendUrl = contextPath+"/AjaxMakeOrderServlet?"+"time"+new Date().getTime()+"&totalprice="+$("#totalprice").text().substr(3);$.ajax({type:"post",url:sendUrl,data:{"orderitems":orderitems,"receiverAddress":$("#receiverAddress").val(),"receiverName":$("#receiverName").val(),"receiverPhone":$("#receiverPhone").val()},async:true,success:function(backData,textStatus,xmlHttpRequest){var jsonobj = JSON.parse(backData);if("success" == jsonobj.status){//清空购物车localStorage.removeItem("carts");//跳转页面 window.location.href = contextPath+"/foreground/cart/makeordersuccess.jsp?orderid="+jsonobj.orderid+"&totalprice="+jsonobj.totalprice;}}});}//显示登录弹出的模态框function showLoginPage(){alert("OK");var html = ""; html+="<div>";html+="<div class='modal fade' tabindex='0' id='myModal2'>";html+=  "<div class='modal-dialog' >";html+=    "<div class='modal-content'>";html+=      "<div class='modal-header text-center'>";html+=        "<button type='button' class='close' data-dismiss='modal'><span>×</span></button>";html+=        "<h4 class='modal-title'>用户登录</h4>";html+=      "</div>";html+=      "<div class='modal-body paddingtop'>";html+="<p class='text-danger text-center' id='loginmsg'></p>"html+=        "<form id='loginform' class='form-horizontal'>";html+=        "<div class='form-group'>";html+=        "<label for='name' class='col-md-4 control-label'>用户名</label>";html+="<div class='col-md-4'>";html+=    "<input type='text' class='form-control' name='name' id='name' placeholder='请输入用户名'>";html+=    "</div>";html+=        "</div>";html+=        "<div class='form-group'>";html+=    "<label for='pass' class='col-md-4 control-label'>密码</label>";html+=    "<div class='col-md-4'>";html+=      "<input type='password' class='form-control' id='pass' name='pass' placeholder='请输入密码'>";html+="</div>";html+="</div>";  html+= "<div class='form-group text-center'>";html+=   "<input type='button' onclick='submitlogin()' class='btn btn-success' style='width: 200px;' value='登录'/>";html+= "</div>";html+=        "</form>";html+=    "</div>";html+=  "</div>";html+="</div>";html+="</div>";html+="</div>";$("#showloginform").html(html);$("#myModal2").modal('show');}//用户在弹出登录框中输入用户密码,提交表单的事件function submitlogin(){var formData = $("#loginform").serialize();var sendUrl = contextPath+"/AjaxDoCartLoginServlet?&time="+new Date().getTime();$.ajax({type:"post",url:sendUrl,data:formData,async:true,success:function(backData,textStatus,xmlHttpRequest){if("success" == backData){$("#loginmsg").html("登录成功,3秒后跳转页面");var time = setInterval(function(){clearInterval(time);//提交order表单数据,生成订单commitOrder();},3000);}else{//提示登录出错信息$("#loginmsg").html(backData);}}});}

4.makeordersuccess.jsp,订单提交成功页面

<%@ 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>Insert title here</title><!--引入bootstrap.css--><link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/bootstrap/css/bootstrap.css"/><!--引入myscss.css--><link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/myscss.css" /><!--引入jquery.js--><script type="text/javascript" src="<%=request.getContextPath()%>/bootstrap/js/jquery-3.1.1.js"></script><!--bootstrap.js--><script type="text/javascript" src="<%=request.getContextPath()%>/bootstrap/js/bootstrap.js"></script></head><body><%@ include file="/foreground/common/head.jsp" %><div class="container"><h3 class="text-success">订单提交成功,请您尽快支付!订单号:${param.orderid }</h3><p class="text-warning">请在24小时之内完成支付,否则订单会被自动取消</p><p class="text-danger">应付款金额:${param.totalprice }</p></div></body></html>

5.OrderDao.java,OrderDao接口

package com.chinasoft.dao;import java.sql.SQLException;import java.util.List;import com.chinasoft.entity.Order;public interface OrderDao {//添加一个订单public void addOrder(Order order) throws SQLException;//根据用户id查找该用户的所有订单public List<Order> findOrdersByUserId(int id) throws SQLException;//根据订单id查询订单public Order findOrdersByOrderId(String orderid) throws SQLException;//跟新指定订单id的订单状态信息public void modifyOrderState(String orderid) throws SQLException;//删除订单public void deleteOrder(Order order) throws SQLException;}

6.OrderItemDao.java,OrderItem接口

package com.chinasoft.dao;import java.sql.SQLException;import java.util.List;import com.chinasoft.entity.Order;import com.chinasoft.entity.OrderItem;public interface OrderItemDao {//添加一个订单子单项public void addOrderItem(Order order) throws SQLException;//根据订单id查询该订单的所有订单项public List<OrderItem> findOrderItemsByOrderId(String orderid) throws SQLException;//根据子单的订单id删除订单子单public void deleteOrderItem(OrderItem orderitem) throws SQLException;}

7.ImplOrderDao.java,OrderDao实现类

package com.chinasoft.dao.impl;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.BeanListHandler;import com.chinasoft.dao.OrderDao;import com.chinasoft.entity.Order;import com.chinasoft.entity.OrderItem;import com.chinasoft.entity.User;import com.chinasoft.util.C3P0Util;public class ImplOrderDao implements OrderDao{/** * 添加一个订单 */@Overridepublic void addOrder(Order order) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());//插入订单基本信息qr.update("insert into orders(id,money,receiverAddress,receiverName,receiverPhone,payState,user_id) values(?,?,?,?,?,?,?)",order.getId(),order.getMoney(),order.getReceiverAddress(),order.getReceiverName(),order.getReceiverPhone(),order.getPaystate(),order.getUser().getId());//订单的子单信息(具体所买的商品信息)ImplOrderItemDao implOrderItemDao = new ImplOrderItemDao();implOrderItemDao.addOrderItem(order);}/*** * 查找某个用户的所有订单 */@Overridepublic List<Order> findOrdersByUserId(int id) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());//1.查找该用户的所有订单List<Order> orders = qr.query("select * from orders where user_id = ?", new BeanListHandler<>(Order.class),id);//2.根据用户id查询该用户的具体信息ImplUserDao implUserDao = new ImplUserDao();User u = implUserDao.findUserById(Integer.toString(id));//3.订单子单项的实现类ImplOrderItemDao implOrderItemDao = new ImplOrderItemDao();//4.遍历每一个订单for(Order o : orders){//查询该订单的具体子单项List<OrderItem> items = implOrderItemDao.findOrderItemsByOrderId(o.getId());//子单项设置对应 的订单信息for(OrderItem item:items){item.setOrder_id(o.getId());}//该订单设置对应的子单和用户信息o.setOrderitems((ArrayList<OrderItem>)items);o.setUser(u);}return orders;}/** * 根据订单id查询指定订单 */@Overridepublic Order findOrdersByOrderId(String orderid) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());Order order = qr.query("select * from orders where id = ?", new BeanHandler<>(Order.class),orderid);return order;}/** * 修改订单状态 */@Overridepublic void modifyOrderState(String orderid) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());qr.update("update orders set paystate = ? where id = ?", "1",orderid);}/** * 删除订单 */@Overridepublic void deleteOrder(Order order) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());//先删OrderItem表for(OrderItem item : order.getOrderitems()){ImplOrderItemDao implOrderItemDao = new ImplOrderItemDao();implOrderItemDao.deleteOrderItem(item);}//再删Order表qr.update("delete from orders where id = ?",order.getId());}}

8.ImplOrderItemDao.java,OrderItemDao实现类

package com.chinasoft.dao.impl;import java.sql.SQLException;import java.util.List;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanListHandler;import com.chinasoft.dao.OrderItemDao;import com.chinasoft.entity.Order;import com.chinasoft.entity.OrderItem;import com.chinasoft.entity.Product;import com.chinasoft.util.C3P0Util;public class ImplOrderItemDao implements OrderItemDao{/** * 添加订单的子单项 */@Overridepublic void addOrderItem(Order order) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());//把每一个订单的子单插入到数据库for(OrderItem item : order.getOrderitems()){qr.update("insert into orderitem values(?,?,?)", order.getId(),item.getProduct_id(),item.getBuynum());}}/** * 查找某一个订单的所有子单 */@Overridepublic List<OrderItem> findOrderItemsByOrderId(String orderid) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());//根据订单查询所有的订单项List<OrderItem> items = qr.query("select * from orderitem where order_id = ?", new BeanListHandler<>(OrderItem.class), orderid);ImplProductDao implProductDao = new ImplProductDao();for(OrderItem item : items){//查询订单项的书籍信息Product product = implProductDao.findBookById(item.getProduct_id());//订单项关联书籍item.setProduct(product);}return items;}/** * 根据子单的订单id删除订单子单 */@Overridepublic void deleteOrderItem(OrderItem orderitem) throws SQLException {QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());qr.update("delete from orderitem where order_id = ?",orderitem.getOrder_id());}}


9.AjaxCheckIsLoginServlet.java,检测用户是否登录

package com.chinasoft.servlet;import java.io.IOException;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.chinasoft.entity.User;/** * @author jf * 功能:检测用户是否登录 */@WebServlet("/AjaxCheckIsLoginServlet")public class AjaxCheckIsLoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;    public AjaxCheckIsLoginServlet() {        super();    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");//获取浏览器中存储的session对象User user = (User) request.getSession().getAttribute("user");//user不为空,说明用户已经登录if(user!=null){response.getWriter().write("yes");}else{response.getWriter().write("no");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

10.AjaxMakeOrderServlet.java,向数据库插入订单项

package com.chinasoft.servlet;import java.io.IOException;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.UUID;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.chinasoft.dao.impl.ImplOrderDao;import com.chinasoft.entity.Order;import com.chinasoft.entity.OrderItem;import com.chinasoft.entity.User;import net.sf.json.JSONArray;import net.sf.json.JSONObject;/** * @author jf * 功能:向数据库插入订单项 */@WebServlet("/AjaxMakeOrderServlet")public class AjaxMakeOrderServlet extends HttpServlet {private static final long serialVersionUID = 1L;           public AjaxMakeOrderServlet() {        super();    }@SuppressWarnings({ "unchecked", "static-access" })protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取请求参数String receiverAddress = request.getParameter("receiverAddress");String receiverName = request.getParameter("receiverName");String receiverPhone = request.getParameter("receiverPhone");String oitems = request.getParameter("orderitems");String totalPrice = request.getParameter("totalprice");//2.引入json需要的jar包//3.把oitems解析长订单的子单对象JSONArray jarr = JSONArray.fromObject(oitems);List<OrderItem> orderItems = jarr.toList(jarr,OrderItem.class);//4.生成订单对象Order order = new Order();order.setId(UUID.randomUUID().toString());order.setMoney(Float.parseFloat(totalPrice));order.setReceiverAddress(receiverAddress);order.setReceiverName(receiverName);order.setReceiverPhone(receiverPhone);order.setPaystate(0);//5.遍历订单子单,设置子单关联的订单idfor(OrderItem item : orderItems){item.setOrder_id(order.getId());}//6.设置订单关联的子单以及订单关联的用户信息order.setOrderitems((ArrayList<OrderItem>)orderItems);//ImplUserDao implUserDao = new ImplUserDao();User user = (User) request.getSession().getAttribute("user");order.setUser(user);//7.插入订单ImplOrderDao implOrderDao = new ImplOrderDao();try {implOrderDao.addOrder(order);//8.拼接JSON数据返回客户端HashMap<String,String> map = new HashMap<>();map.put("totalprice", totalPrice);map.put("orderid", order.getId());map.put("status", "success");String json = JSONObject.fromObject(map).toString();response.getWriter().write(json);} catch (SQLException e) {e.printStackTrace();System.out.println(e.getMessage());}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

11.AjaxDoCartLoginServlet.java提交购物车的时候,如果用户没有登录,则弹出登录框让用户登录,此处处理弹出框登录的逻辑

package com.chinasoft.servlet;import java.io.IOException;import java.sql.SQLException;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.chinasoft.dao.impl.ImplUserDao;import com.chinasoft.entity.User;/** * @author jf * 功能:提交购物车的时候,如果用户没有登录,则弹出登录框让用户登录,此处处理弹出框登录的逻辑 */@WebServlet("/AjaxDoCartLoginServlet")public class AjaxDoCartLoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;           public AjaxDoCartLoginServlet() {        super();    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取ajax请求过来的账号和密码String name = request.getParameter("name");String pass = request.getParameter("pass");//2.根据账号密码查询数据库ImplUserDao implUserDao = new ImplUserDao();try {//2-1找到用户保存用户User user = implUserDao.findUserByUserNameAndPassword(name, pass);if(user!=null){request.getSession().setAttribute("user", user);response.getWriter().write("success");}//2-2没有找到用户存储,没有找到用户信息else{response.getWriter().write("此用户不存在");}//2-3发生错误储存错误信息} catch (SQLException e) {response.getWriter().write(e.getMessage());e.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}





0 0
原创粉丝点击