从ServletContext中获取全局配置信息
ServletContext对象是每个servlet都能够获取到的
web.xml中用<context-param> </context-param>标签包括起来的东西 是一个个键值队形式的存储
其中有两个标签<param-name></param-name> <param-value></param-value>
在servlet中可以使用ServletContext获取其中的值 String value=this.getServletContext.getInitParameter("key");
<param-name></param-name> 标签括起来的则是key
此时value 则为<param-value></param-value>标签括起来的值
config对象是对应的单个servlet才能获取到的
在web.xml中配置Servlet时 其中有一个标签<init-param></init-param> 他其中也有这两个标签
<param-name></param-name> <param-value></param-value>
而在对应Servlet中 String value =this.getServletConfig.getInitParameter("key");
与上方的context对象一样
它们的区别是Context对象每个Servlet都能获取到而Config对象则只能对应的Servlet才能获取到
使用Context域对象可以获取服务器上的任意资源真实路径 并读取
1,先获取Context对象
ServletContext application=this.getServletContext();
2,获取路径
String path= application.getRealPath("路径");
3,读取
Properties properties= new Properties();注意这个使用util包下的
properties.load(new FileInputStream(path));
请求转发
1,先获取Context对象
ServletContext application=this.getServletContext();
2,获取请求转发器
RequestDispatcher rd=application.getRequestDispatcher("路径");
3,进行请求转发
rd.forward(request,response);
请求重定向
1,添加重定向响应头
注意:添加头信息请求路径时要+上项目名
response.setHeader("location","路径");
2,添加重定向状态码
response.setStatus(302);
请求重定向和请求转发的区别
请求重定向是发起两次请求(请求路径发生了变化)
请求转发是一次请求 (请求路径不会发生变化)
服务器编码格式问题
两种方式
第一种
response.setcharacterEncoding("utf-8");
response.setHeader("content-type","text/html");
第二种
response.setContentType("text/html;charset=utf-8");