• ServletConfig类


    ServletConfig类

    ServletConfig类是Servlet程序的配置信息类

    ServletConfig类的三大作用

    1、可以获取Servlet程序的别名servlet-name的值

    2、获取初始化参数init-param

    3、获取ServletContext对象

    以下为测试代码:

    servlet程序:HelloServlet

    package LWB;
    
    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import java.io.IOException;
    
    public class HelloServlet implements Servlet {
    
        public HelloServlet() {
            System.out.println("1.构造方法");
        }
    
        @Override
        public void init(ServletConfig servletConfig) throws ServletException {
            System.out.println("2.init方法");
            System.out.println("HelloServlet程序的别名是"+servletConfig.getServletName());
            System.out.println("初始化参数username的值是:"+ servletConfig.getInitParameter("username"));
            System.out.println("初始化参数skill的值是:"+servletConfig.getInitParameter("skill"));
            System.out.println(servletConfig.getServletContext());
        }
    
        @Override
        public ServletConfig getServletConfig() {
            return null;
        }
        //service方法是专门用来处理请求和响应的
        @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("3. HelloServlet被访问了");
            //类型转换,因为HttpServletRequest类型有getMethod()方法
            HttpServletRequest httpServletRequest=(HttpServletRequest) servletRequest;
            //获取请求的方法
            String method=httpServletRequest.getMethod();
    //      System.out.println(method);
            if("GET".equals(method)){
                doGet();
            }
            else if("POST".equals(method)){
                doPost();
            }
    
        }
        public void doGet(){
            System.out.println("get请求");
            System.out.println("get请求");
        }
        public void doPost(){
            System.out.println("post请求");
            System.out.println("post请求");
        }
        @Override
        public String getServletInfo() {
            return null;
        }
    
        @Override
        public void destroy() {
            System.out.println("4.destroy方法");
        }
    }
    
    

    web.html中的配置:

        <servlet>
            <!--servlet-name标签给servlet程序起一个别名(一般是类名)-->
            <servlet-name>HelloServlet</servlet-name>
            <!--servlet-class是servlet程序的全类名-->
            <servlet-class>LWB.HelloServlet</servlet-class>
            <init-param>
                <param-name>username</param-name>
                <param-value>root</param-value>
            </init-param>
            <init-param>
                <param-name>skill</param-name>
                <param-value>fire</param-value>
            </init-param>
        </servlet>
    

    结果:

    1.构造方法
    2.init方法
    HelloServlet程序的别名是HelloServlet
    初始化参数username的值是:root
    初始化参数skill的值是:fire
    org.apache.catalina.core.ApplicationContextFacade@68aa82af
    3. HelloServlet被访问了
    get请求
    get请求
    

    一些注意事项:
    ServletConfig是每个Servlet程序创建时,就创建一个对应的ServletConfig对象。

    在其他方法中也可以使用ServletConfig对象,可以用getServletConfig()方法获取,

    重写init方法时,一定要加上super.init()语句

  • 相关阅读:
    el-input 标签中密码的显示和隐藏
    java 使用RedisTemplate实现Redis事务
    mac 安装 Java 环境
    Snowflake 分布式UUID
    lsof 查看端口使用时刻
    nginx.pid" failed (2: No such file or directory)
    解决Redis之MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist
    Linux环境下 Jna 解决so依赖文件not found
    Ubuntu mysql 在线安装
    Linux中为什么执行自己的程序要在前面加./
  • 原文地址:https://www.cnblogs.com/fate-/p/14781259.html
Copyright © 2020-2023  润新知