ServletConfig接口:

 

 

ServletContext接口:

  

  代码详解:

  (1)web.xml配置文件:

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"> <!-- web.xml文件中配置上下文参数,这些信息被自动封装到ServletContext对象中 -->
<context-param>
<param-name>username</param-name>
<param-value>admin</param-value>
</context-param> <context-param>
<param-name>password</param-name>
<param-value>123</param-value>
</context-param> <servlet>
<servlet-name>a</servlet-name>
<servlet-class>com.bjpowernode.javaweb.servlet.AServlet</servlet-class>
<!-- 初始化参数:被封装到ServletConfig对象中 -->
<init-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/bipowernode</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>a</servlet-name>
<url-pattern>/a</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>b</servlet-name>
<servlet-class>com.bjpowernode.javaweb.servlet.BServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>b</servlet-name>
<url-pattern>/b</url-pattern>
</servlet-mapping>
</web-app>

    (2) 前端页面:

 <html>
<head>
<title>ServletConfig接口</title>
</head>
<body>
<a href="/prj-servlet-04/a">AServlet</a>
<br><br>
<a href="/prj-servlet-04/b">BServlet</a>
</body>
</html>

    (3)辅助实体类:

 package com.bjpowernode.javaweb.entity;

 public class User {

     private String usercode;
private String username; public String getUsercode() {
return usercode;
} public void setUsercode(String usercode) {
this.usercode = usercode;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} @Override
public String toString() {
return "User [usercode=" + usercode + ", username=" + username + "]";
} }

    (4) Servlet程序:

 package com.bjpowernode.javaweb.servlet;

 import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Enumeration; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; import com.bjpowernode.javaweb.entity.User; public class AServlet implements Servlet { private ServletConfig config; public void init(ServletConfig config) throws ServletException {
this.config = config;
} public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter(); //获取ServletConfig
ServletConfig config = getServletConfig(); //获取Servlet Name
String servletName = config.getServletName();
out.print("<servlet-name>" + servletName + "</servlet-name>" + "<br><br>"); //获取ServletContext,后面讲什么是ServletContext
ServletContext application = config.getServletContext();
out.print("ASevlet's ServletContext = " + application + "<br><br>"); //通过当前Servlet初始化参数的name获取value
/*String driver = config.getInitParameter("driver");
String url = config.getInitParameter("url");
String user = config.getInitParameter("user");
String password = config.getInitParameter("password");*/ //获取当前Servlet所有初始化参数的name,然后再根据name获取value
@SuppressWarnings("unchecked")
Enumeration<String> anames = config.getInitParameterNames();
out.print("AServlet: <br>");
while(anames.hasMoreElements()){
String name = anames.nextElement();
String value = config.getInitParameter(name);
out.print(name + "=" + value);
out.print("<br>");
}
out.print("<br>"); //获取所有上下文(即当前Servlet的四周环境)初始化参数的name,然后再根据name获取value
@SuppressWarnings("unchecked")
Enumeration<String> snames = application.getInitParameterNames();
out.print("ServletContext: <br>");
while(snames.hasMoreElements()) {
String name = snames.nextElement();
String value = application.getInitParameter(name);
out.print(name + "=" + value);
out.print("<br>");
}
out.print("<br>"); //获取文件绝对路径,参数必须是WebRoot的下一级目录开始写
String realPath = application.getRealPath("/WEB-INF/resources/db.properties");
out.print(realPath + "<br>"); //创建User对象
User user = new User();
user.setUsercode("1231");
user.setUsername("jackson"); //向ServletContext范围中存储User数据
application.setAttribute("userObj", user);
application.setAttribute("time", new Date()); } public void destroy() { } public ServletConfig getServletConfig() {
return config;
} public String getServletInfo() {
return null;
} }
 package com.bjpowernode.javaweb.servlet;

 import java.io.IOException;
import java.io.PrintWriter; 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 BServlet implements Servlet { private ServletConfig config; public void init(ServletConfig config) throws ServletException {
this.config = config;
} public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter(); //init的时候已经获取过了config
out.println("BServlet's ServletConfig = " + config + "<br>"); ServletContext application = config.getServletContext(); Object obj1 = application.getAttribute("userObj");
Object obj2 = application.getAttribute("time");
out.print(obj1 + "<br>");
out.print(obj2 + "<br>");
} public void destroy() { } public ServletConfig getServletConfig() {
return config;
} public String getServletInfo() {
return null;
} }

