web.xml里面可以定义两种参数: 和
(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
1
2 context/param
3 avalible during application
4
(2)servlet范围内的参数,只能在servlet的方法doGet()、doPost()和init()中取得,在web.xml中配置如下:
1
2 MainServlet
3 com.wes.controller.MainServlet
4
5 init/param
6 avalible in servlet init()
7
8 0
9
在servlet中可以通过代码分别取用:
java 代码
1 public voiddoGet(HttpServletRequest request, HttpServletResponse response)2 throwsServletException, IOException {3
4 response.setContentType("text/html");5 PrintWriter out =response.getWriter();6 out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");7 out.println("");8 out.println("
A Servlet");9 out.println(" ");10 out.print(" This is ");11 out.print(this.getClass());12 out.println(this.getServletConfig().getInitParameter("init/param"));13 out.println(this.getServletConfig().getServletContext().getInitParameter("context/param"));14 out.println(", using the GET method");15 out.println(" ");16 out.println("");17 out.flush();18 out.close();19 }通过URL访问该Servlet:
第一种参数只能在servlet的方法中通过this.getServletConfig().getInitParameter("init/param")取得
第二种参数在servlet里面可以通过this.getServletConfig().getServletContext().getInitParameter("context/param")得到
解析:init-param只属于一个servlet所有,所以只有在该Servlet的方法中才能调用。
而context-param属于整个应用程序所有 ,不仅是在servlet中可以得到,jsp文件中也可以得到.
在jsp中config就相当于这里的servletContext,例如在index.jsp中
运行结果:
在action中ServletActionContext.getServletContext().getInitParameter("context/param").