本人个人学习笔记 未经授权不允许转发
JavaWeb笔记(五)---- ServletContext 目录
1. 共享数据
2. 获取初始化参数
3. 请求转发
4. 读取资源文件
1. 共享数据
Web容器在启动时会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用。他可以起到共享数据的作用。在一个servlet中保存的数据可以被另一个servlet拿到
在java目录下创建两个类一个叫 GetServletContext 另一个叫 SetServletContext
GetServletContext:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置显示的页面类型和字符集utf-8
resp.setContentType("text/html;charset=utf-8");
ServletContext context = this.getServletContext();
String username = (String) context.getAttribute("username");
resp.getWriter().print("名字:"+username);
}
SetServletContext:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
String username = "张三";
context.setAttribute("username",username); //将一个数据保存在了ServletContext中
}
2.获取初始化参数
在xml文件中添加初始化参数
url www.baidu.com
使用getInitParameter获取初始化参数
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
ServletContext context = this.getServletContext();
String text = (String) context.getInitParameter("url");
resp.getWriter().print(text);
}
3.请求转发
网页显示路径不会变化 但是内容会改变
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
context.getRequestDispatcher("/getp").forward(req,resp);
}
4.读取资源文件
Properties:
- 在java目录下创建aa.properties
- 在resource目录下创建db.properties
内容:
username=Admin password=123456
两个properties都被打包到了 classes (类路径下)
src/main/resources
****.xml
true
src/main/java
****.xml
true
对应程序读取properties
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
ServletContext context = this.getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/classes/db.properties");
Properties prop = new Properties();
prop.load(is);
String username = (String) prop.getProperty("username");
String pwd = (String) prop.getProperty("password");
resp.getWriter().print(username+":"+pwd);
}



