Day16模拟实现SpringMVC功能

SpringMVC

MVC

​ m:model:模型,javabean

​ v:view:视图,html/jsp

​ c:controller:控制器:servlet

Controller.java 控制器
package com.qfedu.mvc.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 自定义接口,实现管理多个请求,在模拟Spring MVC中的控制器
 */
public interface Controller {

    String handleRequest(HttpServletRequest request, HttpServletResponse response);
}

制定规则,让所有的控制器的业务类都实现这个接口,重写处理业务的具体方法.

ProductInputController.java
package com.qianfeng.controller;

import com.qianfeng.bean.Product;
import com.qianfeng.form.ProductForm;
import com.qianfeng.validate.ProductValidate;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

public class ProductDetail implements Controller {

    @Override
    public String handleRequest(HttpServletRequest request, HttpServletResponse response) {
        String pname = request.getParameter("pname");
        String pid = request.getParameter("pid");
        String sprice = request.getParameter("price");
        String image = request.getParameter("image");

        double price = sprice == null||sprice.length()==0?0.0:Double.parseDouble(sprice);

        ProductForm pf = new ProductForm();
        pf.setPname(pname);
        pf.setPrice(price);
        pf.setImage(image);

        ProductValidate pv = new ProductValidate();
        List<String> errors = pv.validate(pf);
        String url = null;
        if(errors!=null && !errors.isEmpty()){
            request.setAttribute("errors",errors);
            url = "/WEB-INF/view/index.jsp";
        }else {
            Product p = new Product();
            p.setPid(Integer.parseInt(pid));
            p.setPname(pf.getPname());
            p.setPrice(pf.getPrice());
            p.setImage(pf.getImage());
            request.setAttribute("product",p);
            url = "/WEB-INF/view/product.jsp";
        }
        return url;
    }
}
ProductInput.java
package com.qianfeng.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ProductInput implements Controller {
    @Override
    public String handleRequest(HttpServletRequest request, HttpServletResponse response) {
        return "/WEB-INF/view/index.jsp";
    }
}

返回转发页面.
/[/n今天是我在千锋线上学习的第14天,武汉加油!]/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 849评论 0 0
  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 1,035评论 0 0
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 1,441评论 0 10
  • JSP总结(经典) day1 JSP 定义: 1)Java Server Page, Java EE 组件,本...
    java日记阅读 3,554评论 0 13
  • 这两天,王强想要回家的心越发的强烈。 可是作为公司的一个老总,不能就这样说走就走。公司已经成立两三年了,可有些事还...
    蔡华横溢阅读 201评论 0 3