利用简单工厂模式重构JSP+Servlet实现的计算器(图文)
jiangwei_suc
编辑于 2024年09月17日 17:17
收录于文集
共5篇

前置学习:

(1)在IDEA中创建Java Web项目(详细图文),地址:网页链接​

(2)在IDEA中利用JSP+Servlet实现计算器(图文),地址:网页链接​

下面的重点在于利用简单工厂模式重构JSP+Servlet开发的计算器。

1、新建一个项目

项目名:SW_Experiment2_FactoryPatternServletJSP

2、添加框架

3、添加并配置Tomcat

4、从前一个项目中把和web相关的拷贝过来

5、工厂模式设计

工厂模式详细过程参考实验课上的讲解,部分代码如下:

5.1、接口Calculator

package com.jiangwei;

public interface Calculator {

String calculate(int num1,int num2);

}

5.2、加法类Add

package com.jiangwei;

public class Add implements Calculator {

@Override

public String calculate(int num1, int num2) {

return String.valueOf(num1+num2);

}

}

5.3、工厂类

package com.jiangwei;

public class CalculateFactory {

public String getCalculatorResult(String op,int num1,int num2) {

switch(op){

case "+":

return new Add().calculate(num1,num2);

case "-":

return new Minus().calculate(num1,num2);

case "*":

return new Multiple().calculate(num1,num2);

case "/":

return new Divide().calculate(num1,num2);

default:

return "输入有误,请重新选择需要的运算";

}

}

}

6、新建Servlet

也可以参考前面的项目复制过来稍作修改,代码如下:

package com.jiangwei;

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class CalculServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //super.doGet(req, resp); int num1 = Integer.parseInt(req.getParameter("num1")); int num2 = Integer.parseInt(req.getParameter("num2")); String op = req.getParameter("op"); System.out.println(num1); System.out.println(num2); System.out.println(op); CalculateFactory cal = new CalculateFactory(); String result = cal.getCalculatorResult(op, num1, num2); System.out.println("运算结果:"+result); //业务逻辑跳转 req.setAttribute("result","结果:"+result); req.getRequestDispatcher("/calcu_servlet.jsp").forward(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } } 注意:如果找不到servlet父类,也可以把tomcat里的两个jar包放到web下新建一个文件夹lib里,然后在Project Structure /Libraries点击加号添加,把web下的lib加进去,如下图。

添加后如下所示

7、修改web.xml配置

添加如下内容:

<servlet>

<servlet-name>calculServlet</servlet-name> <servlet-class>com.jiangwei.CalculServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>calculServlet</servlet-name> <url-pattern>/calculServlet</url-pattern> </servlet-mapping>

8、测试

8.1、加法

8.2、除法

9、附录

整个项目截图