ServletContext对象
概述
ServletContext:servlet的上下文对象(全局管理者) 一个项目有且只有一个ServletContext对象 创建:tomcat一启动,就会为部署在它上面的项目创建一个对应的ServletContext对象 销毁:tomcat服务器只要已关闭,就会销毁当前的ServletContext对象
作用
1 可以作为一个容器,用来存储数据在多个servlet之间进行数据传递 2 获取当前项目被服务器发布的磁盘路径
API使用
1.获取对象: getServletContext() 2.存储数据: setAttribute() getAttribute() removeAttribute() 3.获取项目的磁盘路径: getRealPath(String path)
response对象
概述
这个对象提供了可以对浏览器做响应数据 响应数据的组成:响应行 响应头 响应体
操作响应行(要求:知道状态码的含义)
格式:协议/版本 状态码 例如:HTTP/1.1 200 看懂状态码的意义: 200 请求已成功 302 重定向 304 去找缓存数据 403 服务器拒绝执行 (文件或文件夹加了权限) 404 请求的资源没找到 405 请求的方法不存在 500 服务器错误 (代码写的有问题) api方法: setStatus(int sc) 设置响应的状态代码(一般用来设置 1xx 2xx 3xx) sendError(int sc) 设置响应的状态代码(一般用来设置 4xx 5xx) ps:我们一般是不操作状态码的 但需要知道一些状态码的含义
操作响应头
格式:key:value api方法: setHeader(String key,String value):设置键值对形式的响应头 掌握的响应头: 1 content-type: 通知浏览器响应的内容是什么类型的 并且用什么编码解析 (了解)response.setHeader("content-type","文件的类型;charset=utf-8"); (掌握)简写:response.setContentType("文件的类型;charset=utf-8"); 2 location:重定向 (了解)response.setHeader("location", "/day31/sd4"); response.setStatus(302); (掌握)简写:response.sendRedirect("url"); 面试题:请求转发和重定向的区别? 1 请求转发是request对象方法 重定向是response对象方法 2 请求转发只有一次请求 地址不会发生改变 重定向多次请求 地址栏会发生改变 3 请求转发只能访问内部资源 重定向既可以访问内部资源也可以访问外部资源 3 refresh:定时刷新 (掌握)response.setHeader("refresh","秒数;url=跳转的路径"); 4 content-disposition:通知浏览器写回去的东西要以附件形式打开 (只用于下载) (掌握)response.setHeader("content-disposition","attachment;filename="+fileName);
操作响应体
页面上要展示的内容 api方法: PrintWriter getWriter().print();字符流 ServletOutputStream getOutputStream():字节流 (二进制) 特点: 1 不能同时出现 2 若是能写的出来的内容用字符流,其他全用字节流(下载专用) 3 服务器会自动帮我们关闭这2个流.
案例实现-下载
一个浏览器编码工具:关于火狐浏览器下载的一个浏览器编码工具
下载:将服务器上的资源 下载到本地(io流) 上传:将本地的资源 上传到服务器上(io流) 下载步骤 1:获取用户点击要下载的资源是哪一个 2:需要拿着用户的下载资源去咱们的服务器匹配有没有这个资源 3:需要通过设置响应头,告诉浏览器写回去的东西要以附件形式打开 4:输入流和输出流 一个读 一个写
验证码实现示例:一个用JAVA实现验证码的实例
验证码的好处: 可以防止恶意注册 验证码:servlet 点击一次(请求)返回一张图片(响应)
继续阅读

资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
评论