ServletConfig对象
web
能够经过web.xml文件中的<init-param>标签来初始化参数,这些参数会在建立servlet实例时将其封装到ServletConfig对象中,并在调用service中的init方法时将其传递给servlet;this
设置参数:spa
<init-param> <param-name>name</param-name> <param-value>lzj</param-value> <init-param>
定义ServletConfig对象,经过init方法将其传给Servlet以便开发人员对其进行调用;code
private ServletConfig config ;//定义ServletConfig对象,web容器在建立servlet对象时会自动将参数传入; public void init(ServletConfig config) throws ServletException{ this.config = config }//将其传给Servlet; ...... String paramVal = this.config.getInitParameter("name");//获取指定的初始化参数; Enumeration<String>e = config.getInitParameterNames();//获取全部的初始化参数; while (e.hasMoreElements()){ String name = e.nextElement(); String value = config.getInitParameter(name); response.getWriter().print(name + " = " + value+ "<br/>");//打印输出初始化参数;
ServletContext对象xml
web容器在启动时会为每一个web应用程序都建立一个ServletContext对象,全部的Servlet都共享这个对象,所以能够经过这个对象来实现Servlet对象之间的通信,能够经过ServletConfig中的getServletContext的方法来获取SercletContext对象;对象
//在第一个Servlet中获取ServletContext对象并储存数据; ServletContext context = this.getServletConfig.getServletContext(); context.setAttribute("date",date); //在第二Servlet中提取得到data数据; ServletContext context = this.get.ServletContext(); String data = context.getAttribute("data");
除了上面所说的<init-param>能够设置初始化参数,还可用<context-param>标签来设置参数,再用ServletContext方法中的getInitParameter()方法来获取;blog
<context-param> <param-name>name</param-name> <param-value>lzj</param-value> <context-param>//在web.xml设置后初始化参数; ........ ServletContext context = this.getServletContext(); String Paramval = context.getInitParameter("name");//经过getInitParameter方法获取初始化参数;
除了实现数据通信、初始化参数,ServletContext还能够用来实现转发;开发
经过ServletContext对象中的getRequestDispatcher获得RequestDispatcher对象,再调用forward方法实现转发;get
ServletContext context = this.getServletContext(); RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5"); rd.forward(request, response);