ServletContext应用
获取初始化参数
可以在web.xml下配置初始化参数使用context-param
里边的param-name为键,param-value为值,
public class ServletDemo04 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8"); ServletContext servletContext = this.getServletContext(); String url = servletContext.getInitParameter("url"); resp.getWriter().print(url); }
然后使用getServletContext()的getInitParameter方法获取值,此方法就位获取初始化的参数
转发
public class ServletDemo05 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("进入了Demo05"); ServletContext context = this.getServletContext(); context.getRequestDispatcher("/csh").forward(req,resp); }
转发为地址不变然后跳转,转发和重定向的理解可以用这样一个场景来简单形容
张三想借钱和李四去借结果李四也没钱了出于人际关系李四就帮助张三去和王五借钱然后将借来的钱给了张三,在整个过程中张三并没有和王五有任何交集这就是转发
张三想借钱去和李四接,结果李四也没有钱了然后就告诉张三王五那有钱让张三去和王五借,然后张三就又去和王五借钱。这就是重定向
这个可以用一个图来形容
上边图就为转发,下边为重定向,abc分别是张三李四王五。
读取资源文件
Properties
- 在java目录下新建properties
- 在resources目录下新建properties
我们发现他们都被打包到了同一个路径下
:classes,俗称为classpath
public class ServletDemo06 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties"); Properties properties = new Properties(); properties.load(is); String name = properties.getProperty("user"); String psw = properties.getProperty("password"); resp.getWriter().print("xingming:"+name+psw); }
创建一个servletcontext对象然后使用getResourceAsStream方法获得流
创建properties对象调用load方法将流丢入 使用getProperty方法可以读取其中数据