servletContext作用于不同用户之上
1. 一个用户将数据保存到了servletContext中,
// getcontext的servlet程序
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext(); //通过全局变量servletcontext 拿到另一个servlet 不同url中username
String username = (String) context.getAttribute("username");
resp.setContentType("text/html"); // 这里set浏览器的数据格式后可以拿到其username ,非则会null
resp.setCharacterEncoding("utf-8"); // 这里是修改数据格式适应浏览器编码,使得文本内容可以正常显示
System.out.println("岗位"+username); // 后台显示打印
resp.getWriter().println("岗位"+username); // 浏览器页面显示
通过不同的servlet来实现彼此之间的数据共享
每一个web程序都会创建一个对应的servletContext 对象, 它表示当前的web应用,做到了共享数据, 在一个servlet中保存数据, 在另一个servlet 中拿数据
// setcontext的servlet的java程序
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
ServletContext context = this.getServletContext();
String username = "数据开发";
context.setAttribute("username",username); // 将数据保存到servletcontext中,名字为username , 值为username
写完servlet程序后去注册servlet
web.xml 对servlet 的注册配置以及servlet——mapping 配置
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.rong.servlet.servletHello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>getc</servlet-name>
<servlet-class>com.rong.servlet.dogetc</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getc</servlet-name>
<url-pattern>/getc</url-pattern>
</servlet-mapping>
eg: 如何servlet 没有先保存数据就去get username数据是获取不到的
eg :先去保存数据,然后在去拿数据即可
上述中的username保存的样式是数据开发的str
这样就实现了servletContext 的数据共享在不同的servlet