怎么做啊朋友们,java web设计一个简易计算器,刚学

设计一个web应用,该web提供两个jsp页面,一个页面使得用户可以输入一元二次方程的系数;另一个页面可以显示一元二次方程的系数和根。web应用提供一个名字为handle的servlet对象,handle负责计算一元二次方程的根,然后将有关数据存储到javabean中;web应用提供的javabean负责刻画一元二次方程,提供简单的获取数据和修改数据的方法。注意要对输入的数据合法性进行判断

参考chitGPT教程:
首先,您需要创建一个 Java Web 项目,并创建一个名为 "Calculator" 的 Servlet。

在 doGet 方法中,编写 HTML 表单,包括两个文本框和四个按钮(加、减、乘、除),并将表单提交到 doPost 方法。

在 doPost 方法中,获取表单提交的参数,并将它们转换为浮点数。

根据用户选择的操作符,进行相应的计算操作,并将结果存储在变量中。

最后,将计算结果返回给用户,在 HTML 页面中显示出来。

下面是一个简单的代码示例:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Calculator extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Calculator</title></head>");
    out.println("<body>");
    out.println("<h1>Calculator</h1>");
    out.println("<form method='post'>");
    out.println("<input type='text' name='num1' /><br />");
    out.println("<input type='text' name='num2' /><br />");
    out.println("<input type='submit' name='add' value='+' />");
    out.println("<input type='submit' name='subtract' value='-' />");
    out.println("<input type='submit' name='multiply' value='*' />");
    out.println("<input type='submit' name='divide' value='/' />");
    out.println("</form>");
    out.println("</body>");
    out.println("</html>");
  }

  public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Calculator Result</title></head>");
    out.println("<body>");
    out.println("<h1>Calculator Result</h1>");

    double num1 = Double.parseDouble(request.getParameter("num1"));
    double num2 = Double.parseDouble(request.getParameter("num2"));
    double result = 0;

    if (request.getParameter("add") != null) {
      result = num1 + num2;
      out.println(num1 + " + " + num2 + " = " + result);
    } else if (request.getParameter("subtract") != null) {
      result = num1 - num2;
      out.println(num1 + " - " + num2 + " = " + result);
    } else if (request.getParameter("multiply") != null) {
      result = num1 * num2;
      out.println(num1 + " * " + num2 + " = " + result);
    } else if (request.getParameter("divide") != null) {
      result = num1 / num2;
      out.println(num1 + " / " + num2 + " = " + result);
    }

    out.println("</body>");
    out.println("</html>");
  }
}

