weixin_42170456 2019-10-19 15:24 采纳率: 100%
浏览 340
已采纳

刚学Javaweb,老师布置的作业没有头绪。

在jsp上的文本框中输入要找零的金额(0-100),然后点击找零按钮,在按钮的下方显示可找零的50元/20元/10元/5元/1元
的纸币各有多少张;
要求:
1.使用JSP程序段/jsp表达式/jsp声明和form表单获取参数来实现
2.如果输入的金额不在0-100之间,则不显示找零的具体内容,并且使用JS弹框进行提示
在百度上搜过,但代码已经没有了。

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2019-10-19 19:27
    关注

    先来无事,帮楼主简单实现一下,流程如下:创建一个 Java Dynamic Project 类型的项目 csdn_test。图片说明

    在 scr 目录下创建一个类创建一个 Servlet 类 名为 ChangesServlet,实现为:

    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet(description = "Change calculate Servlet", urlPatterns = { "/changeServlet"})
    public class ChangesServlet extends HttpServlet {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String money = req.getParameter("money");
            System.out.println(money);
            resp.setContentType("text/html;charset=UTF-8");
            PrintWriter out = resp.getWriter();
            try{
                int moneyValue = Integer.parseInt(money);
                int fifty= moneyValue/50;
                int twenty = (moneyValue - fifty*50)/20;
                int ten = (moneyValue - fifty*50- twenty*20)/10;
                int five = (moneyValue - fifty*50- twenty*20-ten*10)/5;
                int one = moneyValue - fifty*50- twenty*20-ten*10 - five*5;
                out.println(buildResponsePage(moneyValue,fifty,twenty,ten,five,one));
            }catch(Exception e){
                out.println(buildResponsePage(0,0,0,0,0,0));
            }
    
    
            out.flush();
            out.close();
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    
        private String buildResponsePage(int money,int fifty,int twenty,int ten,int five,int one){
            StringBuffer buffer = new StringBuffer();
            buffer.append("<!DOCTYPE html>");
            buffer.append("<html>");
            buffer.append("<body>");
            buffer.append("<form action=\"changeServlet\">");
            if(money==0 || money>100){
                buffer.append("<span>金额格式错误,请输入输入要找零的金额(0-100)</span><input value=\""+money+"\" type=\"text\" name=\"money\"/>");
            }else{
                buffer.append("<span>请输入输入要找零的金额(0-100)</span><input value=\""+money+"\" type=\"text\" name=\"money\"/>");
            }
            buffer.append("<button type=\"submit\">提交</button>");
            buffer.append("<br/><span>找零 50 元"+fifty+"张,20元"+twenty+"张,10元"+ten+"张,5 元"+five+"张,1 元"+one+"张");
            buffer.append("</form></body>");
            buffer.append("</html>");
            return buffer.toString();
        }
    }
    

    其次,在 WetContent 目录下创建一个 index.jsp 文件,前端表单输入,内容为:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <body>
    <form action="changeServlet">
        <span>请输入输入要找零的金额(0-100)</span><input type="text" name="money"/>
        <button type="submit">提交</button>
    </form>
    </body>
    </html>
    

    启动项目运行,访问 应用结果如下:
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题