一.建立项目servlet01
在入门Servlet项目中建立一个子项目模块(此处不再赘述如何建立),补全maven项目中的java和resources文件夹,添加类HelloServlet.java,添加web.xml中的映射关系,添加tomcat (注意保持只有一个jar包方式把所有项目的jar都打进来了,删除其他项目的jar包,添加自己的jar包),运行验证是否搭建正确!
二.ServletContext对象
在web容器启动时,它会为每一个web程序创建一个对应的ServletContext对象,用来代表当前的web的应用。
- 共享数据: 在servlet中保存的数据可以在另一个servlet中被访问
例子:
在HelloServlet中代码
1 @Override 2 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 3 4 // this.getInitParameter(); 初始化参数 5 // this.getServletConfig(); Servlet配置 6 // this.getServletContext(); Servlet上下文 7 8 ServletContext context = this.getServletContext(); 9 10 String username = "小王"; 11 context.setAttribute("username",username); //将数据存入ServletContext中 12 13 14 }
在GetServlet中的代码
1 public class GetServlet extends HttpServlet { 2 @Override 3 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 4 5 ServletContext context = this.getServletContext(); 6 7 String username = (String) context.getAttribute("username"); 8 9 resp.setContentType("text/html"); 10 resp.setCharacterEncoding("utf-8"); 11 resp.getWriter().println("名字"+ username); 12 13 } 14 15 @Override 16 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 17 doGet(req, resp); 18 } 19 }
配置web.xml
1 <!--注册Servlet--> 2 <servlet> 3 <servlet-name>getc</servlet-name> 4 <servlet-class>ustc.wzh.servlet.GetServlet</servlet-class> 5 </servlet> 6 7 <!--Servlet的请求路径--> 8 <servlet-mapping> 9 <servlet-name>getc</servlet-name> 10 <url-pattern>/getc</url-pattern> 11 </servlet-mapping>
启动tomcat执行程序
先执行http://localhost:8080/servlet01/hello 此时已经存入数据了,在执行http://localhost:8080/servlet01/getc 显示数据
执行成功!