欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ServletConfig与ServletContext

程序员文章站 2022-05-08 13:36:29
...

ServletConfig
在继承了HttpServlet类后,可以通过getServletConfig方法获取当前servlet的一些信息,如servlet别名,servlet的init-param等

    <servlet>
        <servlet-name>ServletConfig1</servlet-name>
        <servlet-class>com.cn.app.service.ServletConfigTest</servlet-class>
        <init-param>
            <param-name>user</param-name>
            <param-value>zs</param-value>
        </init-param>
        <init-param>
            <param-name>age</param-name>
            <param-value>12</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletConfig1</servlet-name>
        <url-pattern>/s3</url-pattern>
    </servlet-mapping>

在ServletConfigTest这个类中就可以通过getInitParameter方法获取

    @Override
    public void init() throws ServletException {
        //servletConfig对象可以获取当前这个Servlet的别名,以及init-param
        System.out.println("当前serletname" + getServletConfig().getServletName());
        System.out.println("name" + getServletConfig().getInitParameter("user"));
        System.out.println("name" + getServletConfig().getInitParameter("age"));
    }

ServletContext
ServletContext是一个域对象,每个web工程只有一个,可以存值,取值等,所有servlet都可以获取ServletContext域对象中的值,此外,ServletContext还可以获取web.xml配置文件中的init-param

  <context-param>
        <param-name>redis-ip</param-name>
        <param-value>192.168.1.7</param-value>
    </context-param>

    <context-param>
        <param-name>redis-port</param-name>
        <param-value>6379</param-value>
    </context-param>

在servlet中,调用getServletContext()方法得到ServletCOntext对象
,再调用getInitParameter就可以获取域对象的初始化参数。供整个web工程使用。


        ServletContext servletContext = getServletConfig().getServletContext();
        //servletContext对象一个web工程只有一个,是一个域对象
        //通过该对象可以获取web工程本地磁盘目录,其实idea就是拷贝了一些
        //tomcat副本,然后设置path,还可以获取全局配置参数
        String ip = servletContext.getInitParameter("redis-ip");
        String port = servletContext.getInitParameter("redis-port");

request与response

  • req对象设置字符集
    req.setCharectEncoding(“utf8”),注意,这个方法一定要在获取参数之前使用。

  • resp对象设置响应字符集
    resp.setCharectEncoding(“utf8”),注意这个方法一定要在获取流对象之前调用。

resopse对象有两个方法供回传数据,resp.getWriter()与resp.getOutputStream(),一个用于回传字符串,文本等,一个用于回传二进制数据的。两个流对象同时只能获取一个,否则会报错。

相关标签: web java