当前位置:网站首页 > Java基础 > 正文

java web开发基础文档



接上篇servlet规范继续更新~~~好了,废话不多说,开始正题!

十六、Cookie类:

1) java web开发基础文档 来自于Servlet规范中提供一个工具类

2) 如果两个Servlet为同一个用户/用一个浏览器提供服务,此时借助于用户的cookie实现数据共享

3) cookie在现实生活中相当于用户的会员卡

2.实现原理

运行OneServlet

//1.生成一个Cookie对象Cookie      card=   new Cookie("共享数据名","共享数据");

//*一个Cookie对象只能存储一个共享数据

//*cookie中共享数据只能String类型

//2.调用响应对象将cookie写入到响应头response.addCookie(card);

运行twoServlet

//1.调用请求对象读取请求头中所有的cookie

Cookie  cookieArray[]= request.getCookies();

//2.遍历循环数组,读取OneServlet在cookie存入的数据

    for(Cookie card:cookieArrray){

                String key =   card.getName(); // 返回共享数据名

                String  value =  card.getValue();  //返回共享数据

    }

4.生命周期

1)在正常情况下,cookie存放在浏览器内存中。在浏览器关闭时,cookie将被销毁

2)在命令控制下,可以要求浏览器将接收cookie存放在客户端计算机的硬盘上并指定存活时间。在存活时间范围内,关闭浏览器,关闭服务器,关闭计算机都不会导致cookie销毁

cookie对象.setMaxAge(60); 在硬盘上存活1分钟

十七、HttpSession接口

1.介绍

1)HttpSession接口来自于Servlet规范中

2)  HttpSession接口实现类由Http服务器厂商提供

3)  HttpSession接口修饰对象被称为会话作用域对象

4)如果两个Servlet为同一个用户/同一个浏览器提供服务此时可以借助于用户的HttpSession对象进行数据共享

Cookie是一个类

HttpSession是一个接口

2)  存放位置不同:

Cookie存放在客户端计算机会话作用域对象存放在服务端计算机内存

3)存放共享数据个数不同

一个cookie对象只能存储一个共享数据

一个会话作用域对象通过map存储,因此可以任何个共享数据

4)  存放数据类型不同

cookie只能存放String类型的共享数据

会话作用域对象存放Object类型的共享数据

5)   与用户关系

一个用户可以拥有多个cookie

一个用户只能拥有一个会话作用域对象

6) 参照物不同

cookie相当于用户在服务端拥有的会员卡

会话作用域对象相当于用户在服务端拥有的私人储物柜

//运行OneServlet

//1.调用请求对象向Tomcat索要当前用户私人储物柜

HttpSession session = request.getSession();

//2.将共享数据添加到当前用户私人储物柜

session.setAttribute("共享数据名")

//运行TwoServlet

//1.调用请求对象向Tomcat索要当前用户私人储物柜

HttpSession    session = request.getSession(false);

//2.读取OneServlet存入到共享数据

Object data = session.getAttribute("共享数据名")

如果当前用户在服务端拥有私人储物柜,要求tomcat返回这个储物柜

如果当前用户在服务端尚未拥有私人储物柜,要求tomcat为当前用户创建一个全新的私人储物柜

如果当前用户在服务端拥有私人储物柜,要求tomcat返回这个储物柜

如果当前用户在服务端尚未拥有私人储物柜,要求tomcat返回null

3) 如果当前用户身份【经过登录验证审核判定为合法】,此时应该使用request.getSession()来索要私人储物柜

4)如果当前用户身份尚未确认合法,此时应该使用request.getSession(false)来索要私人储物柜

      在浏览器关闭时,切断了用户与浏览器之间联系但是tomcat是服务端计算机中资源调度软件无法侦测浏览器何时关闭的,因此在浏览器关闭时,服务端是不会销毁用户的session

如果session对象从上次使用完毕到现在空闲时间达到了【最大空闲时间】tomcat认为用户放弃了自己的session.此时tomcat负责销毁

