使用符合MVC设计模式的自定义框架实现加法计算器
来源:互联网 发布:linux安全策略 编辑:程序博客网 时间:2024/05/22 13:19
自定义MVC框架的核心是控制器的实现:首先我们来定义Action接口,实现Controller类。编译环境为eclipse。
package com.dh.ch01.framework;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public interface Action {String execute(HttpServletRequest request,HttpServletResponse response);}创建名为Controller的Servlet
public class Controller extends HttpServlet {//声明由控制器Controller维护的Action映射,其中保存所有的Action实例private HashMap actionMap; /** * Servlet初始化方法 */ public void init() throws ServletException{ //初始化actionMap actionMap=new HashMap(); //将AddAction对象放入到acctionMap中 actionMap.put("add", new AddAction());// actionMap.put("sub", new SubAction()); } private Action determinActionByPath(String path){ String actionName=path.substring(path.lastIndexOf('/')+1,path.length()-7); Action ret=(Action)actionMap.get(actionName); return ret; } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stub//得到pathString path=request.getServletPath();//找出ActionAction action=(Action)this.determinActionByPath(path);//执行操作String resultView=action.execute(request, response);//控制页面转向if(null!=resultView){request.getRequestDispatcher(resultView).forward(request, response);}}/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}web.xml的配置
<servlet-name>Controller</servlet-name> <servlet-class>com.dh.ch01.framework.Controller</servlet-class> </servlet> <servlet-mapping> <servlet-name>Controller</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>创建add.jsp页面(用户接收数据)
<title>算数计算器</title></head><body bgcolor="#ffffc0"><h1>算数计算器</h1><form id="calxForm" method="post" action="add.action"><table><tbody><tr><td>第一个数</td><td><input type="text" name="num1"/></td></tr><tr><td>第二个数</td><td><input type="text" name="num2"/></td></tr><tr><td><input type="submit" value="加"/></td></tr></tbody></table></form></body>创建Calculator,实现算数运算
public class Calculator {public double add(double a,double b){return a+b;}public double subtract(double a,double b){return a-b;}public double multiply(double a,double b){return a*b;}public double divide(double a,double b){return a/b;}}
创建AddAction类,实现Action接口
public class AddAction implements Action {private Calculator biz=new Calculator();public String execute(HttpServletRequest request,HttpServletResponse response){//execute获取add.jsp页面的表单数据double num1=Double.parseDouble(request.getParameter("num1"));double num2=Double.parseDouble(request.getParameter("num2"));//调用业务逻辑方法,获得返回值double result=biz.add(num1, num2);//将结构存放在request中,以便在页面中得到request.setAttribute("result", result);//返回将要转发到页面路径return"add_result.jsp";}}创建add_result.jsp页面显示计算结果
<body bgcolor="#ffffc0"><table><tbody><tr><td>第一个数</td><td>${param.num1}</td></tr><tr><td>第二个数</td><td>${param.num2}</td></tr><tr><td>结果</td><td>${requestScope.result}</td></tr></tbody></table><button onclick="history.go(-1);">返回</button></body>附上两张结构图
显示如图所示结果就成功啦!同理可以继续完善程序,实现减法,乘法和除法,在这里我就不一一写出啦。
阅读全文
0 0
- 使用符合MVC设计模式的自定义框架实现加法计算器
- javaweb自定义MVC框架的设计与实现(1)
- 设计模式:设计自己的MVC框架
- 设计模式:设计自己的MVC框架
- MVC设计模式的实现
- 框架设计模式mvc
- 计算器的加法和乘法的实现
- UI基础 - 简易的加法计算器实现
- 【iOS开发】简易加法计算器的实现
- 实现加法计算器
- Django框架里的MVC思想MVC 设计模式
- mvc设计模式和mvc框架的区别
- mvc设计模式和mvc框架的区别
- MVC设计模式和MVC框架的区别
- mvc设计模式和mvc框架的区别
- mvc设计模式和mvc框架的区别
- MVC设计模式和MVC框架的思考
- 浅谈MVC框架的设计与实现
- ADC
- 样式表的使用
- package的简单用法
- Python:没有玩过的python位运算,貌似用的地方很少
- Java-方法重写、重写与重载的区别
- 使用符合MVC设计模式的自定义框架实现加法计算器
- Hsubmit-Window函数库
- Mysql关键字和保留字
- 09.14周四
- PAT-乙级-1021.个位数统计
- hdu-1011-Starship Troopers-树状dp-java
- Spring+Struts2+hibernate实现动态切换数据源
- 对平台型产品的四问-1
- 《A Lightened CNN for Deep Face Representation》论文解读 本文来自中科院,原文地址为: https://arxiv.org/abs/1511.02683