Web01
来源:互联网 发布:数据安全中心 编辑:程序博客网 时间:2024/05/03 19:11
http工作流程,以及包含的内容
- 建立连接
- 发送请求 request
- 响应 response
- 关闭连接
对容器的支持
- 通信
- 生命周期
- 多线程
- 安全性
- JSP支持
servlet的生命周期
- 加载到容器,进行实例化
- 初始化init方法
- servlet每次请求到达
- destroy( )
设置MIME类型,告诉浏览器我们要响应的类型
默认为ISO-885-1
设置charset=utf-8,表示浏览器解析内容采用utf-8格式
response.setContentType("类型")
类似于,封装起来了
response.setHeader("Content-Type","text/html;charset=utf-8")
设置传输时的编码集
response.setCharacterEncoding("utf-8")
常见的MIME类型
自动刷新功能
response.setHeader("refresh", "5;地址")
控制数据无法缓存
response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","No-cache");
设置缓存过期
respons.setHeader("Expires", System.currentTimeMillis()+24*3600*1000)
设置响应头控制浏览器打开下载框
response.setHeader("Content-disponsition","attchment;filename="+"1.jpg")
共同点:两者都不会刷新页面,只在原来的页面上写数据。两个方法都是重写了writer类里面的write方法
print write 可以输出不同数据类型 只能操作字符,字符数组,字符串
//获取到输出流对象OutputStream out = response.getOutputStream();//将字符串变成字节数组out.write((4+"").getBytes());
图片文件下载案例
//设置响应编码集 resp.setCharacterEncoding("utf-8"); resp.setContentType("image/jpeg"); String imgName = "高圆圆.jpg";//获取文件要下载的路径,通过上下文对象获取到文件的物理路径 String path = this.getServletContext().getRealPath("/img/高圆圆.jpg");//设置响应头控制浏览器打开下载框,操作图片中文名字中文显示也要转成字节数组,保持服务器编码一致 resp.setHeader("Content-disposition", "attchment;filename="+new String(imgName.getBytes("utf-8"),"ISO8859-1"));//获取到图片的二进制流//FileReader fr = new FileReader(path); InputStream in = new FileInputStream(path);//创建一个二进制流 OutputStream out = resp.getOutputStream();//创建一个缓冲区 int len = 0; byte[] by = new byte[1024]; while((len=in.read(by))>0){ out.write(by,0,len); }
通过字符流操作二进制的文件,有可能出现内容丢失
重定向
- 重定向的状态码是302,表示资源被移走,重新请求新的资源
- 重定向是客户端发起的两次请求。
- 调用sendRedirect方法可以不用设置状态码
//重定向response.6sendRedirect(“地址”)//设置代码重定向,前提状态码为302response.setHeader(“Location”,"地址");
get方法提交
- 地址栏直接输入服务器资源
- 通过js直接访问
- 超链接访问
- request.getParameter(“name属性值”)
post方法提交
1. 主要用于传输数据,客户端向服务器发送数据(文本,二进制)
请求一个静态页面或图形文件时使用get提交
大数据时使用post方法
上传文件时,post方法
> 发送用户名,密码或保密信息时使用post方法
http传送的请求行的内容全部封装到request对象
//得到url地址request.getRequestURL().toString//得到urI地址request.getRequestURI()//获取到请求附带的参数request.gerQueryString()//获取到客户端的iprequest.getRemoteAddr();//收获到服务器的内容request.getLocalPort
getRequestDispatcher当前请求派发之后,这个资源将控制权移交给下一个资源
include包含:将其他资源内容包含到本资源中,最终控制权回到servlet
请求派发 重定向 307 302 服务器端完成的,url不变 客户端完成 url要变 只能在本服务器 可以跨服务器
请求只要是页面发送过来的就必须加上工程名字
js提交、超链接、重定向、都要加上项目名字
在请求派发里面/表示当前工程,请求派发默认调用dopost()
0 0
- Web01
- web01 Tomcat
- 移动web01
- Java Web01之初识servlet和request
- 严重:The web application [web01] appears to have started a thread named ...
- Servlet
- c语言==expected identifier or * before *
- 转发和重定向的区别与联系
- web前端之JavaScript高级程序设计九:JSON
- MVC5的模式构建网站(四)
- Web01
- djcelery的import错误
- CSS查漏补缺
- iOS开发之快速上手KVO
- 文章标题
- 使用js显示当前系统时间
- C#读取XML文件的内容
- PHP抓取网页-提取网页meta键值对
- Python安装lxml