一、Servlet是什么?他是一个处理网页请求或者提交数据的处理容器,每个Servlet是独特的,用来处理不同的网页请求方式,同

时Servlet容器内部又是单例多线程的,对多个网页的同一请求采取多线程方式快速处理,在使用时要注意线程安全问题。

二、自定义Servlet需要的步骤:

1、自定义Servlet继承于HttpServlet,重写doGet()和doPost()

2、在WebRoot的WEB-INF的web.xml下配置Servlet

以下为配置格式:

<servlet><servlet-name>别名(任取,但需与以下servlet-mapping的别名一致)</servlet-name><servlet-class>com.firstServlet</servlet-class>    <!--(项目工程src下的类路径)--></servlet><servlet-mapping><servlet-name>别名</servlet-name><url-pattern>/firstServlet</url-pattern>           <!--设置浏览器访问的路径--><!--真正浏览器的访问路径还得在前面加上项目名即http:localhost:8080/项目名/此处路径--></servlet-mapping>   

1、 若想设置Servlet在服务器启动时就创建只需在<servlet>里添加:<load-on-startup>0</load-on-startup>即可,此处0为启动

优先级,Servlet启动顺序按优先级从小到大依次启动(优先级必须为非负整数)。

2、 配置Servlet初始化参数方法:

    <servlet>.......<init-param><param-name>paramName</param-name><param-value>paramValue</param-value></init-param></servlet>

三、Servlet生命周期

init() :进行初始化工作

service():提供服务响应请求,自动判断调用doGet或者doPost方法

destory():Servlet被销毁的时候调用

调用顺序:构造器->init()->service()->destory()

四、Servlet的常用方法:

doGet(HttpServletRequest request, HttpServletResponse response):处理get请求,默认启动方

doPost(HttpServletRequest request, HttpServletResponse response):处理post请求

getServletConetext():获取ServletContext对象

五、ServletContext对象(上下文对象)

服务器会为每个web项目创建一个ServletContext对象,该对象在服务器启动时创建,在服务器关闭时销毁。

作用:进行Servlet之间的数据传递

ServletContext对象拥有的方法:

setAttribute(String name,Object Key):使用键值对方式存入数据对象

getAttribute(String name):通过键名取出数据对象

removeAttribute(String name):通过键名删除已存入的数据对象

getAttributeNames():取出所有键名

getInitParameter(String name):通过键名取出全局初始化参数值(ServletConfig里同样方法获得当前Servlet

初始化参数)

全局初始化参数配置:

    <web-app><context-param><param-name>cluster</param-name><param-value>false</param-value></context-param>.......</web-app>

getRealPath(String path):通过文件名获取文件的绝对路径

getResourceAsStream(String path):通过文件名获取文件的输入流对象(InputStream)

getResource(String path):通过文件名获取文件的网址URL对象

getResourcePaths(String path):通过文件名获取当前文件名目录下的所有资源的路径的Set集合

六、获取src路径(类路径WEB-INF\classes)下的资源:所有src下的文件都会在映射在WEB-INF\classes里

第一种:getClass().getClassLoader().getResourceAsStream是从src路径(即classes路径)开始的,同时路径不用"/"开头

第二种:getClass().getResourceAsStream是分俩种情况:
                                      "/"开头是从src路径(即classes路径)开始的,
                                       不用"/"开头是从当前包路径下开始的

若想返回上级路径使用../

转载于:https://www.cnblogs.com/MrQlyn/p/10236324.html