这个简易计算器实现了四种基本的计算操作,并可以在 HTML 页面中显示出计算结果。您可以根据需要对这个示例进行修改和扩展。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/340486
  • 你也可以参考下这篇文章:JavaWeb学习笔记二:jsp基础、内置对象、三种注释、内置指令,静态包含和动态包含的区别,jsp和Servlet的桥梁
  • 除此之外, 这篇博客: 基于javaweb jsp+servlet学生宿舍管理系统中的 学生缺勤模块:显示学生缺勤列表数据、以及添加学生缺勤和根据、宿舍楼 查询信息 以及修改删除操作 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 以下回答由chatgpt基于相关博客总结生成:

    本题要求设计一个简易计算器,包括两个JSP页面和一个名为handle的Servlet对象,用于计算一元二次方程的根并将数据存储到JavaBean中。为了提高代码可读性和可维护性,本题使用MVC模式进行设计。具体方案如下:

    1. 创建JavaBean类,用于存储一元二次方程的系数和根:

    JavaBean类名为Equation,包含以下变量和方法:

    public class Equation {
    
        private double a;
        private double b;
        private double c;
        private double x1;
        private double x2;
    
        // Getters and Setters
        public double getA() {
            return a;
        }
        public void setA(double a) {
            this.a = a;
        }
        public double getB() {
            return b;
        }
        public void setB(double b) {
            this.b = b;
        }
        public double getC() {
            return c;
        }
        public void setC(double c) {
            this.c = c;
        }
        public double getX1() {
            return x1;
        }
        public void setX1(double x1) {
            this.x1 = x1;
        }
        public double getX2() {
            return x2;
        }
        public void setX2(double x2) {
            this.x2 = x2;
        }
    
        // Calculate the roots of the equation
        public void calculateRoots() {
            double delta = b * b - 4 * a * c;
            if(delta < 0) {
                x1 = Double.NaN;
                x2 = Double.NaN;
            }
            else if(delta == 0) {
                x1 = -b / (2 * a);
                x2 = x1;
            }
            else {
                x1 = (-b + Math.sqrt(delta)) / (2 * a);
                x2 = (-b - Math.sqrt(delta)) / (2 * a);
            }
        }
    
    }
    
    1. 创建用户输入页面input.jsp:
    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>input.jsp</title>
    </head>
    <body>
    <h1>一元二次方程求根</h1>
    <form action="handle" method="post">
        <label>a:</label><input type="text" name="a"><br/>
        <label>b:</label><input type="text" name="b"><br/>
        <label>c:</label><input type="text" name="c"><br/>
        <input type="submit" value="Submit">
    </form>
    </body>
    </html>
    

    在input.jsp页面中,用户可以输入一元二次方程的系数a、b、c,并通过提交按钮将数据提交给handle Servlet进行处理。

    1. 创建结果展示页面output.jsp:
    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>output.jsp</title>
    </head>
    <body>
    <h1>一元二次方程求根结果</h1>
    <p>a:${equation.a}</p>
    <p>b:${equation.b}</p>
    <p>c:${equation.c}</p>
    <p>x1:${equation.x1}</p>
    <p>x2:${equation.x2}</p>
    <a href="input.jsp">返回输入页面</a>
    </body>
    </html>
    

    在output.jsp页面中,展示了用户输入的一元二次方程的系数a、b、c以及计算得到的根x1、x2。同时,页面提供了一个返回按钮,链接到输入页面。

    1. 创建handle Servlet类用于处理用户输入的一元二次方程系数,计算根并存储到JavaBean中:
    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 java.io.IOException;
    
    @WebServlet(name = "handle", urlPatterns = "/handle")
    public class HandleServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String aString = request.getParameter("a");
            String bString = request.getParameter("b");
            String cString = request.getParameter("c");
    
            // Check if input is valid
            if(aString == null || aString.trim().length() == 0 ||
                    bString == null || bString.trim().length() == 0 ||
                    cString == null || cString.trim().length() == 0) {
                response.sendRedirect("input.jsp");
                return;
            }
            try {
                // Parse input and calculate roots
                double a = Double.parseDouble(aString);
                double b = Double.parseDouble(bString);
                double c = Double.parseDouble(cString);
                Equation equation = new Equation();
                equation.setA(a);
                equation.setB(b);
                equation.setC(c);
                equation.calculateRoots();
                // Save data to session and redirect to result page
                request.getSession().setAttribute("equation", equation);
                response.sendRedirect("output.jsp");
            } catch (NumberFormatException e) {
                // If input is not a number, redirect to the input page
                response.sendRedirect("input.jsp");
            }
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
    }
    

    在handle Servlet中,首先获取用户输入的系数a、b、c。然后判断输入是否合法,如果不合法则重定向到输入页面。如果输入合法,则将数据存储到JavaBean对象中,然后将该对象存储到session中,并重定向到结果展示页面output.jsp。

    1. 配置web.xml文件
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
        <servlet>
            <servlet-name>HandleServlet</servlet-name>
            <servlet-class>HandleServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>HandleServlet</servlet-name>
            <url-pattern>/handle</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>input.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    
    1. 运行效果

    在浏览器中访问http://localhost:8080/Calculator/,页面会自动跳转到input.jsp页面。在该页面输入一元二次方程的系数,点击提交按钮,即可跳转到输出结果页面,展示方程系数和根。如果输入的数据不合法,会自动跳转到输入页面,需要重新输入。

    参考链接:

    1. https://www.cnblogs.com/haoshidai/p/5471685.html
    2. https://www.tutorialspoint.com/design_a_mvc_pattern_javabean.htm