1、Servlet初学
一个Servlet可以有多个ServletMapping对其映射
若带*号,只有这两种写法合法
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init");
String user = servletConfig.getInitParameter("user");
System.out.println("user:" + user);
Enumeration<String> names = servletConfig.getInitParameterNames();//通过方法获得Enumeration对象
while(names.hasMoreElements()) {//再通过遍历获得值
String name = names.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("^^name:" + name + " value:" + value);
}
}
(3)下一方法得到Servlet的名字(此处为helloServlet,不常用)
8、ServletContext
(1)、可以由ServletConfig获取
ServletContext servletContext = ServletConfig.getServletContext();
(2)、该对象代表当前WEB应用: 可以认为ServletContext是当前WEB应用的大管家,可以从中获取当前WEB应用各个方面 的信息
1)获取当前WEB应用的初始化参数
<!-- 配置当前WEB应用的初始化参数 -->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value> <!--全局的参数-->
</context-param>
<context-param>
<param-name>jdbcURL</param-name>
<param-value>jdbc:mysql:///first</param-value>
</context-param>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>cn.edu.zzuli.HelloServlet</servlet-class>
<!-- 配置和映射servlet初始化参数 -->
<init-param>
<param-name>user</param-name> <!--局部的参数只能让helloservlet用-->
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
(5)获取当前WEB应用的某一个文件在服务器上的绝对路径而不是部署前的路径
getRealPath(String path)
String realPath = servletContext.getRealPath("/node.txt");
//location不是 D:\java\TEXTS\day-21\node.txt
System.out.println(realPath);
命令行输出:
(6)获取当前WEB应用的名称
getContextPath()
String name3 = servletContext.getContextPath();
System.out.println(name3);
结果为:
(7)获取当前WEB应用某一个文件的输入流
getResourceAsStream(String path):path的/为当前WEB应用的根目录。
try {
ClassLoader classLoader = getClass().getClassLoader();
InputStream is = classLoader.getResourceAsStream("jdbc.properties");
System.out.println("1, " + is);
} catch (Exception e) {
e.printStackTrace();
}
try {
InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
System.out.println("2, " + is2);
} catch (Exception e) {
e.printStackTrace();
}
(8)和attribute相关的方法
以后补充