getServletContext是凌驾于所有Servlet之上的,所以里面的数据可以实现共享,存储数据的形式使用键值对的形式。
HelloServlet.java中的代码
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username="胡汉三";
ServletContext context = this.getServletContext();
//ServletContext 通过键值对的形式存储数据 多个servlet调用的ServletContext是同一个
context.setAttribute("username",username);
}
GetHello.java中的代码
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
//返回值是object类型 高转低需要进行强转
String username = (String) context.getAttribute("username");
//设置响应的编码格式
resp.setContentType("text/html");
//设置响应的编码字符集
resp.setCharacterEncoding("utf-8");
resp.getWriter().print("汉奸"+username);
}
配置web.xml
hello
com.zhang.servlet.HelloServlet
hello
/hello
getHello
com.zhang.servlet.GetHello
getHello
/getHello
启动Tomcat访问
如果直接访问getHello,返回的结果是null,因为此时的getServletContext还没有存放数据!
先访问hello,然后在此访问getHello,就可以了
自己的理解!!!!!!!1



