<servlet> <servlet-name>InitparamServlet</servlet-name> <servlet-class>com.dapp.InitParemServlet</servlet-class>
<init-param> <param-name>helloween</param-name> <!--第一个参数--> <param-value>password</param-value> </init-param>
<init-param> <param-name>admin</param-name> <!--第二个参数--> <param-value>admin</param-value> </init-param>
<init-param> <param-name>babyface</param-name> <!--第三个参数--> <param-value>babyface</param-value> </init-param> </servlet>
<servlet-mapping> <servlet-name>InitparamServlet</servlet-name> <url-pattern>/Servlet/InitparamServlet</url-pattern> </servlet-mapping>
import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class InitParemServlet extends HttpServlet{
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8");
response.setContentType("text/html"); PrintWriter out=response.getWriter(); out.print("<!DOCTYPE html PUBLIC\" -//W3C//DTD HTML 4.01 Transitional//EN\">"); out.print("<HTML>"); out.print("<head><title>请登录查看Notice文件</title></head>"); out.print("<body>"); out.print("<form action='"+request.getRequestURI()+" ' method='post'>"); out.print("账户:<input type='text' value='username' style='width:200px'><br/>"); out.print("密码:<input type='password' value='password' style='width:200px'><br/>");
out.print("<input type='submit' value='登录'>"); out.print("</form>");
out.print("</body>"); out.print("<HTML>"); out.flush(); out.close(); }
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username=request.getParameter("username"); String password=request.getParameter("password");
Enumeration params=this.getInitParameterNames(); //得到web.xml的多个参数 while(params.hasMoreElements()){ String usernameParam=(String)params.nextElement();//用户名 String passwordParam=getInitParameter(usernameParam);//密码
if(usernameParam.equalsIgnoreCase(username) && passwordParam.equals(password)){ request.getRequestDispatcher("/WEB-INF/notice.html").forward(request, response); return; } } this.doGet(request, response);//username,password不匹配 } } //取得单个参数值
public void init() throws ServletException {
String driverClass = getInitParameter("driverClass"); //调用的是httpservlet的父类GenericServlet的方法getInitParameter() url = getInitParameter("url"); user = getInitParameter("user"); password = getInitParameter("password"); try { Class.forName(driverClass); } catch (ClassNotFoundException e) { throw new ServletException("加载数据库驱动失败!"); } } public void init() throws ServletException { ServletContext sc = getServletContext(); String driverClass = sc.getInitParameter("driverClass"); //调用的是ServletContext的getInitParameter()方法, url = sc.getInitParameter("url"); user = sc.getInitParameter("user"); } String s1 = getServletConfig().getInitParameter("P1"); //取得是servlet的初始值 String s2 = getServletContext().getInitParameter("P1"); //取得是application中的初始值 String s3 = getServletConfig().getServletContext().getInitParameter("P1"); //取得是application中的初始值 String s4 = getInitParameter("P1"); //取得是servlet的初始值 getServletContext()获得的是 <context-param> </context-param>配置的参数信息 getServletConfig()获得的是 <init-param> </init-param>配置的参数信息 getServletContext().相当于Application getServletConfig().某个servlet的配置 getServletContext()应用于整个web App,而getServletConfig()仅应用于当前Servlet。 但是ServletConfig对象拥有ServletContext的引用。所以可以通过getServletConfig()来获得web App的 初始值。 |
|