JavaWeb笔记(三)HTTP
2024-09-02 07:59:11
常见请求头
- User-Agent:浏览器版本信息,可以解决浏览器兼容性问题
- Referer:请求来源地址,可以防盗链和统计
Request
方法
- 获取请求方式:
String getMethod()
- 获取虚拟目录:
String getContextPath()
- 获取Servlet路径:
String getServletPath()
- 获取get方式请求参数:
String getQueryString()
- 获取请求URI:
String getRequestURI()
: /day/demoStringBuffer getRequestURL()
: http://localhost/day/demoURL:统一资源定位符 : http://localhost/day/demo
URI:统一资源标识符 : /day/demo
- 获取协议及版本:
String getProtocol()
- 获取客户机的IP地址:
String getRemoteAddr()
获取请求参数通用方式
String getParameter(String name)
根据参数名称获取参数值String[] getParameterValues(String name)
根据参数名称获取参数值的数组Enumeration<String> getParameterNames()
获取所有请求的参数名称Map<String,String[]> getParameterMap()
获取所有参数的map集合
请求转发
request.getRequestDispatcher(String path).forward(request, response)
特点
- 浏览器地址不变
- 只能转发当前服务器内部资源中
- 只有一次请求
共享数据
通过域对象
application > session > request > page
响应消息
响应状态码
- 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
- 2xx:成功。代表:200
- 3xx:重定向。代表:302(重定向),304(访问缓存)
- 4xx:客户端错误。代表:404(请求路径没有对应的资源)、405(请求方式没有对应的doXxx方法)
- 5xx:服务器端错误。代表:500(服务器内部出现异常)
常见响应头
- Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
- Content-disposition:服务器告诉客户端以什么格式打开响应体数据
- in-line:默认值,在当前页面内打开
- attachment;filename=xxx:以附件形式打开响应体。文件下载
Response
设置响应消息
- 设置状态码:
setStatus(int sc)
- 设置响应头:
setHeader(String name, String value)
重定向
response.sendRedirect(String path)
特点
- 地址栏发生变化
- 可以访问其他服务器的资源
- 两次请求
中文乱码问题
request
- get方式:tomcat 8 已经将get方式乱码问题解决了
- post方式:在获取参数前,设置request的编码
request.setCharacterEncoding("utf-8")
response
response.setContentType("text/html;charset=utf-8")
路径问题
- 相对路径:以.开头
- ./ : 当前目录
- ../ : 后退一级目录
- 绝对路径:以/开头
- 客户端使用,需要加虚拟目录,动态目录获取:
request.getContextPath()
- <a>、<form>、重定向……
- 服务端使用,不用加虚拟目录
- 转发路径
最新文章
- 偶然发现的Unity3d,两点之间的距离计算。
- [部署]MVC4.0+EF5.0+ODT+ORACLE相关注意事项
- PHP中常用的函数
- Masonry
- tomcat启动,输出system.out.println()
- hadoop NameNode HA 和ResouceManager HA
- css技巧之如何实现ul li边框重合
- CSS的display、hover、overflow、&;copy(版权符号)、borer-radius(边框圆角)
- java继承中的初始化顺序
- DEDE中 field:rel 是什么意思,起一个什么样的作用效果
- LR之error(一)
- apache2.4 文件浏览服务器页面配置
- ubuntu 升级 python3.5到 python3.6
- PHP策略模式2
- MySQL更改relay-bin名称导致同步停止的解决办法
- Android应用启动时Activity被创建两次
- Python 类变量
- Java基础——iO(二)
- JavaScript 继承——三种继承方法及其优劣
- oracle 锁表/解锁 杀进程
热门文章
- svn: 处于冲突状态
- 《阿里巴巴Java开发手册》阅读笔记
- linux命令详解-useradd,groupadd
- 7-4 python 接口开发(提供mock服务)
- 用js控制单选框或者多选框问题
- JavaSE 第二次学习随笔(String的坑 + ==)
- Dialog BLE 学习之 修改分散加载文件 (2)
- 笔记-git-协作开发
- 安装python 第三方库遇到的安装问题 microsoft visual studio c++ 10.0 is required,Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
- spark练习--mysql的读取