学习进度(二)

 

第二周

所花时间(包括上课)

8h

代码量(行)

200

博客量(篇)

2

了解到的知识点

1.Response对象学习

  作用:用来相应数据到浏览器的一个对象

  使用:

       设置响应头:

                         setHeader(String name,String value);//在响应头中添加响应信息,但是同键会覆盖

                         addHeader(String name,String value); //在响应头中添加响应信息,但是同键不会覆盖

       设置响应状态 :            

                         sendError(int num,String msg);//自定义响应格式

       设置响应实体 :    

                         Resp.getWrite().(String str);//响应具体的数据给浏览器

       设置响应编码格式:

                         Resp.setContentType(“text/heml;charset=utf-8”)

      

  总结:

       Service请求处理代码流程:

            设置响应编码格式

            获取请求数据

            处理请求数据

            响应处理结果

2. 请求中文乱码解决:

   1.使用String进行数据重新编码,如:

uname=new String(uname.getBytes(“iso8859-1),”utf-8”);

   2.使用公共配置

     get方式:

        步骤一:req,setCharacterEncoding(“utf-8”);

        步骤二:在tomcat的目录下的conf目录中修改server.xml文件,在Connector标签中添加属性useBodyEncodingForURL=”true”

    post方式:req,setCharacterEncoding(“utf-8”);

   Servlet流程总结:

     浏览器发起请求到服务器(请求)

     服务器接收浏览器的请求,进行解析,创建request对象存储请求数据

     服务器调用相应的servlet进行请求处理,并将request对象作为实参传递给servlet的方法

   Servlet的方法执行进行请求处理

     设置请求编码格式

     设置响应编码格式

     获取请求信息

     处理请求信息

         创建业务层对象

         调用业务层对象的方法

     响应处理结果

数据流转流程

    浏览器--------->服务器--------->数据库

    浏览器<---------服务器<---------数据库

3. 请求转发

       作用:实现多个servlet联动操作处理请求,这样避免代码冗余,让servlet的职责更加明确

       使用:req.getRequestDispatcher(“要转发的地址”).forward(req.resp);

             地址:相对路径,直接书写servlet的别名即可

       特点:一次请求,浏览器地址信息不改变

       注意:请求转发后直接return结束即可

       request作用域:

              解决了一次请求内的servlet的数据共享问题

   重定向:

       解决了表单重复提交的问题,以及当前servlet无法处理的请求的问题

       使用:

            resp.sendRedirect(String URI);

       示例:

            resp.sendRedirect(“/login/main”);

       特点:两次请求,两个requset对象

             浏览器地址栏信息改变

       时机:如果请求中有表单数据,而数据又比较重要,不能重复提交,建议使用重定向

              如果请求被servlet接收后,无法进行处理,建议使用重定向定位到可以处理的资源

4. Cookie学习:

      作用:解决了发送的不同请求的数据共享问题

使用:

      Cookie的创建和存储

//创建Cookie对象

             Cookie c=new Cookie(string name,string value);

          //设置cookie(可选)

                //设置有效期

                  c.setMaxAge(int seconds);

                //设置有效路径

                  c.setPath(String uri);

          //响应Cookie

             Resp.addCookie(c);

       Cookie的获取

          //获取cookie信息数组

            Cookie [] cks=req.getCookie();

          //遍历cookie信息,使用for循环即可,示例:

            If(cks!=null){

              For(Cookie c:cks){

                 String name=c.getName();

                 String value=c.getValue();

                 System.out.println(name+”:”+value);

                 }

            }

注意:一个Cookie对象存储一条数据,存储多条数据则需创建多个Cookie对象进行存储

特点:浏览器的数据存储技术

      存储的数据声明在服务器端

      临时存储:存储在浏览器的运行内存中,浏览器关闭即失效

      定时存储:设置了Cookie的有效期,存储在客户端的硬盘中,在有效期内符合路径要求的请求都会附带改信息

      默认cookie信息存储好之后,每次都会附带,除非设置有效路径

 

猜你喜欢

转载自www.cnblogs.com/qianmo123/p/10543944.html