ServletContext

前述:ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。
request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。
所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息

【ServletContext的5大作用】

1.获取web的上下文路径

  String getContextPath();        //返回当前页面所在应用的名字

       String .getRealPath(); //以web项目根目录WebRoot作为参考点获取文件在本地的绝对路径

2.获取全局的参数

  String getInitParameter(String name); //根据全局参数名获取定义在web.xml文件中指定的全局参数值

  Enumeration getInitParameterNames(); //获取web.xml中所有的全局参数名构成的集合

3.和域对象相关的

  void setAttribute(String name,Onject object);   //向web.xml添加全局参数名和全局参数值

  Object getAttribute(String name); //获取web.xml中指定全局参数名的参数值

  void removeAttribute(String name);   //移除web.xml中指定全局参数名的参数值

  域对象(域对象就是在不同资源之前来共享数据,保存数据,获取数据)

  ServletContext是我们学习的第一个域对象(Servlet共有三个域对象ServletContext、HttpServletRequest、HttpSession)

4. 请求转发的

  RequestDispatcher getRequestDispatcher(String path);    //用于连接跳转页面

  在Servlet跳转页面:

  4.1请求重定向(你找我借钱,我没有,你自己去找他借钱)

    1.地址栏会改变,变成重定向到的地址

    2.可以跳转到项目内的资源,也可以跳转项目外的资源

    3.浏览器向服务器发出两次请求,那么不能使用请求来作为域对象来共享数据。

本方式特点:可以让用户知道自己已经跳转到其他页面了(根据地址栏)  一般用于登录后跳转,或商城购买后跳转购物车,但是除了这类情况以外最好不要用请求重定向,分情况使用

  4.2请求转发(你找我借钱,我没有,我帮你去向他借钱)

    1.地址栏不会改变

    2.只能跳转到项目内的资源,不能跳转项目外的资源。

    3.浏览器向服务器发出一次请求,那么可以使用请求作为域对象共享数据。

本方式特点:重新加载原始页面,地址栏内容不变,页面内容更新,弊端,如果商城购买后用请求转发这种方式跳转,相当于二次购买,分情况使用

5.读取web项目的资源文件

  String getRealPath(String path); //以web项目根目录WebRoot作为参考点获取文件在本地的绝对路径

  InputStream getResourceAsStream(String path); //以web项目根目录WebRoot作为参考点获取文件的输入流

  URL getResource(String path); //常配合 classes目录下一个类.class.getClassLoader().getResource("db.properties").getPath();   用于获取放在classes根目录下的配置文件的本地绝对地址



源地址:https://www.cnblogs.com/HigginCui/p/5970186.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值