• java_第一年_JavaWeb(3)


    ServletConfig对象

    可以通过web.xml文件中的<init-param>标签来初始化参数,这些参数会在创建servlet实例时将其封装到ServletConfig对象中,并在调用service中的init方法时将其传递给servlet;

    设置参数:

    <init-param>
        <param-name>name</param-name>
        <param-value>lzj</param-value>
    <init-param>

    定义ServletConfig对象,通过init方法将其传给Servlet以便开发人员对其进行调用;

    private ServletConfig config ;//定义ServletConfig对象,web容器在创建servlet对象时会自动将参数传入;
    public void init(ServletConfig config) throws ServletException{
        this.config = config
    }//将其传给Servlet;
    ......
    String paramVal = this.config.getInitParameter("name");//获取指定的初始化参数;
    Enumeration<String>e = config.getInitParameterNames();//获取所有的初始化参数;
    while (e.hasMoreElements()){
        String name = e.nextElement();
        String value = config.getInitParameter(name);
        response.getWriter().print(name + " = " + value+ "<br/>");//打印输出初始化参数;

    ServletContext对象

    web容器在启动时会为每个web应用程序都创建一个ServletContext对象,所有的Servlet都共享这个对象,因此可以通过这个对象来实现Servlet对象之间的通讯,可以通过ServletConfig中的getServletContext的方法来获取SercletContext对象;

    //在第一个Servlet中获取ServletContext对象并储存数据;
    ServletContext context = this.getServletConfig.getServletContext();
    context.setAttribute("date",date);
    //在第二Servlet中提取获得data数据;
    ServletContext context = this.get.ServletContext();
    String data = context.getAttribute("data");

    除了上面所说的<init-param>可以设置初始化参数,还可用<context-param>标签来设置参数,再用ServletContext方法中的getInitParameter()方法来获取;

    <context-param>
        <param-name>name</param-name>
        <param-value>lzj</param-value>
    <context-param>//在web.xml设置后初始化参数;
    ........
    ServletContext context = this.getServletContext();
    String Paramval = context.getInitParameter("name");//通过getInitParameter方法获取初始化参数;

    除了实现数据通讯、初始化参数,ServletContext还可以用来实现转发;

    通过ServletContext对象中的getRequestDispatcher得到RequestDispatcher对象,再调用forward方法实现转发;

    ServletContext context = this.getServletContext();
    RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5");
    rd.forward(request, response);
  • 相关阅读:
    Notice: Only variable references should be returned by reference(PHP版本兼容性问题)
    App 开发:Hybrid 架构下的 HTML5 应用加速方案
    Hybrid App是如何实现网页语言与程序语言的混合?谁占主体?
    前端切图+网页排版的注意事项和经验分享
    php提示 Notice: Use of undefined constant name
    如何预测一个互联网产品的未来—一套关于产品的数学模型
    以 MAMP 为 Mac OS X 安装并设置 PHP开发环境
    关于EINTR错误的理解【转】
    socket中的函数遇见EINTR的处理【转】
    Ubuntu10.04中利用V4L2读取摄像头数据并保存成文件【转】
  • 原文地址:https://www.cnblogs.com/lzj-learn/p/11608206.html
Copyright © 2020-2023  润新知