MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码
此框架模式是一个简单的解决个人所得税计算的业务逻辑
servlet
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet implementation class TaxServlet */ public class TaxServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String income = request.getParameter("income"); int n = Integer.parseInt(income); // 控制器调用业务模型 // 模型 JavaBean Tax tax = new Tax(); int result = tax.getResult(n); // 结果存入作用域 HttpSession session = request.getSession(); session.setAttribute("ic", result); // 跳转到 show.jsp response.sendRedirect("show.jsp"); } }
JavaBean
实现对数据的处理:个人所得税的计算
public class Tax { // 怎么计算个人所得税 public int getResult(int n) { // 计算个人所得税 int x = n - 3500; if (x <= 0) { return 0; } if (x <= 1500) { return (int) (x * 0.03f); } else if (x <= 4500) { return (int) (x * 0.1f - 105f); } else if (x <= 9000) { return (int) (x * 0.2f - 555f); } else if (x <= 35000) { return (int) (x * 0.25f - 1005f); } else if (x <= 55000) { return (int) (x * 0.3f - 2755f); } else if (x <= 80000) { return (int) (x * 0.35f - 5505f); } else return (int) (x * 0.45f - 13505f); } }index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>个人所得税查询</title> </head> <body> <h1>计算个人所得税</h1> <form action="tax" method="post"> <input type="text" name="income"><input type="submit" value="提交"> </form> </body> </html>
show.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <span style="white-space:pre"> </span><!-- 内置对象session接收数据 --> <span style="white-space:pre"> </span><% <span style="white-space:pre"> </span>int n =( (Integer)session.getAttribute("ic")).intValue(); <span style="white-space:pre"> </span>%> <span style="white-space:pre"> </span><h1><%=n %></h1> </body> </html>