JavaWeb的Servlet、ServletContext相关推荐

  1. JavaWeb(五)——Servlet、Mapping问题、ServletContext

    文章目录 1. Servlet 简介 2. HelloServlet 3. Servlet原理 4. Mapping问题 5. ServletContext 1. Servlet 简介 Servlet ...

  2. html与java接口,JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习--Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  3. javaweb(07) Servlet详解

    javaweb(07) Servlet详解 什么是Servlet 简介 从广义上来讲,Servlet规范是Sun公司制定的一套技术标准,包含与web应用相关的一系列接口,是web应用实现方式的宏观解决 ...

  4. JavaWeb核心|Servlet

    文章目录 一.发布资源引入: 二.发布动态资源(Servlet基础) 三.Servlet 3.1 Servlet介绍 3.2 Servlet快速入门 3.3 Servlet执行过程 3.4 Servl ...

  5. 【JavaWeb开发-Servlet】拾起海中的漂流瓶超强版

    目录 原版: 一.思路: 二.实现: 三.资源分享 四.部署服务器时记得修改文件路径 原版: [JavaWeb开发-Servlet]拾起海中的漂流瓶增强版_代码骑士的博客-CSDN博客[代码][Jav ...

  6. Eclipse JavaWeb 关于Servlet的部分笔记

    这个是参照B站上的一个学习视频做的笔记,但是那个视频里面老师讲的比较碎,我学的不连续,怕忘了,就记好笔记,方便随时查阅. 视频链接:我在B站看的学习视频 目录 WEB启动时创建Servlet 建立Dy ...

  7. Java匹马行天下之JavaWeb核心技术——Servlet

    Servlet 一.什么是Servlet? Servlet是在服务器上运行的小程序,也就是一个Java类,但比较特殊,不需要new,自动就可以运行.也有创建.垃圾回收和销毁过程.Servlet是Jav ...

  8. JavaWEB开发-Servlet事件监听器

    JavaWEB开发-Servlet事件监听器 l  监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法 ...

  9. javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/

    今天在启动tomcat的时候,出现了这个错误 javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletC ...

  10. java 构造函数抛出异常,构造函数抛出异常;嵌套异常是java.lang.NoClassDefFoundError:javax/servlet/ServletContext...

    我正在尝试使用MockMVC设置Junit测试. 从这个link – "要么不能使用Servlet API,要么你需要在类路径上提供它". 我在pom.xml中添加了以下内容但是没 ...

最新文章

  1. 容器学习 之 限制容器资源(十一)
  2. vb 获取系统声音的电平_质量好的背景音乐系统套装效果图
  3. 设置与读取C#控制台应用程序Main函数中的参数args
  4. jmeter环境部署
  5. 基于React-Native0.55.4的语音识别项目全栈方案
  6. Ubuntu PIL 安装
  7. Python机器学习:评价分类结果008多分类问题中的混淆矩阵
  8. 删除计算机共享信息命令,win10系统使用命令将网络共享删除的操作办法
  9. XSS漏洞原理/方式/防御
  10. 为什么我的IP地址经常变化
  11. (转)linux口令相关文件(/etc/passwd和/etc/shadow)
  12. idea下载Scala插件(详细)
  13. dB 和 dbm 对照表
  14. mysql vchar 磁盘碎片_mysql TEXT与BLOB 碎片整理
  15. Git ~ commit 规范
  16. 分布式系统之道:Lamport 逻辑时钟
  17. exlc表格怎么换行_excel如何换行_表格怎么换行上下换行
  18. 《Python编程快速上手——让繁琐的工作自动化》读书笔记3
  19. Linux下PHP使用selenium、chrome、chromedriver模拟无界面浏览器
  20. 仿网易云音乐html代码,仿网易云音乐外链播放器UI的HTML5音乐播放器插件

热门文章

  1. 看看华为 Java 编程的军规...
  2. 为什么在Linux执行自己的程序要在前面加./
  3. 厉害了,苹果爸爸承认让旧 iPhone 变慢!
  4. Fiddler原理~知多少?
  5. NOIP2018普及T2暨洛谷P5016 龙虎斗
  6. L2-001. 紧急救援(PAT)~最短路应用
  7. 用《内网穿山甲》共享内网中的远程桌面服务
  8. Python 爬虫的集中简单方式
  9. Android中对文本文件的读写处理
  10. Windows系统性能分析