Http与Servlet工具类
来源:互联网 发布:洗衣机什么牌子好 知乎 编辑:程序博客网 时间:2024/06/01 09:26
1、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";
2、Header 定义
public static final String AUTHENTICATION_HEADER = "Authorization";
3、常用数值定义
public static final long ONE_YEAR_SECONDS = 60 * 60 * 24 * 365; public static final String HEADER_ENCODING = "encoding"; public static final String HEADER_NOCACHE = "no-cache"; public static final String DEFAULT_ENCODING = "UTF-8"; public static final boolean DEFAULT_NOCACHE = true;
4、设置禁止客户端缓存的Header
public static void setDisableCacheHeader(HttpServletResponse response) { // Http 1.0 header response.setDateHeader("Expires", 1L); response.addHeader("Pragma", "no-cache"); // Http 1.1 header response.setHeader("Cache-Control", "no-cache, no-store, max-age=0"); }
5、设置客户端缓存过期时间 Header
public static void setExpiresHeader(HttpServletResponse response, long expiresSeconds) { // Http 1.0 header response.setDateHeader("Expires", System.currentTimeMillis() + expiresSeconds * 1000); // Http 1.1 header response.setHeader("Cache-Control", "private, max-age=" + expiresSeconds); }
public static 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"); }
7、分析并设置contentType与headers
public static void initResponseHeader(HttpServletResponse resp, String contentType, String... headers) { // 分析headers参数 String encoding = DEFAULT_ENCODING; boolean noCache = DEFAULT_NOCACHE; for (String header : headers) { String headerName = StringUtils.substringBefore(header, ":"); String headerValue = StringUtils.substringAfter(header, ":"); if (StringUtils.equalsIgnoreCase(headerName, HEADER_ENCODING)) { encoding = headerValue; } else if (StringUtils.equalsIgnoreCase(headerName, HEADER_NOCACHE)) { noCache = Boolean.parseBoolean(headerValue); } else { throw new IllegalArgumentException(headerName + "不是一个合法的header类型"); } } // 设置headers参数 String fullContentType = contentType + ";charset=" + encoding; resp.setContentType(fullContentType); if (noCache) { setNoCacheHeader(resp); } }
8、直接输出内容的简便函数
public static void render(HttpServletResponse resp, String contentType, String content, String... headers) { initResponseHeader(resp, contentType, headers); try { resp.getWriter().write(content); resp.getWriter().flush(); } catch (IOException e) { throw new RuntimeException(e.getMessage(), e); } }
9、输出文本
public static void renderText(HttpServletResponse resp, String text, String... headers) { render(resp, ServletUtils.TEXT_TYPE, text, headers); }
10、输出html
public static void renderHtml(HttpServletResponse resp, String html, String... headers) { render(resp, ServletUtils.HTML_TYPE, html, headers); }
11、输出xml
public static void renderXml(HttpServletResponse resp, String xml, String... headers) { render(resp, ServletUtils.XML_TYPE, xml, headers); }
12、输出json
public static void renderJson(HttpServletResponse resp, String jsonString, String... headers) { render(resp, ServletUtils.TEXT_TYPE, jsonString, headers); }
0 0
- Http与Servlet工具类
- HTTP与Servlet
- Servlet工具类----BaseServlet
- 封装Servlet工具类
- javax.servlet 包与javax.servlet.http 包定义的类和接口
- javax.servlet 包与javax.servlet.http 包定义的类和接口
- HTTP协议与Servlet的应用
- servlet与http协议状态相关资料
- tomcat与http协议,servlet整合
- HTTP通信--Android客户端与Servlet通信
- Servlet-处理HTTP请求与响应
- Http与Servlet数据传输全流程
- 程序包javax.servlet与javax.servlet.http不存在
- 程序包javax.servlet与javax.servlet.http不存在
- javax.servlet.http.HttpServlet类
- Http工具类
- Http请求工具类
- http请求工具类
- AndroidStudio学习笔记
- eclipse中的插件安装(svn、maven、jetty等)
- CSTC 2001 聪明的学生 BZOJ 2523 递归(类搜索,推理)
- 高级数据结构实现——自顶向下伸展树
- 使用DiskGenius来读写VMware的.vmdk文件?
- Http与Servlet工具类
- oi知识体系
- python:为什么reversed()之后,第二次以后的list()得到的结果都是空?
- zoj--1610
- nyoj-115城市平乱-各种解法
- HDOJ 1018 Big Number
- 动态规划-搬寝室
- Android--viewpager学习
- android 导入数据库