学习视频:https://www.bilibili.com/video/BV12J411M7Sj?p=10
servlet 中的ServletContext接口
1.ServletContext可以用来实现两个功能:
1.获取web.xml的信息。(基本不用)
2.实现两个servlet的数据共享。
2.下面来实现用servlet实现数据的共享
//hello.java
public class hello extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
String username = "郭浩";
context.setAttribute("username",username); //将变量username的值保存在context的空间中
}
}
//Get.java
public class GetServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取servlet对象
ServletContext context = this.getServletContext();
String username = (String) context.getAttribute("username");
//实现支持中文
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
resp.getWriter().print("名字"+username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
将网站地址映射写入web.xml
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.hao.servlet.hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/he</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Get</servlet-name>
<servlet-class>com.hao.servlet.GetServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Get</servlet-name>
<url-pattern>/Get</url-pattern>
</servlet-mapping>
首先,在tomcat服务器上运行hello.java,然后再运行Get.java,即可展现出servlet的资源共享功能。如下图所示。