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
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;
/**
- ServletConfig接口
*/
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;
/**
- ServletContext接口
*/
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