- 1.ServletContext对象之获取web项目信息
- 2.利用:ServletContext:获取公共属性
- 3.ServletContext:获取读取web项目下的文件:
- 4.ServletContext:ServletContext对象之作为域对象存取数据:
在:服务器目录conf下的:web.xml文件里面:有
text //索引text/plain //文本类型
创建一个类:
ServletContext servletContext=this.getServletContext();//创建ServletContext对象
String mineType=servletContext.getMimeType("aa.txt");//aa.text,文本类型是txt ,servletContext.getMimeType();对象的:API,返回类型
System.out.println(mineType);
package com.example.demo16;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
public class HelloSerrvlet3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
resp.getWriter().println("helloWolrd!");
ServletConfig config=this.getServletConfig();//创建对象ServletConfig
// String username=config.getInitParameter("username");//得到配置里面的值
// String password=config.getInitParameter("password");//也得到了
// System.out.println(username+" "+password);
Enumeration names=config.getInitParameterNames();//获得所有参数值
while (names.hasMoreElements()){
String name=names.nextElement();
String value=config.getInitParameter(name);
System.out.println(name+" "+value);
}
String servletName=config.getServletName();//获类取名称
System.out.println(servletName);
ServletContext servletContext=this.getServletContext();
String mineType=servletContext.getMimeType("aa.txt");//aa.text,文本类型是txt
System.out.println(mineType); //就会打印出类型
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
2.利用:ServletContext:获取公共属性
配置:公共属性web.xml中
username root password 123
在 doGet(){},增加下面代码:
String username=servletContext.getInitParameter("username");
String password=servletContext.getInitParameter("password");
System.out.println(username+" "+password); //获得值
Enumeration names=servletContext.getInitParameterNames();
while (names.hasMoreElements()) { //遍历
String name=names.nextElement();
String value=config.getInitParameter(name);
System.out.println(name+" "+value);
}
效果:
xml文件配置:
3.ServletContext:获取读取web项目下的文件:username root password 123 demo2 com.example.demo16.HelloServlet2 1 demo2 /hello demo3 com.example.demo16.HelloSerrvlet3 username root password abc demo3 /helloo
创建类:HelloServlet4
WEB-INF/dp.properties:(IDEA中)
要放在:WEB-INF下面:建立dp.properties文件
那么:就会在:服务器目录:有WEB-INF/dp.properties.
就可以服务器被访问到
InputStream is=this.getServletContext().getResourceAsStream("WEB-INF/dp.properties");
package com.example.demo16;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class HelloServlet4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
resp.getWriter().println("helloworld");
text();
}
protected void text() throws IOException {
Properties properties=new Properties();//创建文件对象
InputStream is=this.getServletContext().getResourceAsStream("WEB-INF/dp.properties");//这里的路径,
properties.load(is);
String driverClassName=properties.getProperty("driverClassName");
String url=properties.getProperty("url");
String password=properties.getProperty("password");
String usernane=properties.getProperty("username");
System.out.println(driverClassName);
System.out.println(url);
System.out.println(password);
System.out.println(usernane);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
xml配置:
demo4 com.example.demo16.HelloServlet4 1 demo4 /htrt
效果:
在:init(){}放:
this.getServletContext().setAttribute(“name”,“张三”);
在doget(){}放:
String name= (String) this.getServletContext().getAttribute(“name”);
System.out.println(name);
结果:打印出张三
另外:在其他的类也可以使用:
this.getServletContext().getAttribute(“name”);
System.out.println(name);//打印出数据
package com.example.demo16;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class HelloServlet4 extends HttpServlet {
@Override
public void init() throws ServletException {
super.init();
this.getServletContext().setAttribute("name","张三");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
resp.getWriter().println("helloworld");
String name= (String) this.getServletContext().getAttribute("name");
System.out.println(name);
//text();
}
protected void text() throws IOException {
//Properties properties=new Properties();//创建文件对象
//InputStream is=this.getServletContext().getResourceAsStream("WEB-INF/dp.properties");//这里的路径,
// properties.load(is);
//String driverClassName=properties.getProperty("driverClassName");
// String url=properties.getProperty("url");
//String password=properties.getProperty("password");
// String usernane=properties.getProperty("username");
// System.out.println(driverClassName);
//System.out.println(url);
//System.out.println(password);
//System.out.println(usernane);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}



