学习笔记(一):JSP+JavaBean+Servlet简单用例(单个商品折后价格运算)

知识小回顾

要求:

1. JSP提交商品单价和购买数量,生成显示折扣后购买商品的总价格页面;
2. 编写一个JavaBean计算;
3. Servlet用来获取提交的数据,调用折扣计算方法;
4. 此外还有防止各种不正确的输入,如:输入非负数字、空,负数等。
(代码2改为在Servlet计算)

代码1

JSP(index.jsp)

<%--
  Created by IntelliJ IDEA.
  User: iyeungim
  Date: 2020/4/18
  Time: 15:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="Entity.Total" %>
<html>
<head>
  <title>Total</title>
  <script language="javascript">
    function checkPri() {
      var p1 = document.getElementById("price");
      p1 = p1.value;
      var n1 = document.getElementById("num");
      n1 = n1.value;
      if ((p1=="" )||(n1==""))
      {
        alert("输入均不能为空!");
        return false;
      }else if(isNaN(p1)||isNaN(n1)){
        alert("单价和数量都只能为数字!");
        return false;
      }else if((p1<0)||(n1<0)) {
        alert("单价和数量都只能为大于0的数字!");
        return false;
      }else {
        return true;
      }
    }
  </script>
</head>
<body>
<h1>商品合计</h1>
<form action="FinalPrice" method="post" name="forms" onsubmit="return checkPri()">
  商品单价:<input id="price" type="text" name="price" placeholder="请输入商品单价"><br><br>
  商品数量:<input id="num" type="text" name="num" placeholder="请输入商品数量"><br><br>
  <input type="submit" name="提交" value="提交" ><br><br>
</form>
  </body>
</html>

JSP(index.jsp,final.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="Entity.Total" %>
<%@ page import="Bean.Add" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<div>
    总价:<input type="text" name="sum" value="${sum}">
    <br><br><a href="index.jsp">返回上一页</a>
</div>
</body>
</html>

JavaBean(Add.java)

package Bean;

public class Add {
    public double price;
    public int num;
    public double sum;
    
    public Add() {}
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public double sum(){
        if ((price > 0) && (price < 100)){
            price = price;
        }else if((price >= 100) && (price < 300)){
            price = price*0.95;
        }else if((price >= 300) && (price < 1000)){
            price = price*0.9;
        }else if(price>=1000){
            price = price*0.85;
        }else{
            System.out.println("请输入0以上数字");
        }
        double sum = price * num;
        return sum;
    }
}

Servlet(FinalPrice.java)

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  Bean.Add;

@WebServlet("/FinalPrice")
public class FinalPrice extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        req.setCharacterEncoding("utf-8");
        String s1 = req.getParameter("price");
        String s2 = req.getParameter("num");
        Add add = new Add();
        add.setPrice(Double.parseDouble(req.getParameter("price")));
        add.setNum(Integer.parseInt(req.getParameter("num")));
        Double sum = add.sum();
        req.setAttribute("sum", sum);
        req.getRequestDispatcher("final.jsp").forward(req, resp);
    }
    @Override
    protected  void doPost (HttpServletRequest req, HttpServletResponse resp)
            throws SecurityException, IOException, ServletException {
        doGet(req, resp);
    }

}

代码2

JavaBean(Add.java)

package Bean;

public class Add {
    public double price;
    public int num;
    
    public Add() {

    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
}

Servlet(FinalPrice.java)

@WebServlet("/FinalPrice")
public class FinalPrice extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        req.setCharacterEncoding("utf-8");
        String s1 = req.getParameter("price");
        String s2 = req.getParameter("num");
        Add add = new Add();
        add.setPrice(Double.parseDouble(req.getParameter("price")));
        add.setNum(Integer.parseInt(req.getParameter("num")));
            if ((add.getPrice() > 0) && (add.getPrice() < 100)){
               double sum = add.getPrice() *add.getNum();
                req.setAttribute("sum", sum);
            }else if((add.getPrice() >= 100) && (add.getPrice() < 300)){
                double sum = add.getPrice() * 0.95 * add.getNum();
                req.setAttribute("sum", sum);
            }else if((add.getPrice() >= 300) && (add.getPrice()< 1000)){
                double sum = add.getPrice() * 0.9 * add.getNum();
                req.setAttribute("sum", sum);
            }else if(add.getPrice()>=1000){
                double sum = add.getPrice() * 0.85 * add.getNum();
                req.setAttribute("sum", sum);
            }else{
                System.out.println("请输入0以上数字");
            }
        req.getRequestDispatcher("final.jsp").forward(req, resp);
    }
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值