Java登陆第二十九天——ServletConfig和ServletContext
1.Java登陆第一天——Mysql安装2.Java登陆第一天——Maven入门3.Java登陆第二天——SQL之DDL4.Java登陆第二天——SQL之DML5.Java登陆第三天——SQL之DQL(一)基础查询、聚合函数、分组查询6.Java登陆第四天——SQL之DQL(二)分页查询、多表查询、自连接7.Java登陆第五天——SQL之DQL(三)子查询8.Java登陆第六天——SQL之表复制,表去重,合并查询9.Java登陆第六天——SQL之SQL(四)外连接10.Java登陆第六天——SQL之约束11.Java登陆第七天——SQL之事务12.Java登陆第七天——SQL之事务隔离13.Java登陆第八天——SQL之DCL14.Java登陆第九天——JDBC(一)DriverManager、Connection、Statement15.Java登陆第十天——JDBC(二)ResultSet16.Java登陆第十一天——JDBC(三)PreparedStatement、CLOB、BLOB17.Java登陆第十二天——网络编程(一)网络的概念18.Java登陆第十二天——网络编程(二)InetAddress、Socket19.Java登陆第十三天——网络编程(三)DatagramSocket20.Java登陆第十四天——网络编程(四)韩顺平网络编程21.Java登陆第十五天——网络编程(四)韩顺平网络编程22.Java登陆第十六天——网络编程(四)韩顺平网络编程23.Java登陆第十七天——网络编程(四)韩顺平网络编程完成24.Java登陆第十七天——正则表达式25.Java登陆第十八天——Java8之Lambda表达式26.Java登陆第十九天——HTML规范与语法27.Java登陆第二十天——HTML常用标签28.Java登陆第二十一天——CSS29.Java登陆第二十二天——JavaScript入门30.Java登陆第二十三天——JavaScript对象、JSON、事件31.Java登陆第二十四天——JavaScriptBOM、DOM32.Java登陆第二十五天——Tomcat、认识JavaWeb项目33.Java登陆第二十六天——Http34.Java登陆第二十六天——Servlet35.Java登陆第二十七天——多种方法Servlet映射、Content-Type36.Java登陆第二十八天——Servlet生命周期37.Java登陆第二十九天——Servlet继承关系,service和doGet的区别
38.Java登陆第二十九天——ServletConfig和ServletContext
39.Java登陆第二十九天——HttpServletRequest和HttpServletResponse40.Java登陆第二十九天——请求转发和响应重定向41.Java登陆第三十天——Cookie和Session42.Java登陆第三十天——域对象43.Java登陆第三十一天——Filter44.Java登陆第三十一天——监听器45.Java登陆第三十二天——AJAX和异步46.Java登陆第三十二天——前端工程化47.Java登陆第三十二天——ES6(一)let、const、模板字符串、解构表达式、箭头函数48.Java登陆第三十三天——ES6(二)reset、spread、Class类语法糖49.Java登陆第三十三天——ES6(二)浅拷贝、深拷贝50.Java登陆第三十三天——ES6(二)模块、模块化51.Java登陆第三十四天——Node.js安装、npm配置、npm命令52.Java登陆第三十四天——使用Vite创建工程化的Vue3项目53.Java登陆第三十五天——Vite+Vue3目录结构、.vue文件理解(SFC)54.Java登陆第三十五天——VUE初始页面解析55.Java登陆第三十六天——VUE3引入CSS56.Java登陆第三十六天——VUE3响应式入门、setup语法糖57.Java登陆第三十七天——VUE3插值表达式、文本渲染、属性渲染、事件绑定58.Java登陆第三十七天——VUE3响应式基础、条件渲染、列表渲染59.Java登陆第三十八天——VUE3双向绑定,监听器(侦听器)60.Java登陆第三十八天——VUE3生命周期、钩子函数、组件拼接、组件传参(组件通信)61.Java登陆第三十九天——Router路由入门62.Java登陆第三十九天——Router编程式路由,路由传参63.Java登陆第四十天——Router路由守卫64.Java登陆第四十天——Router路由守卫练习65.Java登陆第四十一天——Promise、async关键字、await关键字66.Java登陆第四十一天——Axios67.Java登陆第四十二天——Axios拦截器68.Java登陆第四十二天——跨域69.Java登陆第四十三天——Pinia70.Java登陆第四十四天——跟写微头条遇到的问题ServletConfig
ServletConfig是web.xml中,Servlet的初始化参数对象(每个Servlet都各自拥有至少一个ServletConfig对象)
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--
每一个Servlet都可以配置多个初始化参数
-->
<servlet>
<servlet-name>Test3</servlet-name>
<servlet-class>com.example.JavaWeb.TestServlet3</servlet-class>
<!-- 初始化参数定义在Servlet标签之内 -->
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Test3</servlet-name>
<url-pattern>/Test3</url-pattern>
</servlet-mapping>
</web-app>
查看ServletConfig源码
Servlet在初始化阶段,Tomcat会自动生成ServletConfig对象并传入init(ServletConfig config)方法
ServletConfig是一个接口
public interface ServletConfig {
String getServletName();
ServletContext getServletContext();
String getInitParameter(String var1);
Enumeration<String> getInitParameterNames();
}
方法名 | 描述 |
---|---|
String getServletName() | 获取Servlet名称(web.xml中servlet-name) |
ServletContext getServletContext() | 获取ServletContext对象(马上就介绍) |
String getInitParameter(String var1) | 根据初始化参数名获取值(web.xml中param-name) |
Enumeration |
获取初始化参数迭代器(早期的迭代器就是Enumeration) |
读取初始化参数栗子
web.xml就是上面那个
TestServlet3
public class TestServlet3 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletConfig servletConfig = getServletConfig();//GenericServlet类提供的方法
Enumeration<String> es = servletConfig.getInitParameterNames();//早期的迭代器
while (es.hasMoreElements()) {
String s = es.nextElement();
System.out.println("param-name:"+s);
System.out.println("param-value:"+getInitParameter(s));
}
}
}
客户端请求URL:http://localhost:8080/JavaWeb_war_exploded/Test3
//控制台输出
param-name:key
param-value:value
在注解中设置初始化参数
TestServlet3
@WebServlet(
urlPatterns = "/Test3",
initParams = {@WebInitParam(name = "key",value = "value")}
)
public class TestServlet3 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletConfig servletConfig = getServletConfig();//GenericServlet类提供的方法
Enumeration<String> es = servletConfig.getInitParameterNames();//早期的迭代器
while (es.hasMoreElements()) {
String s = es.nextElement();
System.out.println("param-name:"+s);
System.out.println("param-value:"+getInitParameter(s));
}
}
}
客户端请求URL:http://localhost:8080/JavaWeb_war_exploded/Test3
//控制台输出
param-name:key
param-value:value
ServletContext
-
ServletContext是web.xml中,项目的初始化参数对象(每个项目仅有一个初始化参数对象)
-
ServletConfig是web.xml中,Servlet的初始化参数对象(每个Servlet都各自拥有至少一个ServletConfig对象)
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>key</param-name>
<param-value>value</param-value>
</context-param>
</web-app>
可以通过ServletConfig的getServletContext()方法获取ServletContext
@WebServlet(
urlPatterns = "/Test3",
initParams = {@WebInitParam(name = "key",value = "value")}
)
public class TestServlet3 extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletConfig servletConfig = getServletConfig();//GenericServlet类提供的方法
Enumeration<String> es = servletConfig.getInitParameterNames();//早期的迭代器
while (es.hasMoreElements()) {
String s = es.nextElement();
System.out.println("param-name:"+s);
System.out.println("param-value:"+getInitParameter(s));
}
System.out.println("==============================");
ServletContext servletContext = getServletConfig().getServletContext();
Enumeration<String> ess = servletContext.getInitParameterNames();
while (ess.hasMoreElements()) {
String s = ess.nextElement();
System.out.println("context-name:"+s);
System.out.println("context-value:"+getInitParameter(s));
}
}
}
客户端请求URL:http://localhost:8080/JavaWeb_war_exploded/Test3
//控制台输出
param-name:key
param-value:value
==============================
context-name:key
context-value:value
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律