前提配置好java web开发环境:点击
主要有俩种方法
我们采用mvc模式,实现俩个数字的运算.
名为inputNumber.jsp的页面提供一个表单,用户可以通过表单输入两个数和运算符号提交给Servlet控制器;
名为ComputerBean.java生成的JavaBean负责存储运算数、运算符号和运算结果,
名为handleComputer的servlet控制器负责运算,将结果存储到JavaBean中,并负责请求JSP页面lookResult.jsp显示JavaBean中的数据。
inputNumber.jsp
<%--
Created by IntelliJ IDEA.
User: max
Date: 2018/10/30
Time: 16:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
输入表单
ComputerBean.java
public class ComputerBean {
private double number1;
private double number2;
private String CalChar;
private double result;
public ComputerBean() {
}
public ComputerBean(double number1, double number2, String calChar) {
this.number1 = number1;
this.number2 = number2;
this.CalChar = calChar;
}
public double getNumber1() {
return number1;
}
public void setNumber1(double number1) {
this.number1 = number1;
}
public double getNumber2() {
return number2;
}
public void setNumber2(double number2) {
this.number2 = number2;
}
public String getCalChar() {
return CalChar;
}
public void setCalChar(String calChar) {
CalChar = calChar;
}
public double getResult() {
switch (this.CalChar) {
case "-":
setResult(this.number1 - this.number2);
break;
case "+":
setResult(this.number1 + this.number2);
break;
case "*":
setResult(this.number1 * this.number2);
break;
case "/":
setResult(this.number1 / this.number2);
break;
}
return this.result;
}
public void setResult(double result) {
this.result = result;
}
public boolean isCalchar() {
if (this.CalChar.equals("+") || this.CalChar.equals("-") ||
this.CalChar.equals("/") || this.CalChar.equals("*"))
return true;
else
return false;
}
}
showResult.jsp
<%--
Created by IntelliJ IDEA.
User: max
Date: 2018/10/30
Time: 17:11
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
显示结果
${message}
hanleComputer.java
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 javax.servlet.http.HttpSession;
import java.io.IOException;
//@WebServlet(name = "/handleComputer")
public class handleComputer extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String number1 = request.getParameter("number1");
String number2 = request.getParameter("number2");
String calchar = request.getParameter("calchar");
HttpSession session = request.getSession();
if (number1 == null||number2==null){
session.setAttribute("message","输入数字不能为空!");
response.sendRedirect("showresult.jsp");
return ;
}
if (calchar == null) calchar = "error";
double n1 = 0;
double n2 = 0;
try {
n1 = Double.parseDouble(number1);
n2 = Double.parseDouble(number2);
} catch (NumberFormatException e) {
e.printStackTrace();
}
ComputerBean computerBean = new ComputerBean(n1, n2, calchar);
if (computerBean.isCalchar()) {
if (computerBean.getCalChar().equals("/") && computerBean.getNumber2() == 0)
session.setAttribute("message", "除数不能为0!");
else
session.setAttribute("message", "结果为:" + computerBean.getResult());
} else {
session.setAttribute("message", "输入的字符串有误,请重新输入!");
}
response.sendRedirect("lookResult.jsp");
}
}
handleComputer
handleComputer
handleComputer
/handleComputer
如图添加在类名上面
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 javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet(name = "handleComputer", urlPatterns = "/handleComputer")
public class handleComputer extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String number1 = request.getParameter("number1");
String number2 = request.getParameter("number2");
String calchar = request.getParameter("calchar");
HttpSession session = request.getSession();
if (number1 == null||number2==null){
session.setAttribute("message","输入数字不能为空!");
response.sendRedirect("showresult.jsp");
return ;
}
if (calchar == null) calchar = "error";
double n1 = 0;
double n2 = 0;
try {
n1 = Double.parseDouble(number1);
n2 = Double.parseDouble(number2);
} catch (NumberFormatException e) {
e.printStackTrace();
}
ComputerBean computerBean = new ComputerBean(n1, n2, calchar);
if (computerBean.isCalchar()) {
if (computerBean.getCalChar().equals("/") && computerBean.getNumber2() == 0)
session.setAttribute("message", "除数不能为0!");
else
session.setAttribute("message", "结果为:" + computerBean.getResult());
} else {
session.setAttribute("message", "输入的字符串有误,请重新输入!");
}
response.sendRedirect("lookResult.jsp");
}
}