Servlet之ServletContext创建对象和作用

  • Post author:
  • Post category:其他

1,创建ServletConfig对象

ServletConfig对象叫servlet上下文对象。 一个网站只会创建一个ServletContext对象。代表的是整个网站的环境信息。

获取ServletContext对象必须要先获取ServletConfig对象,由此对象才可以获取ServletContext对象。

         伪代码:此伪代码能够说明为什么必须先获取ServletConfig对象。

                            ServletContext对象:启动的时候创建

                            ServletConfig对象:调用init方法之前创建的,在ServletContext对象创建之前

                                    

                                     publicServletCofig{

                                               ServletContextcontext;

                                               publicServletConfig(context){

                                                        this.context=context;

                                               }

                                               publicServetContxt getServletContext(){

                                                        return context;

                                               }

                                     }    

                                     ServletConfigconfig = new ServletConfig(context);

                            publicMyServlet extends HttpSevlet{

                                               publlicinit(ServletConfig config){

                                                        SevletContextcontext= config. getServletContext();

                                  }

                            }

2,ServletContext对象的作用(5个)

                            1)获取web的上下文路径

                                               java.lang.StringgetContextPath()                 

                            2)获取全局参数

                                               java.lang.StringgetInitParameter(java.lang.String name)           

                                               java.util.EnumerationgetInitParameterNames() 

                            3)和域对象相关的

                                               voidsetAttribute(java.lang.String name, java.lang.Object object) 

                                               java.lang.ObjectgetAttribute(java.lang.String name) 

                                               voidremoveAttribute(java.lang.String name)

 

                                               什么是域对象?

                                               域对象在不同的资源之间来共享数据。保存数据,获取数据。

                                    

                                              ServletContext就是我们学习的第一个域对象。

                                               Servlet三个域对象:

                                                                 ServletContext

                                                                 HttpServletRequest

                                                                 HttpSession                                                                                                

                            4)请求转发的

                                              RquestDispatcher getRequestDispatcher(java.lang.Stringpath)

                                     在servlet跳转页面:

                                     请求重定向:

                                               1)地址栏会发送改变,变成重定向到的地址。

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

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

 

                                     请求转发:

                                               1)地址栏不会改变。

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

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

                                   

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

                                               java.lang.StringgetRealPath(java.lang.String path) 

                                               java.io.InputStreamgetResourceAsStream(java.lang.String path) 

                                               java.net.URLgetResource(java.lang.String path)  


版权声明:本文为guyan1111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。