通过JSP求解一元二次方程的解
文章目录
一、问题描述
通过创建JSP表单和服务器来接收和计算传入值,计算得出一元二次方程的解。
二、具体实现
1.代码
input.jsp
<%@ page contentType="text/html; charset=gb2312"%> <html> <body><font size=2> <form action="handleData" method="post"> <br>输入一元二次方程的系数: <br>二次项系数a:<input type=text name="a" size=4> 一次项系数b:<input type=text name="b" size=4> 常数项系数c:<input type=text name="c" size=4> <input type=submit value="提交"> </form> </font> </body> </html>
show.jsp
<%@ page contentType="text/html; charset=gb2312"%> <jsp:useBean id="equation" type="mybean.data.Equation" scope="request"/> <html> <body><font size=2> 一元二次方程的系数是: <br>二次项系数:<jsp:getProperty name="equation" property="a"/> 一次项系数:<jsp:getProperty name="equation" property="b"/> 常数项:<jsp:getProperty name="equation" property="c"/> <br>是一元二次方程吗?<jsp:getProperty name="equation" property="isSquareEquation"/> <br>方程的两个根: <jsp:getProperty name="equation" property="rootOne"/> <jsp:getProperty name="equation" property="rootTwo"/> </font> </body> </html>
circle_bean.java
package mybean.data; public class circle_bean { double radius; double area; public void setRadius(double a) { radius=a; } public double getRadius() { return radius; } public void setArea(double b) { area=b; } public double getArea() { return area; } }
Equation.java
package mybean.data; public class Equation { double a,b,c; String rootOne,rootTwo; boolean squareEquation; public void setA(double a) { this.a=a; } public double getA() { return a; } public void setB(double b) { this.b=b; } public double getB() { return b; } public void setC(double c) { this.c=c; } public double getC() { return c; } public void setRootOne(String root) { rootOne=root; } public String getRootOne() { return rootOne; } public void setRootTwo(String root) { rootTwo=root; } public String getRootTwo() { return rootTwo; } public void setIsSquareEquation(boolean b) { squareEquation=b; } public boolean getIsSquareEquation() { return squareEquation; } }
Servlet_control.java
package myservlet.control; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import mybean.data.circle_bean; public class circle_Servlet extends HttpServlet{ public void init(ServletConfig config) throws ServletException{ super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ circle_bean circle_bean=new circle_bean(); request.setAttribute("circle_bean", circle_bean); double radius=Double.parseDouble(request.getParameter("radius")); circle_bean.setRadius(radius); double area=0; area=3.14*radius*radius; circle_bean.setArea(area); RequestDispatcher dispatcher=request.getRequestDispatcher("show_area.jsp"); dispatcher.forward(request, response); } }
HandleData.java
package myservlet.control; import mybean.data.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HandleData extends HttpServlet{ public void init(ServletConfig config) throws ServletException{ super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ Equation equ=new Equation(); request.setAttribute("equation", equ); double a= Double.parseDouble(request.getParameter("a")); double b= Double.parseDouble(request.getParameter("b")); double c= Double.parseDouble(request.getParameter("c")); equ.setA(a); equ.setB(b); equ.setC(c); if(a!=0) equ.setIsSquareEquation(true); else equ.setIsSquareEquation(true); double disk=b*b-4*a*c; if(disk<0) { equ.setRootOne("无实根"); equ.setRootTwo("无实根"); } else { double root1=(-b+Math.sqrt(disk))/(2*a), root2=(-b-Math.sqrt(disk))/(2*a); equ.setRootOne(""+root1); equ.setRootTwo(""+root2); } RequestDispatcher dispatcher=request.getRequestDispatcher("show.jsp"); dispatcher.forward(request, response); } public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ doPost(request,response); } }
2.程序结构图
程序结构
实现效果