A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Java新人 初级黑马   /  2019-8-30 16:02  /  1156 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

request 的作用
     1,获取请求参数
         2,请求转发
         3,作为域对象数据共享
         4,获取ServletContext
         
ServletContext 对象
   概念:代表整个web应用,可以和程序的容器(服务器)来通信
   功能:
      |获取MIME类型
            * 在互联网通次你过程中定义的一种文件类型
                 格式:  大类型/小类型    text/html
                 获取:  String getMimeType(String File)
                 application/json
          ||域对象:共享数据   selectContext域是什么范围()  
            setAttribute(String name,Object value)
                getAttribute(String name)
                removeAttribute(String name)
                 *** ServletContext对象范围: 所有用户所有请求的数据
          |||获取对象的真实(服务器)路径
             getRealpath()
                 
                 eg:获取src目录下的文件 会被放置在WEB-INF下的Classes目录下
    获取:通过request对象获取
                request.getServletContext()
         通过HTTPservlet获取
           this.getServletContext()                 
                  
   **: 从项目开始到结束ServletContext只能有一个                  
   
   下载案例:
       下载本质流的对拷
               服务器的文件转成输出流,通过responce输出流把输入流回写浏览器
                  
                   实现步骤:
                     1,获取服务器上文件输入流
                            获取要下载的文件名称
                                根据文件名获取问津的真实路径
                                将文件转成输出流
               
                      
                               
                         2, 设置两个头
               content-type    -->  设置文件的mime类型   context.getMimeType(文件名)
                          
                           判断浏览器:
                               if(火狐){
                                     把文件名用BASE64编码
                                   }else{
                                   把文件名url进行编码
                                   }
               content-disposition --->  表示文件以下载的形式操作   response.setHeader                          
                     3 流的对拷
                         
            页面显示超链接
                点击超链接后弹出下载提示框
            完成图片文件下载       
               
-------------------------------
四个域:               
               
----------------------------------               
               
会话:一次会话中包含多次请求和响应

   一次会话:浏览器第一次给服务器发送请求,会话建立,直到有一方断开为止
   
功能:在一次会话的范围内的多此请求间,共享数据
方式:
    1,客户端会话技术:cookie
        2,服务器端会话技术:
       
cookie原理:
   1,cookle由服务器创建
   2,创建coolie最后要返回给浏览器--> responce.addCookie(c)
       响应头:--> SET-CooKIE  :名字和值
   3,浏览器会接收响应,页面展示,处理响应头信息,
   4,
   5,

实现原理:
    *基于响应头set-cookie 和请求头cookie实                       
                                                                         
cookie细节
    1, 一次可不可以发送多个cookie?
        可以
        可以创建多个Cookie对象,使用responce调用多次addCookie发送Cookie即可
   
    2, cookie在浏览器中保存多长时间?
         默认情况下,当浏览器关闭后,cookie数据被销毁
         持久化存储
            setMaxAge(int seconds)
              1,正数:将cookie数据写到硬盘文件中.持久化存储.cookie存活时间长                       
                  2,负数:默认值
                          3,零:删除cookie信息
        3, cookie能不能存中文
              Tomcat 8之前 cookie中不能存储中文数据
                    需要将中文数据转码----一般采用url编码来使用
              Tomcat8开始支持,建议如果出新中文,空格,特殊字符,建议先进行url编码在进行操作
    4, cookie获取范围有多大?
         假如在Tomcat中部署多个项目,那么在这些项目中能不能共享
               默认情况下不能共享
                setpath(String path):设置cookie的取值范围.默认情况下,设置当前虚拟目录
                                  * 如果要共享,可以将path设置为""
                                  
                 不同的Tomcat服务器间cookie共享问题:
               setDomain(String path):可以设置一级域名相同,那么多可服务器之间的cookie可共享


    c.setpath()  
    c.setDomain()
           
                               

设置cookie的有效路径注意事项:
   
       
  cookie的特点和作用:
       有大小(4k)和个数(20)的限制
           数据在浏览器保存
           不安全
           cookie默认关闭浏览器就会销毁
  
    1,cookie存储数据在客户端浏览器
        2,浏览器对于单个cookie的大小有限制以及对同一个域名下的cookie数量也有限制
      
          * 作用
           1,cookie一般以用于存储少量的不太敏感的数据
           2,在不登录的情况下,完成服务器对客户端的身份识别     

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马