為什么我調(diào)用這個Servlet 會執(zhí)行2次
package 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.imooc.DAO.ItemsDao;
import com.imooc.model.Cart;
import com.imooc.model.Items;
/**
?* Servlet implementation class CartServlet
?*/
public class CartServlet extends HttpServlet {
?private static final long serialVersionUID = 1L;
?
?private String action;//表示購物車的動作
?ItemsDao dao = new ItemsDao();
???
???
??? public CartServlet() {
??????? super();
??????? // 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
??System.out.println("我是GRT ,我執(zhí)行了");
??response.setContentType("text/html; charset=utf-8" );
??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);
????}
???}else {
????request.getRequestDispatcher("../cart.jsp").forward(request, response);
???}
??}
?}
?/**
? * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
? */
?protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
??// TODO Auto-generated method stub
?doGet(request, response);
?}
?
?private boolean addToCart(HttpServletRequest request, HttpServletResponse response) {
??// TODO Auto-generated method stub
??
??String id = request.getParameter("id");
??String number = request.getParameter("num");
??Items item = dao.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.addCommodity(item, Integer.parseInt(number))) {
????
????return true;
???}else {
????return false;
???}
??
??
??
?}
}
輸出結(jié)果
我是GRT ,我執(zhí)行了
我是GRT ,我執(zhí)行了
2018-03-07
同問?
2017-06-01
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="com.imooc.model.Items"%>
<%@page import="com.imooc.DAO.ItemsDao"%>
<%@ 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 '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>產(chǎn)地:<%=item.getCity()%></td>
?????????????? </tr>
?????????????? <tr>
???????????????? <td>價格:<%=item.getPrice() %>¥</td>
?????????????? </tr>
?????????????? <tr>
???????????????? <td>購買數(shù)量:<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 =? URLDecoder.decode(c.getValue(), "UTF-8");
?????????????????? }
?????????????? }
?????????? }
?????????????
????????????? 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",URLEncoder.encode(list, "UTF-8"));
????????????? response.addCookie(cookie);
?????????
????????? %>
????????? <!-- 瀏覽過的商品 -->
????????? <td width="30%" bgcolor="#EEE" align="center">
???????????? <br>
???????????? <b><font color="#FF7F00">您瀏覽過的商品</font></b><br>
???????????? <!-- 循環(huán)開始 -->
???????????? <%
??????????????? ArrayList<Items> itemlist = itemDao.getViewList(list);
??????????????? if(itemlist!=null&&itemlist.size()>0 )
??????????????? {
?????????????????? 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">產(chǎn)地:<%=i.getCity() %> 價格:<%=i.getPrice() %> ¥ </dd>
???????????? </dl>
???????????? </div>
???????????? <%
?????????????????? }
??????????????? }
???????????? %>
???????????? <!-- 循環(huán)結(jié)束 -->
????????? </td>
??????? </tr>
????? </table>
??? </center>
? </body>
</html>
2017-06-01
去看看jsp那邊是不是請求2次;你這個Servlet看起來沒問題。