跳至主要內容

响应请求

大约 3 分钟

响应请求

FastChar 用来响应Request请求的类:FastOut

介绍

FastOut是FastChar核心类之一,用作响应Response输出

显式调用

通过FastAction提供的response系列方法,开发者可以显式调用response相关方法响应请求,如下:

public class TestAction extends FastAction {
    /**省略其他代码**/
    
    public void login() {
        responseText("登录成功!");
    }
}

请求访问到 login 方法后,方法内部响应了 content-typetext/plain 的文本内容。

警告

当方法内部显式的调用了response相关方法后,程序将立即中断方法执行。如下:

    public void login() {
        responseText("登录成功!");
        //以下代码程序不会执行
        String name=getParam("name");
    }

 



或者内嵌调用方法,如下

    public void userInfo() {
        login();
        //以下代码程序不会执行
        String userId=getParam("userId");
    }

 



方法返回内容

进入FastAction方法后,开发者可以通过方法返回值用做响应请求。如下:

public class TestAction extends FastAction {
    /**省略其他代码**/
    
    @AFastResponse(FastOut.Type.TEXT)
    public String login() {
        return "登录成功!";
    }
}

我们可以发现方法 login 多了一个注解 AFastResponse ,此注解的作用是告诉系统方法返回的内容使用 content-typetext/plain 来响应内容。

也就是类型为FastOut.Type.TEXT 对应FastOut类为 FastOutText

方法返回类型

进入FastAction方法后,开发者可以通过方法返回响应的类型用做响应请求。如下:

public class TestAction extends FastAction {
    /**省略其他代码**/
    
    public Object login() {
        return new FastOutText().setData("登录成功!");
    }
}

默认提供的响应类型

  • FastOutText
    • 响应文本格式(text/plain)
    • 注解类型:FastOut.Type.TEXT
    • 显式调用示例: responseText("文本");
  • FastOutHtml
    • 响应网页格式(text/html)
    • 注解类型:FastOut.Type.HTML
    • 显式调用示例: responseHtml("<h1>网页内容</h1>");
  • FastOutJson
    • 响应Json格式(application/json)
    • 注解类型:FastOut.Type.JSON
    • 显式调用示例: responseJson("json数据");
    • 需要引用json工具包,点击查看
  • FastOutFile
    • 响应File文件(application/octet-stream)
    • 注解类型:FastOut.Type.FILE
    • 显式调用示例: responseFile(new File("文件路径"));
  • FastOutJsp
    • 响应Jsp
    • 注解类型:FastOut.Type.JSP
    • 显式调用示例: responseJsp("jsp路径");
  • FastOutXml
    • 响应Xml格式(text/xml)
    • 注解类型:FastOut.Type.XML
    • 显式调用示例: responseXml("<root>xml内容</root>");
  • FastOutFreemarker
  • FastOutVelocity
  • FastOutThymeleaf
  • FastOutCaptcha
    • 响应验证码图片(image/jpeg)
    • 注解类型:无
    • 显式调用示例: responseCaptcha();
  • FastOutParamError
    • 响应参数错误。IFastValidator验证器使用此类型响应
    • 注解类型:无
    • 显式调用示例: responseParamError("参数名", "错误信息");
  • FastOutStatus
    • 响应状态,例如404、500等
    • 注解类型:FastOut.Type.STATUS
    • 显式调用示例: responseStatus(404);
  • FastOutForward
    • 转发请求
    • 注解类型:FastOut.Type.FORWARD
    • 显式调用示例: forward("路径");
  • FastOutRedirect
    • 重定向请求
    • 注解类型:FastOut.Type.REDIRECT
    • 显式调用示例: redirect("路径");

自定义响应类型

如果FastChar默认的响应类型无法满足业务需求,也可以自定义响应类型,如下自定义的FastOut:

public class TestOut extends FastOut<TestOut> {
    /**
     * 响应数据
     * @param action
     */
    @Override
    public void response(FastAction action) throws Exception {
        // 变量 data 继承自 FastOut 
        action.getResponse().getWriter().write(String.valueOf(data));
    }
}

然后在FastAction使用response响应即可,如下代码:

public void test() {
    response(new TestOut().setData("登录成功!"));
}
上次编辑于:
贡献者: Janesen