您的位置:首页 > 编程语言 > Java开发

SpringMVC 中无缓存的BasicController的设计

2016-04-20 09:50 609 查看
public class BaseController {

// header 常量定义

private static final String DEFAULT_ENCODING = "UTF-8";

private static final boolean DEFAULT_NOCACHE = true;

// Content Type 常量定义

public static final String TEXT_TYPE = "text/plain";

public static final String JSON_TYPE = "application/json";

public static final String XML_TYPE = "text/xml";

public static final String HTML_TYPE = "text/html";

public static final String JS_TYPE = "text/javascript";

public static final String EXCEL_TYPE = "application/vnd.ms-excel";

public static int PAGE_NUMERIC = 20;

/**

* 直接输出内容的简便函数.

*/

protected void render(final String contentType, final String content,

final HttpServletResponse response) {

HttpServletResponse resp = initResponseHeader(contentType, response);

try {

resp.getWriter().write(content);

resp.getWriter().flush();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 直接输出文本.

*/

protected void outText(final String text, final HttpServletResponse response) {

render(TEXT_TYPE, text, response);

}

/**

* 直接输出HTML.

*/

protected void outHtml(final String html, final HttpServletResponse response) {

render(HTML_TYPE, html, response);

}

/**

* 直接输出XML.

*/

protected void outXml(final String xml, final HttpServletResponse response) {

render(XML_TYPE, xml, response);

}

/**

* 输出JSON,可以接收参数如: [{'name':'www'},{'name':'www'}],['a','b'],new

* String[]{'a','b'},合并如下:jsonString = "{TOTALCOUNT:" + totalCount + ",

* ROOT:" + jsonString + "}";

*

* @param jsonString

* json字符串.

*

*/

protected void outJson(final String json, final HttpServletResponse response) {

render(JSON_TYPE, json, response);

}

/**

* 设置让浏览器弹出下载对话框的Header.

*

* @param fileName

* 下载后的文件名.

*/

protected void setFileDownloadHeader(HttpServletResponse response,

String fileName) {

try {

// 中文文件名支持

String encodedfileName = new String(fileName.getBytes(),

"ISO8859-1");

response.setHeader("Content-Disposition", "attachment; filename=\""

+ encodedfileName + "\"");

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 分析并设置contentType与headers.

*/

protected HttpServletResponse initResponseHeader(final String contentType,

final HttpServletResponse response) {

// 分析headers参数

String encoding = DEFAULT_ENCODING;

boolean noCache = DEFAULT_NOCACHE;

// 设置headers参数

String fullContentType = contentType + ";charset=" + encoding;

response.setContentType(fullContentType);

if (noCache) {

setNoCacheHeader(response);

}

return response;

}

/**

* 设置客户端无缓存Header.

*/

protected void setNoCacheHeader(HttpServletResponse response) {

// Http 1.0 header

response.setDateHeader("Expires", 0);

response.addHeader("Pragma", "no-cache");

// Http 1.1 header

response.setHeader("Cache-Control", "no-cache");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: