<init-param> <param-name>param1</param-name> <param-value>value1</param-value> </init-param> <init-param> <param-name>param2</param-name> <param-value>2</param-value> </init-param> </servlet> 在涉及初始化参数时,有几点需要注意: l 返回值。GetInitParameter的返回值总是一个String。因此,在前一个例子中,可对param2使用Integer.parseInt获得一个int。 l JSP中的初始化。JSP页面使用jspInit而不是init。JSP页面还需要使用jsp-file元素代替servlet-class。 l 缺省URL。初始化参数只在通过它们的注册名或与它们注册名相关的定制URL模式访问Servlet时可以使用。因此,在这个例子中,param1和param2初始化参数将能够在使用URL http://host/webAppPrefix/servlet/InitTest 时可用,但在使用URL http://host/webAppPrefix/servlet/myPackage.InitServlet 时不能使用。 例如,程序清单5-7给出一个名为InitServlet的简单servlet,它使用init方法设置firstName和emailAddress字段。程序清单5-8给出分配名称InitTest给servlet的web.xml文件。 程序清单5-7 InitServlet.java package moreservlets;
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;
/** Simple servlet used to illustrate servlet * initialization parameters. * <P> * Taken from More Servlets and JavaServer Pages * from Prentice Hall and Sun Microsystems Press, * http://www.moreservlets.com/. * © 2002 Marty Hall; may be freely used or adapted. */
public class InitServlet extends HttpServlet { private String firstName, emailAddress;
public void init() { ServletConfig config = getServletConfig(); firstName = config.getInitParameter("firstName"); emailAddress = config.getInitParameter("emailAddress"); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String uri = request.getRequestURI(); out.println(ServletUtilities.headWithTitle("Init Servlet") + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H2>Init Parameters:</H2>\n" + "<UL>\n" + "<LI>First name: " + firstName + "\n" + "<LI>Email address: " + emailAddress + "\n" + "</UL>\n" + "</BODY></HTML>"); } }
程序清单5-8 web.xml(说明初始化参数的摘录) <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <!-- ... --> <servlet> <servlet-name>InitTest</servlet-name> <servlet-class>moreservlets.InitServlet</servlet-class>
上一篇:对软件项目管理的探讨
下一篇:用UML描述Java类(1)
|