同福

做个java框架(10)——核心对象TFJava基础架构的设计【20210112】

介绍

介绍

福哥今天带着大家给TFSpring框架增加一个类似TFPHP框架的核心对象TFPHP的对象——TFJava对象。不过,在Java里面获取输入数据的方式和PHP区别还是很大的,在PHP里所有的输入数据都可以在几大全局数组($_GET、$_POST、$_FILES、$_SERVER、$_COOKIE)里面找到,而在Java里面这些数据要借助Servlet的Request对象才能拿得到。不仅如此,在Servlet的Request对象里面并不是像PHP那样的所有环境参数随便拿来使用,它需要通过不同的方法来获取。

PHP语言相比较Java语言来说更加适合不是很复杂的中小型项目,因为一旦业务逻辑过于复杂的时候,对象结构就会非常臃肿,那么像PHP这种解释型语言就会显得力不从心了。而像Java这种有着虚拟机支持的编译型语言一开始就会将全部对象都载入进来,大型项目也可以轻松胜任起来。

所以,福哥在后面会通过TFSpring框架将TFUMS系统的接口部分重新实现一遍,PHP和Java的组合会是一个比较完美的搭配方式,即可以保证项目升级后系统执行的效率,又可以兼顾前端界面的不断优化的迭代效率。

TFJava

public class TFJava {
    private TFRequest request;
    private TFResponse response;

    public TFJava(){
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        request = new TFRequest(attributes.getRequest());
        response = new TFResponse(attributes.getResponse());
    }

    public TFRequest getRequest(){

        return request;
    }

    public TFResponse getResponse(){

        return response;
    }
}

TFRequest

public class TFRequest {
    HttpServletRequest request;

    public TFRequest(HttpServletRequest request){
        this.request = request;
    }

    public String getHeader(String s){

        return request.getHeader(s);
    }

    public Cookie[] getCookies(){

        return request.getCookies();
    }

    public String getParameter(String s){

        return request.getParameter(s);
    }

    public HttpServletRequest getServlet(){

        return request;
    }
}

TFResponse

public class TFResponse {
    HttpServletResponse response;

    public TFResponse(HttpServletResponse response){
        this.response = response;
    }

    public void responseStatus(Integer code){
        response.setStatus(code);
    }

    public void responseUDF(String key, String value){
        response.addHeader(key, value);
    }

    public void location(String url){
        try{
            response.sendRedirect(url);
        }
        catch (Exception e){ }
    }

    public HttpServletResponse getServlet(){

        return response;
    }
}

讲解

TFJava

这是核心对象TFJava的最基础架构,福哥简单的将Servlet的Request和Response传给了TFRequest和TFResponse两个自建对象

TFRequest

这个对象用来实现Request对象的功能,当然福哥会进行一定的改造处理了

TFResponse

这个对象用来实现Response对象的功能,当然福哥会进行一定的改造处理了

使用

代码

java.getResponse().responseStatus(404);
map.put("id", 35);
map.put("name", "鬼谷子叔叔");

效果

f68824eae7cc921c.jpg

总结

今天福哥带着童鞋们给TFSpring框架增加了核心对象TFJava对象,TFJava的Request和Response对象基于Servlet实现,福哥会逐步完善TFRequest和TFResponse对象的功能,使它们可以足够替代Servlet的Request和Response的功能。