编程语言
首页 > 编程语言> > Javaweb第二天

Javaweb第二天

作者:互联网

Javaweb第二天
Java Web —— ——Servlet基础篇
一、ServletConfig
ServletConfig接口:比如,文件使用的编码,使用Servlet程序的公司等,这些信息可以在web.xml文件中,使用一个或者多个元素,进行配置
当Tomcat初始化一个Servlet时,会将该Servlet的配置信息,封装到一个ServletConfig对象中,通过调用init(ServletConfig config)方法 将ServletConfig对称传递给Servlet
ServletConfig接口常用方法
方法说明 功能描述
String getlnitParameter(String name) 根据初始化化参数返回对应的初始化参数数值
Enumeration getInitParameterNames() 返回一个Enumeration 对象,其中包含了所有的初始化参数名
ServletContext getServletContext() 返回一个代表当前Web应用的ServletContext对象
String getServletName() 返回Servlet的名字,即web.xml中元素的值

二、ServletContext接口
当Servlet容器启动时,会为每个Web应用创建一个唯一的SevlelContext对象代表当前
Web应用,该对象不仅封装了当前Web应用的所有信息,而且实现了多个Servlet之间数据的
共享。接下来,针对ServletContext接口的不同作用分别进行讲解,具体如下。
1.获取Web应用程序的初始化参数
2.在项目的cn.itcast.servlet 包中,创建一个名称为TestServlet03 的类,该类中使用

三、实现多个Servlet对象共享数据
由于一个Web应用中的所有Serlet共享同一个SerletContext)>对象,因此,ServetConer
对象的域属性可以被该Web应用中的所有Servlet访问。在ServletContext接口中定义了分别用于增加、删除、设置ServletContext域属性的4个方法,
ServletContext接口的方法
方法说明 功能描述
Enumeration getAttributeNames() 返回一个Enumeration 对象,该对象包含了所有存放在
Object gettibute(String name) 根据參数指定的属性名返回一个与之匹配的域属性值
void removeAttribute(String name) 根据参数指定的域属性名ServletContext中删除匹配的域属性
void setAttribute(String name,Object obj) 设置ServletContext的域属性,其中name是域属性名,obj是域属性值
代码如下:

lifeServlet
com.monkey1024.servlet.LifeServlet
1


lifeServlet
/life

configServlet01 com.monkey1024.servlet.ConfigTest01 userName monkey1024 password 123456 configServlet01 /config01 package com.monkey1024.servlet;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**

*/
public class ConfigTest01 implements Servlet {

private ServletConfig config;

@Override
public void destroy() {

}

@Override
public ServletConfig getServletConfig() {
    return this.config;
}

@Override
public String getServletInfo() {
    return null;
}

@Override
public void init(ServletConfig servletConfig) throws ServletException {
    System.out.println("init方法中ServletConfig:" + servletConfig);
    this.config = servletConfig;
}

@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    String userName = config.getInitParameter("userName");
    System.out.println("userName=" + userName);
    Enumeration<String> param = config.getInitParameterNames();

    while(param.hasMoreElements()){
        String name = param.nextElement();
        String value = config.getInitParameter(name);
        System.out.println(name + "=" +  value);
    }

    System.out.println("ServletName=" + config.getServletName());

}

}

MySQLDriver com.mysql.jdbc.Driver dbURL jdbc:mysql:

package com.monkey1024.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**

*/
public class ContextTest01 implements Servlet {

private ServletConfig config;

@Override
public void destroy() {

}

@Override
public ServletConfig getServletConfig() {
    return this.config;
}

@Override
public String getServletInfo() {
    return null;
}

@Override
public void init(ServletConfig servletConfig) throws ServletException {
    this.config = servletConfig;
}

@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    ServletContext application = this.config.getServletContext();
    System.out.println("ContextTest01:" + application);

    String driver = application.getInitParameter("MySQLDriver");
    System.out.println(driver);

    String contextPath = application.getContextPath();
    System.out.println("contextPath:" + contextPath);

    //文件在硬盘中的绝对路径
    String realPath = application.getRealPath("FirstServlet");
    System.out.println("realPath:" + realPath);

    //向ServletContext中添加属性
    application.setAttribute("admin", "tiger");
    application.setAttribute("password", 123456);
    //删除password
    application.removeAttribute("password");
}

}

package com.monkey1024.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class ContextTest02 implements Servlet {

private ServletConfig config;

@Override
public void init(ServletConfig config) throws ServletException {
    this.config = config;
}

@Override
public ServletConfig getServletConfig() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    ServletContext application = this.config.getServletContext();
    System.out.println("Context02中的application:" + application);


    String admin = (String)application.getAttribute("admin");
    System.out.println(admin);
    String password = (String)application.getAttribute("password");
    System.out.println(password);
}

@Override
public String getServletInfo() {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void destroy() {
    // TODO Auto-generated method stub

}

}

大数据2005 张林 学号:2020080605015

标签:Javaweb,servlet,javax,第二天,import,ServletConfig,public,String
来源: https://blog.csdn.net/qq_54407592/article/details/121417625