4)网站自行设置session 【最大空闲时间】

        web.xml

        <session-config>

                <session-timeout>5</session-timeout><!--session最大空闲时间5分钟-->

        </session-config>

   因此两个Servlet共享这个请求协议包中请求对象和响应对象

   所以在请求转发过程中两个Servlet可以通过当前请求对象实现数据共享。

   当请求对象实现数据共享时使用内部attribute(ConcurrentHashMap)属性存储共享数据

   此时开发人员将请求对象称为【请求作用域对象】

运行OneServlet

request.setAttribute("共享数据名",共享数据);

request.getRequestDispatcher("/two").forward(request,response)

运行TwoServlet

Object 共享数据 = request.getAttribute("共享数据名");

十八、监听器接口:

1)一组(8个)来自于Servlet规范中接口

2) 监听器接口由项目开发人员负责实现

3) 监听器负责监听作用域对象并在指定事件中调用监听处理方法

存在于服务端计算机内存中,可以在指定条件下为servlet之间提供数据共享服务的对象

2.HttpSession接口  ------会话作用域对象

3.HttpServletRequest接口----请求作用域对象

2) 监听作用域对象存放共享数据变化时刻

1)根据监听目的选择对应接口进行实现

2)重写监听器接口中事件处理方法,这些方法在指定事件产生时由tomcat负责调用

3)web.xml向tomcat注册监听器接口实现类

   监听全局作用域对象生命周期变化时刻

2)在Tomcat运行时,一个网站有且只能有一个全局作用域对象

3)在Tomcat关闭时,自动销毁网站中全局作用域对象

ServletContext application = request.getServletContext();

application.setAttribute("key1",100); //新增共享数据

application.setAttribute("key1",200);//更新共享数据

application.removeAttribute("key1");//移除共享数据

10.浴池拖鞋管理方案:

1.在浴池营业之前,实现购买一批拖鞋

2.在浴池营业时,每当接受一个客人直接提供一双拖鞋

3.在浴池营业时,客人接收服务完毕后需要返还拖鞋,为下一个用户准备

11.数据库连接池管理方案(Connection)

1.在Tomcat启动时,预先创建一定数量的Connection

2.在Tomcat运行时,为用户提供服务时选择一个空闲的Connection为用户使用

3.在Tomcat运行时,用户服务处理完毕后不会销毁Connection。而是重新设置为空闲状态

4.在Tomcat准备关闭时,销毁掉所有Connection

12.数据库连接池管理方案遇到问题:  

1.如何确保连接通道在tomcat运行时一直存在的 (application)

3.如何知晓tomcat何时启动何时关闭(ServletContextListener)

十九、过滤器接口(Filter)

1)Filter接口来自于Servlet规范

2)Filter接口实现类由项目开发人员实现

3)  Filter接口可以在tomcat调用资源文件之前进行拦截  

2.Filter接口作用:

1) 拦截tomcat之后,帮助tomcat检测本次请求合法性

2) 拦截tomcat之后,对本次拦截的请求做增强服务

3.Filter接口实现类开发步骤:3步

1) 创建Filter接口实现类

2)   重写doFilter方法

3)web.xml注册过滤器接口实现类

4.过滤器拦截地址:

      <url-pattern>/文件名.后缀名</url-pattern>

      <url-pattern>/文件夹名/*</url-pattern>

     <url-pattern>*.jpg</url-pattern>

    <url-pattern>/*</url-pattern>

5.恶意登录解决方案----令牌机制

最后奉上视频教程👇,视频观看效果更佳!!走过路过别忘素质三连哦~~

  • 上一篇: java编程基础实战
  • 下一篇: java最基础结构
  • 版权声明


    相关文章:

  • java编程基础实战2024-10-29 08:10:03
  • java基础PHP网2024-10-29 08:10:03
  • java基础程序设计案例教程2024-10-29 08:10:03
  • Java基础语法实现自动售货机2024-10-29 08:10:03
  • c语言有基础学java2024-10-29 08:10:03
  • java最基础结构2024-10-29 08:10:03
  • 找0基础java可信吗2024-10-29 08:10:03
  • java面试基础题csdn2024-10-29 08:10:03
  • java基础过多久可以开发项目2024-10-29 08:10:03
  • java编程基础1502024-10-29 08:10:03