使用基于Servlet的MVC模式设计四则运算

1、创建用户输入JSP页面inputNumber.jsp,页面效果如下图所示,该页面的主要功能是获取和显示用户的的输入,提交的方式为post,提交的url为“calculate”。

 

inputNumber.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<p>请输入两个数</p>

<form action="calculate" method="post">

<input type="text" name="op1"> 

<select name="str">

<option checked = "checked" value="+">+(加)</option>

<option  value="-">-(减)</option>

<option value="*">*(乘)</option>

<option  value="/">/(除)</option>

</select>

<input type="text" name="op2"> <br>

<input type="submit" value="提交你的选择"/>

</form>

</body>

</html>

2、 在该项目的src目录下创建一个servlets的包,包中的类用于处理前端不同类型的请求,并对相应的请求作出响应。在该包内创建一个HandleComputerServlet.java,该类用于接收用的请求以及数据,然后调用ComputerBean类中的cacuResult()函数计算结果,最后将计算结果使用session对象响应给前端。

HandleComputerServlet.java类

package servlets;



import java.io.IOException;

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 com.beans.ComputerBean;



/**

 * Servlet implementation class HandleComputerServlet

 */

@WebServlet({ "/HandleComputerServlet", "/calculate" })

public class HandleComputerServlet extends HttpServlet {

public static final long serialVersionUID = 1L;



    /**

     * Default constructor. 

     */

    public HandleComputerServlet() {

        // TODO Auto-generated constructor stub

    }



/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

//response.getWriter().append("Served at: ").append(request.getContextPath());

double op1 = Double.parseDouble(request.getParameter("op1"));

double op2 = Double.parseDouble(request.getParameter("op2"));

String str = request.getParameter("str");


HttpSession session = request.getSession();

ComputerBean computerBean = new ComputerBean();


computerBean.setOp1(op1);

computerBean.setOp2(op2);

computerBean.setStr(str);

session.setAttribute("computerBean", computerBean);

request.getRequestDispatcher("showResult.jsp").forward(request, response);

}



/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}



}

3、 在该项目的src目录下创建一个com.beans包,用于存放封装的model类。然后在bean目录下创建一个ComputerBean类来定义数据模型以及相应的操作,该类设计了四个类成员变量,分别为操作数一、操作数二、操作符以及输出结果。除此之外,该类还实现了计算结果的方法cacuResult()。

ComputerBean.java

package com.beans;



public class ComputerBean {

private double op1;

private double op2;

private String str;

private double result;

//double cacuResult;

public double getResult() {

return result;

}

public void setResult(double result) {

this.result = result;

}

public double getOp1() {

return op1;

}

public void setOp1(double op1) {

this.op1 = op1;

}

public double getOp2() {

return op2;

}

public void setOp2(double op2) {

this.op2 = op2;

}

public String getStr() {

return str;

}

public void setStr(String str) {

this.str = str;

}

public void cacuResult() {

switch(str) {

case "+": this.result=this.op1+this.op2;break;

case "-": this.result=this.op1-this.op2;break;

case "*": this.result=this.op1*this.op2;break;

case "/": this.result=this.op1/this.op2;break;

default:break;

}


}

}

4、创建结果输出页面showResult.jsp,页面效果如下所示。该页面的主要功能就是显示结果。

showResult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<jsp:useBean id="computerBean" type="com.beans.ComputerBean" scope="session"/>

<jsp:getProperty name="computerBean" property="op1" />&nbsp;&nbsp;

<jsp:getProperty name="computerBean" property="str" />&nbsp;&nbsp;

<jsp:getProperty name="computerBean" property="op2" />&nbsp;&nbsp;=&nbsp;

<jsp:getProperty name="computerBean" property="result" /> &nbsp;&nbsp;

</body>

</html>

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值