全局域对象ServletContext:代表了整个web应用
功能:在域的范围内共享数据
范围:目前测得只在一个工程内有影响
存储所有用户共享的数据
* setAttribute():
* getAttribute():
* removeAttribute():
JavaWeb中四大域对象:
* ServletContext:全局域对象 ,代表整个web应用 ,随着服务器的关闭而消亡
* HttpSession:会话域 多次
* ServletRequest:请求域 一次
* PageContext:页面域
功能:在域的范围内共享数据
范围:目前测得只在一个工程内有影响
存储所有用户共享的数据
* setAttribute():
* getAttribute():
* removeAttribute():
JavaWeb中四大域对象:
* ServletContext:全局域对象 ,代表整个web应用 ,随着服务器的关闭而消亡
* HttpSession:会话域 多次
* ServletRequest:请求域 一次
* PageContext:页面域
获取文件运行的真实路径:
* 真实路径:指服务器路径
* getRealPath():
* 1.webRoot下:项目根目录下
* 2.WEB-INF下: 项目根目录下/WEB-INF
* 3.src下: 项目根目录下/WEB-INF/classes
* *注意:如果getRealPath("/"),获取的路径是项目的根目录
* 真实路径:指服务器路径
* getRealPath():
* 1.webRoot下:项目根目录下
* 2.WEB-INF下: 项目根目录下/WEB-INF
* 3.src下: 项目根目录下/WEB-INF/classes
* *注意:如果getRealPath("/"),获取的路径是项目的根目录
String realPath = context.getRealPath("/");
System.out.println(realPath);
输出是// D:\java班学习\20171015-XML和tomcat\20171015-XML和tomcat\tomcat服务器课件
// \tomcat服务器软件\apache-tomcat-7.0.26\apache-tomcat-7.0.26\webapps\MyServletDemo1\
// \tomcat服务器软件\apache-tomcat-7.0.26\apache-tomcat-7.0.26\webapps\MyServletDemo1\
在服务器路径里的项目里。
String realPath1 = context.getRealPath("/success.jsp");//获取的是WebRoot下的文件
String realPath2 = context.getRealPath("/WEB-INF/web.xml");//获取的是WebRoot下的WEB-INF文件
String realPath3 = context
.getRealPath("/WEB-INF/classes/org.west.demo.MyServletDemo4");//获取的的src下的文件
.getRealPath("/WEB-INF/classes/org.west.demo.MyServletDemo4");//获取的的src下的文件
对Servlet的简化
我们不需要全部继承Servlet的抽象方法,可以自定义这个类来实现这个Servlet,然后写自己的类来继承这个自定义类;这就是适配器模式
创建方式:
1. 实现Servlet
2. 继承GenericServlet
1.适配器
2.对ServletConfig进行优化。提升config对象的作用域
3.实现了ServletConfig接口,简化对config对象的使用方式
3. 继承HttpServlet:对http协议的封装
* 重写doGet()和doPost()...方法 注意去掉super.doGet(); 和 super.doPost();
1. 实现Servlet
2. 继承GenericServlet
1.适配器
2.对ServletConfig进行优化。提升config对象的作用域
3.实现了ServletConfig接口,简化对config对象的使用方式
3. 继承HttpServlet:对http协议的封装
* 重写doGet()和doPost()...方法 注意去掉super.doGet(); 和 super.doPost();
可以修改HttpServlet模板
自动创建Servlet
* 修改模板:
1 D:\MyEclipse\Common\plugins
2 搜索wizards
3.找到.jar 修改templemnts/Servlet.java
* 修改模板:
1 D:\MyEclipse\Common\plugins
2 搜索wizards
3.找到.jar 修改templemnts/Servlet.java
注意:只要在web环境下采用ServletContext获取文件的真实路径,
如果是非web环境,则使用ClassLoader来获取真实路径
比如我web项目里有一个普通的java工具类 我想获取文件的真实路径 那我就用不了 ServletContext
//1.获取该类对应的类加载器对象
ClassLoader loader = this.getClass().getClassLoader();
//2.获取文件运行的真实路径
URL url = loader.getResource("a.txt");
String path = url.getPath();
//注意类加载器来获取路径也有局限性 只能获取src目录下的文件
//1.获取该类对应的类加载器对象
ClassLoader loader = this.getClass().getClassLoader();
//2.获取文件运行的真实路径
URL url = loader.getResource("a.txt");
String path = url.getPath();
//注意类加载器来获取路径也有局限性 只能获取src目录下的文件