添加商品

该博客介绍了如何在添加商品的Web应用程序中防止表单重复提交。通过在表单中添加一个随机生成的令牌,并将其存入session,提交时对比session中的令牌和表单令牌,确保一致性,从而避免重复提交。详细步骤包括:在index.jsp添加超链接到add.jsp,add.jsp创建表单并包含令牌,AddProductServlet中实现令牌验证和商品保存,最后使用Servlet进行处理。
摘要由CSDN通过智能技术生成

添加商品

 

步骤分析:

1.在index.jsp添加一个超链接

跳转到add.jsp

2.add.jsp放入一个表单

3.表单提交到 AddProductServlet

封装数据

调用service完成保存操作

跳转到FindAllServlet

(请求转发和重定向)

有表单使用的时候若使用请求转发会出现重复提交

方案1:重定向

方案2:令牌机制

扩展:令牌机制

在添加页面上随机生成一个字符串,

放入session中一份,放入表单中一份

提交的时候在后台获取两个码

然后移除session中码(只使用一次)

然后判断两个码是否一致,

若不一致就是重复提交了

 

add.jsp

<%@page import="com.feizhu.utils.UUIDUtils"%>

<%@ 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>

<body>

 

   <%

         String code= UUIDUtils.getCode();

      

   //将code放入session  后台需要验证

      session.setAttribute("s_lingpai", code);

   

   //将code放入pagecontext域中

      pageContext.setAttribute("r_code", code);

              

   %>

<form method="post" action="${pageContext.request.contextPath }/addProduct">

<input type="hidden" name="r_lingpai" value="${r_code }">

<table border="1" align="center">

         <tr>

             <td>商品名称</td>

             <td><input type="text" name="pname"></td>

         </tr>

         <tr>

             <td>市场价</td>

             <td><input type="text" name="market_price"></

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值