分享

servet取得web.xml的初始值

 真爱图书 2012-04-17

<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的
    初始值。

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多