Servlet笔记4--ServletConfig接口和ServletContext接口的更多相关文章

  1. 1、Servlet 2、ServletConfig 3、ServletContext 4、HttpUrlConnection

    1.Servlet 2.ServletConfig 3.ServletContext 4.HttpUrlConnection 07. 五 / J2EE / 没有评论   一.第一个Servlet的编写 ...

  2. java学习笔记—ServletConfig、ServletContext接口(13)

    ServletConfig是一个由Tomcat服务器在初始化Servlet的时候创建并传递进来的一个对象. 该对象主要描述的时候一个servlet的配置信息. 如: <servlet>  ...

  3. Servlet(7)—ServletConfig接口和SevletContext接口

    ServletConfig接口 1. 可以获取当前Servlet在web.xml中的配置信息(用的不多) 2. 在不使用"硬编码"的情况下,将部署状态信息传递给Servlet.这个 ...

  4. Java EE javax.servlet中的ServletContext接口

    ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet ...

  5. ServletConfig和ServletContext接口

    ServletConfig 在web.xml文件中使用一个或多个init-param元素进行配置后,Tomcat初始化Servlet时,都会将该Servlet的配置信息封装到一个ServletConf ...

  6. servlet的ServletContext接口

    ServletContext Servlet 上下文 每个web工程都只有一个ServletContext对象,也就是不管在哪个servlet里面,获取到的这个ServletContext对象都是同一 ...

  7. day05 Servlet 开发和 ServletConfig 与 ServletContext 对象

    day05 Servlet 开发和 ServletConfig 与 ServletContext 对象 1. Servlet 开发入门 - hello world 2. Servlet 的调用过程和生 ...

  8. Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象

    本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...

  9. JavaEE:Servlet简介及ServletConfig、ServletContext

    Servlet简介 1.Servlet是sun公司提供的一门用于开发动态web资源的技术*静态web资源:固定数据文件*动态web资源:通过程序动态生成数据文件2.Servlet技术基于Request ...

随机推荐

  1. SQLServer 重建索引前后对比 (转)

    https://www.cnblogs.com/mingl12/p/5730178.html

  2. 数据结构开发(10):Linux内核链表

    0.目录 1.老生常谈的两个宏(Linux) 1.1 offsetof 1.2 container_of 2.Linux内核链表剖析 3.小结 1.老生常谈的两个宏(Linux) Linux 内核中常 ...

  3. pyCharm最新2019激活码

    破解补丁激活优点:到期时间为2099年,基本为永久啦 缺点:相对服务器激活麻烦些,但是一共只需要3个步骤,其实并不麻烦 一.下载 https://pan.baidu.com/s/1mcQM8CLUnw ...

  4. linux下怎么修改grub.cfg

    一.grub2的启动配置文件grub.cfggrub2的启动配置文件grub.cfg是/boot/grub/grub.cfg,而不是以前的memu.lst.如果你是多系统,有Ubuntu和window ...

  5. 前端学习 -- 内联框架iframe

    内联框架iframe 可以向一个页面中引入其他的外部页面 内联框架中的内容不会被搜索引擎所检索,所以开发中尽量不要使用内联框架 <iframe></iframe> 属性: sr ...

  6. Android Studio中多项目共享Library

    FAQ: as的projectA中有一个commonLib的源码库模块,projectB要调用其中的commonLib, 这个有没有方案?不用手动拷贝aar的   方案1. 采用gradle配置参数方 ...

  7. MVP, MVVM In Android

    MVP, MVVM In Android(新手必看)安卓MVP的理解,看完你就会用mvp了 - zq019的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/zq019 ...

  8. Eclipse – Java.Lang.OutOfMemoryError: Java Heap Space(转)

    In Eclipse IDE, if your program is consuming a lot of memory (loading big data) like this : List< ...

  9. 【枚举&数据结构】【P2484】 [SDOI2011]打地鼠

    Description 给定一个网格,每个格子上有一个数字.一次操作可以将 \(r~\times~c\) 的一块矩形的数字减去 \(1\).必须保证这个矩形中的数全部为正.每次操作的 \(r\) 和 ...

  10. 共享内存shm*(生产者和消费者)

    //heads.h #ifndef HEAD_H #define HEAD_H #include <iostream> #include <sys/shm.h> //share ...