HttpServletRequest与HttpServletResponse概要
来源:互联网 发布:excel数据统计图 编辑:程序博客网 时间:2024/05/18 00:19
Tips:以下代码均在IE中通过测试,由于只有IE支持response字符流方法print()向客户端写入html代码,其它浏览器均需用write()方法。
HttpServletResponse
1.状态码http协议中的常见状态码:
200:表示成功
302:表示重定向
404:表示客户端错误(访问资源不存在)
500:表示服务器端错误
更多:http://developer.qiniu.com/docs/v6/api/reference/codes.html
相关方法:
response.setStatus(int sc):设置成功状态码;
response.setError(int sc):设置错误状态码
response.sendError(int sc,String msg):设置错误状态码,显示错误信息。
2.响应头
详细:http://developer.qiniu.com/docs/v6/api/reference/codes.html
相关方法:
response.setHeader(String name,String value):设置单值响应头
response.addHeader(String name,String value):设置多值响应头
response.setIntHeader(String name,int value):设置单值int响应头
response.addIntHeader(String name,int value):设置多值int响应头
response.setDateHeader(String name,long value):设置单值毫秒型响应头
response.addDateHeader(String name,long value):设置多值毫秒型响应头
----------
重定向
----------
B->A
public class BServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setHeader("Location","/Response/AServlet" );response.setStatus(302);}}
***重定向sendRedirect(Sting url)方法
public class GServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.sendRedirect("/Response/AServlet");}}----------
定时刷新
----------
public class CServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {PrintWriter writer = response.getWriter();writer.println("5秒跳转");response.setHeader("Refresh", "5;URL=/Response/AServlet");}}----------
禁用缓存
----------
public class DServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setHeader("Cache-Control", "no-cache");response.setHeader("pragma", "no-cache");response.setDateHeader("expires", -1);response.getWriter().write("hhhhhh");}}***meat标签可以代替响应头
3.响应体
ServletOutputStream sout = response.getOutputStream();
PritnWriter pout = response.gerWriter();
//字节流public class FServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String s="FServlet";byte[] bytes = s.getBytes();response.getOutputStream().write(bytes); //图片response.setContentType("image/jpeg");String path="F:/a.jpg";FileInputStream in = new FileInputStream(path);byte[] bytes1=IOUtils.toByteArray(in);response.getOutputStream().write(bytes1);}}============================================================
HttpServletRequest
1.获取常用信息——request.getRemoteAddr():获取客户端IP
——request.getMethod():获取请求方式post或get
2.获取请求头
——String getHeader(String name):适用于单值请求头
——int getIntHeader(String name):适用于单值int请求头
——long getDateHeader(String name):适用于单值毫秒型请求头
——Enumeration<String> getHeaders(Sting name):适用于多值请求头
----------
获取IP、请求方式、User-Agent
----------
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//获取客户端的IP地址String addr = request.getRemoteAddr();//获取请求方式String method=request.getMethod();//获取User-AgentString userAgent=request.getHeader("User-Agent");System.out.println("IP:"+addr);System.out.println("Method:"+method);System.out.println("User-Agent"+userAgent);}}----------
利用Referer请求头防盗链
----------
public class BServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.getWriter().print(request.getScheme()+"://");response.getWriter().print(request.getServerName()+":");response.getWriter().print(request.getServerPort());response.getWriter().print(request.getContextPath());response.getWriter().print(request.getServletPath()+"?");response.getWriter().print(request.getQueryString()+"<br/>");response.getWriter().print(request.getRequestURI()+"<br/>");response.getWriter().print(request.getRequestURL());}}3.获取请求URL
eg:http://localhost:8080/Request/AServlet?username=xxx&password=xxx
String getScheme():获取协议 http
String getServerName():获取服务器名 localhost
String getServerPort():获取服务器端口 8080
String getContextPath():获取项目名称 /Request
String getServletPath():获取Servlet路径 /AServlet
String getQueryString():获取部分参数 username=xxx&password=xxx
String getRequestURI():获取请求URI /Request/AServlet
String getRequestURL():获取请求URL http://localhost:8080/Request/AServlet?username=xxx&password=xxx
4.获取请求参数
在请求体中(post)
在URL之后(get)
String getParameter(String name):获取指定名称的请求参数值(单值)
String[] getParameter(String name):获取获取指定名称的请求参数值(多值)
Enumeration<String> getParameterNames():获取所有请求参数的名称
Map<String,String[]> getParameterMap():获取所有请求参数
----------
超链接参数、表单数据
----------
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.getWriter().print(request.getParameter("nicknames")+",");response.getWriter().print(request.getParameter("age")+"<br/>");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.getWriter().print(request.getParameter("<br/>"+"usenames")+"<br/>");response.getWriter().print(request.getParameter("password")+"<br/>");String[] hobby = request.getParameterValues("hobby");String s=Arrays.toString(hobby);response.getWriter().print(s);//获取所有参数Enumeration names = request.getParameterNames();while(names.hasMoreElements()){response.getWriter().print("<br/>"+names.nextElement());}//获取所有请求参数,封装到Map中Map<String,String[]>map=request.getParameterMap();for(String name:map.keySet()){String[] values = map.get(name);System.out.println(name+"="+Arrays.toString(values));}}}
0 0
- HttpServletRequest与HttpServletResponse概要
- HttpServletRequest与HttpServletResponse
- HttpServletrequest 与HttpServletResponse总结
- HttpServletResponse与HttpServletRequest理解
- HttpServletRequest与HttpServletResponse
- HttpServletRequest与HttpServletResponse
- HttpServletrequest 与HttpServletResponse总结
- HttpServletrequest 与HttpServletResponse总结
- HttpServletRequest /HttpServletResponse
- httpservletrequest,httpservletresponse
- dwr与HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig.
- HttpServletRequest与HttpServletResponse处理中文问题
- HttpServletResponse响应头与HttpServletRequest请求头及编码问题
- JavaWeb-HttpServletResponse、HttpServletRequest
- HttpServletRequest和HttpServletResponse API
- HttpServletRequest和HttpServletResponse详解
- HttpServletRequest 和HttpServletResponse
- 【servlet】HttpServletResponse HttpServletRequest
- 【bzoj3942】 [Usaco2015 Feb]Censoring KMP
- JS对象与json字符串格式转换实例
- Java的一些基本概念
- 维护之WIFI-2000安全策略对应
- OpenJudge_P7941 不重复地输出数
- HttpServletRequest与HttpServletResponse概要
- HDU 2063 过山车(二分图匹配 匈牙利算法)
- python后台运行flash跨域服务器
- 第九周 数据结构实现项目--数组和广义表【项目2.2 - 压缩存储的对称矩阵的运算】
- 修复 mac os 升级后导致的xcrun: error:
- Winform 自定义TabControl实现浏览器标签
- iOS求职:C语言面试题
- Java线上排查总结
- 文章标题