HttpServletRequest相关内容
来源:互联网 发布:网络套路是什么意思 编辑:程序博客网 时间:2024/06/01 23:27
request封装了客户端所有的请求数据
请求行
请求头
空行
请求体(GET没有)
request获取常用信息
获取客户端IPgetRemoteAddr():获取远程IP地址请求方式getMethod():返回的值可能是get也可能是post
request获取请求头
String getHeader(String name):适用于单值头int getIntHeader(String name):适用于单值int类型请求头long getDateHeader(String name):适用于单值毫秒类型的请求头Enumeration<String> getHeaders(String name):适用于多值请求头
使用方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取客户端IP地址 String addr = request.getRemoteAddr(); System.out.println("IP"+addr); //获取请求方式request.getMethod() System.out.println("请求方式"+request.getMethod()); //获取User-Agent request.getHeader("User-Agent") String userAgent = request.getHeader("User-Agent"); System.out.println(userAgent); if(userAgent.toLowerCase().contains("chrome")){ System.out.println("你好:"+addr+"你用的是谷歌"); } else if(userAgent.toLowerCase().contains("firefox")){ System.out.println("你好:"+addr+"你用的是火狐"); } else if(userAgent.toLowerCase().contains("msie")){ System.out.println("你好:"+addr+"你用的是ie"); } }
获取请求URL
Sting getScheme():获取协议Stirng getServeName():获取服务器名String getServePort():获取服务器端口String getContextPath():获取项目名String getServletPath():获取Servlet路径String getQueryString():获取参数部分,即问号后面的部分String getRequestURI():获取请求URI,等于项目名+Servlet路径String getRequestURL():获取请求URL,等于不包含参数的整个请求路径
获取请求参数
请求参数由客户端发送给服务器
有可能是在请求体中(POST),也可能在URL之后(GET)
String getParameter(String name):获取指定名称的请求参数,适用于单值请求参数Map<String,String[]> getParameterMap():获取所有请求参数,key为参数名称,value为参数值数组String[] getParameterValues(String name):获取指定名称的请求参数值,适用于多值请求参数Enumeration<String> getParameterNames():获取所有的请求参数名称
请求转发和请求包含
一个请求内执行多个ServletRequestDispatcher rd = request.getRequestDispatcher("/MyServlet");(被转发的Servlet路径)请求转发:rd.forward(request,response);请求包含:rd.include(request,response);一个请求跨多个Servlet,需要使用转发和包含请求转发:由下一个Servlet完成响应体,当前Servlet可以设置响应头(留头不留体)请求包含:由两个Servlet共同完成响应体(都留)无论是请求转发还是请求包含,都在一个请求范围之内,使用同一个request和response请求转发中第一个response体内容不能多于1K*24+1
request域
Servlet中三大域对象:request、session、application,都有如下三个方法
转发或包含时用来传递值void setAttribute(String name,Object value)Object getAttribute(String name)void removeSttribute(String name)同一请求范围内使用request.setAttribute()、request.getAttribute()来传值。前一个Servlet调用setAttribute()保存值,后一个Servlet调用getAttribute()获取值请求转发是服务端行为,只需要给出转发的Servlet路径,而重定向需要给出requestURI,即包含项目名
阅读全文
0 0
- HttpServletRequest相关内容
- 相关内容
- HttpServletRequest
- Httpservletrequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- httpservletrequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- HttpServletRequest
- 文件I/O
- 栈和队列
- [15]PMP控制质量工具-统计抽样概念, 变量抽样和属性抽样的区别
- 全栈必备Linux 基础
- Java实现XSS防御
- HttpServletRequest相关内容
- 设置nexus开机自启动
- 在pycharm下创建Django项目,创建web管理段的账号密码
- Comparing Strings
- Charles之App开发使用
- Vue如何支持JSX语法
- OGG-00868 的解决办法(RAC节点)
- 机器学习实战(第3章 决策树)
- JQuery四、