通过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.程序结构图
程序结构
实现效果