java之servlet_Java之Servlet详解

1,Servlet的继承关系

1.1)Servlet具有最基本的方法,所有的Servlet 都应该直接或间接的实现自这个接口;

1.2)GenericServlet类对Servlet接口的默认实现,是通用Servlet实现,init方法、destory方法进行了空实现,将service方法设计为抽象方法,供继承者实现;

1.3)HttpServlet,继承子GenericServlet,在GenericServlet实现的基础上,对HTTP协议进行了进一步的增强,实现了GenericServlet中未实现的Service方法,在此service方法中判断请求方式,根据请求方式对应调用对用的处理方法,在HttpServlet的子类中不要覆盖service方法,直接覆盖doGet或doPost方法,处理get/Post请求;

2,ServletContext对象,代表当前整个web应用

(1)是一个域对象,是javaweb开发阶段的四大作用域之一。(最大的一个域)可以在整个web应用范围内共享数据

生命周期:随着web应用加载而创建,随着服务器被关闭或者web应用被移除出容器,销毁。

作用范围:整个web应用

(2)可以获取整个web应用的初始化信息

(3)请求转发:访问一个web资源时,可以在服务器内部流转,使用另一个web资源进行输出

(4)获取资源:ServletContext.getRealPath("相对于当前web应用的路径"),则此方法在传入的路径之前拼接上当前web应用的真实硬盘路径,以此来获得资源的真实硬盘路径。ServletContext.getResourceAsStream("相对于当前web应用的路径"),此方法和上面的方法原理相同,唯一不同的是直接返回一个指向该资源的流。

利用类加载器去加载资源:String path = ClassLoader.getResource("相对与类加载的目录的路径").getPath();

ClassLoader.getResourceAsStream("相对与类加载的目录的路径");此方法和上面的方法原理相同,唯一不同的是直接返回一个指向该资源的流。

3,web开发学习阶段的路径:

此路径是给浏览器使用的还是给服务器使用的

如果路径是给浏览器使用的,则路径是相对于当前虚拟主机,路径中要写上当前web应用的名称。

如果路径是给服务器用的,则路径是相对于当前web应用,路径中不要写上当前web应用名称了。

xxx

 1.jpg

servletCotnext.getRequestDispacher("/servlet/Demo1").forward();

servletContext.getRealPath("/1.jpg");

servletContext.getResourceAsStream("/1.jpg");

javase学习阶段的路径(根据具体情况具体分析):

new File("");

new FileInputStream(""); ---- 相对的是程序的启动目录

ClassLoader.getResource();  ClassLoader.getResourceAsStream();  ---- 相对于类加载器加载类的目录    相对路径和绝对路径  绝对路径:以/开头的路径叫做绝对路径,工作原理:将当前路径直接拼接到相对于的那个目录上  相对路径:不以/开头的路径叫做相对路径,工作原理:相对于当前的路径,计算相对路径的真实路径。    由于相对路径要根据当前路径随时进行计算,如果分析不好的话有可能会导致路径不正确,所以尽量使用绝对路径,只有当绝对路径没有办法使用时才使用相对路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值