Servlet知识点总结

ServletContext
Servlet是javaWeb三大组件之一。(每个Servlet都是唯一的,他们能处理的请求是不同的)。作用:处理请求
接收请求数据
处理请求
完成响应
实现Servlet的方式
实现javax.servlet.Servlet接口
继承javax.servlet.GenericServlet类
继承javax.servlet.http.HttpServlet类(一般使用这个)
Servlet.java:Servlet中的方法太多,大多数不是由我们来调用的,而是由服务器调用的,并且Servlet的对象也不是由我们创建的,而是由服务器创建的。(服务器即Tomcat)
Servlet方法:
init()生命周期方法,它会在对象被创建之后马上执行,并只执行一次。(出生之后)
service()生命周期方法,它会被调用多次,每次处理请求都会调用这个方法!
destory()生命周期方法,它会在Servlet被销毁之前调用,并且只会被调用一次。
getServletInfo():获取Servlet的信息
getServletConfig()获取Servlet的配置信息
Servlet的特点:
单利,一个类只有一个对象,可以存在多个Servlet
线程是不安全的,所以他的效率是高的
Servlet是由我们来写的,但是对象时由服务器来创建的,并且服务器来调用相应的方法。
在这里插入图片描述
Servlet的细节
不要再Servlet中创建成员!创建局部变量,Servlet线程不安全,效率快。
可以创建无状态的成员
启动服务器的时候创建Servlet:0给出一个非负整数(在Servlet中配置)
匹配的越多优先级越低
/servlet/:路径匹配
.do扩展名匹配
/*匹配所有的URL(啥都匹配)
ServletContext (一个项目只有一个ServletContext对象)
我们可以在N多个Servlet中获取这个唯一的对象,使用它可以给多个 Servlet传递数据。
与天地同寿(在Tomcat启动时创建,Tomcat关闭,销毁)
获取ServletContext
在Servlet中获取ServletContext对象:
在void init(ServletConfig config)中ServletContext context= config.getServletContext();
SercletConfig类的getServletContext()方法可以用来获取ServletContext;
在GenericServlet类有getServletContext() 方法,所以可以直接使用this.getServletContext()来获取。
ServletConfig#getServletContext();
GenericServlet#getServletContext();
HttpSession#getServletContext();
ServletContextEvent#getServletContext();
域对象的功能(域对象就是在多个Servlet中传递数据的)
四大域对象:
PageContext;
ServletRequest;
HttpSession;
ServletContext;
所有的域对象都有存储数据的功能,因为对象内部有一个Map,用来存储数据,ServletContext对象用来操作数据的方法:
域对象必须要有存数据的功能:void setAttribute(String name,Object value)eg:ServletContext.setAttribute(“XX”,“XX”);
域对象必须要有取对象的功能:Object getAttribute(String name):用来获取ServletContext中的的数据
获取应用初始化
Servlet也可以获取初始化参数,但他是局部的初始化参数;也就是说,一个Servlet只能获取自己的初始化参数,不能获取别人的,即初始化参数只为一个Servlet准备;
可以配置公共的初始化参数,为所有Servlet所用,这需要使用ServletContext才能使用

name
value

获取资源的真实路径:
String path = this.getServletContext().getRealPath("/index.jsp");

  • 获取资源路径后,再创建输入流对象
    InputStream input = this.getServletContext().getResourceAsStream("/index.jsp");
  • 获取当前路径下所有的资源
    Set paths = this.getServletContext().getResourcePaths("/WEB-INF");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值