什么是ServletContext?
1.一个web项目对应一个ServletContext,它代表当前web项目的信息
2.还可以作为最大的域对象在整个项目运行期间共享数据
共享数据的三步曲
1.HelloServlet类(用于向ServletContext写数据)
package com.guo;
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 {
ServletContext servletContext = this.getServletContext();
servletContext.setAttribute("name","荣豪");
System.out.println("写成功!!!");
}
}
2.GetServlet获取信息类
package com.guo;
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 servletContext = this.getServletContext();
String attribute = (String) servletContext.getAttribute("name");
System.out.println("读取的信息:"+attribute);
//响应到浏览器(处理乱码问题(配置类型和编码))
resp.setContentType("text/html");//响应类型
resp.setCharacterEncoding("UTF-8");//响应的编码格式
resp.getWriter().println(attribute);//响应信息显示页面
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
3.配置web.xml的映射
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--Servlet注册-->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.guo.HelloServlet</servlet-class>
</servlet>
<!--配置映射-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>get</servlet-name>
<servlet-class>com.guo.GetServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>get</servlet-name>
<url-pattern>/get</url-pattern>
</servlet-mapping>
</web-app>
写成功!!!
读取的信息:荣豪