web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用
-
共享数据 : 我在这个Servlet中保存的数据,可以在另外一个servlet中拿到 ;
servletContext
放置数据类
package com.karl.servlet;
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;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// this.getInitParameter();//初始化参数
// this.getServletConfig();//servlet配置
// this.getServletContext();//servlet上下文
ServletContext context = this.getServletContext();
String username = "karl";//数据
context.setAttribute("username", username);//将一个数据保存到了servletContext中
}
}
读取数据类
package com.karl.servlet;
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;
public class GetServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
String username = (String)context.getAttribute("username");
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
resp.getWriter().println("名字:"+username);
}
}
<!--可以配置一些web应用初始化参数-->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//读取初始化参数
ServletContext context = this.getServletContext();
String url = (String)context.getInitParameter("url");
resp.getWriter().println(url);
}
转发和重定向
doGet(){
...
// RequestDispatcher requestDispatcher = context.getRequestDispatcher("");//转发的路径
// requestDispatcher.forward(req,resp);//实现转发
context.getRequestDispatcher("").forward(req, resp);
...
}

读取资源文件
poperties


思路: 需要一个文件流;
网友评论