Servlet入门和HTTP。
Servlet:
1、概念:Servlet:server applet ,运行在服务器端的小程序。
浏览器在访问服务器的动态资源时,访问的是具有逻辑性的Java代码(Java类),而这里的Java类依 赖于服务器才能运行(tomcat执行它),而这些Java类需要遵循一些规则,tomcat才能识别它并执行它,而这些规则就是Servlet。
* Servlet就是一个接口,定义了Java类能被浏览器访问到(tomcat识别)的规则。
2、快速入门:
1、创建JavaEE项目。
2、定义一个类,实现Servlet接口。
3、实现接口中的抽象方法。
4、配置Servlet:
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
3、Servlet执行原理。
1、http://localhost:8080/Tomcat/demo1 浏览器访问服务器,并试图获取资源。
2、查找web.xml,看<url-pattern>里有没有demo1
3、如果有,找到对应<servlet-class>全类名。
4、tomcat将该类的字节码文件加载进内存,并创建其对象。
5、调用该对象的方法。
4、Servlet中的生命周期。
1、被创建:执行 init 方法,只执行一次。
* Servlet什么时候被创建?
* 默认,第一次访问时,Servlet被创建。
* 可以配置Servlet的创建时机。
1、第一次被访问时创建:<load-on-startup>的值为负数。
2、服务器启动时创建:值为0或正数。
* Servlet的 init 方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的。所以在多个用户访问时,可能存在线程安全问题。
* 解决:尽量不要在Servlet中定义成员变量。即使定义了,不要对其修改值。
2、提供服务:执行service 方法,执行多次。
* 每次访问Servlet时,service方法被调用一次
3、被销毁:执行 destroy 方法,只执行一次。
* 服务器关闭时(正常关闭),在Servlet销毁之前被执行,一般用于释放资源。
4、Servlet3.0.
好处:支持注解配置。可以不用web.xml。
步骤:1、创建JavaEE项目,选Servlet3.0及以上版本,可不创建web.xml
2、定义类实现接口,重写方法。
3、类上使用@WebServlet 注解来配置:@WebServlet("资源路径")。
5、IDEA和tomcat的相关配置。
1、IDEA会为每个tomcat部署的项目单独建立一份配置文件。
* 查看控制台的 Using CATALINA_BASE:
2、项目有两个地方存储:工作空间项目 和 tomcat部署的web项目。
* tomcat真正访问的是 “tomcat部署的web项目“ ,该项目对应着工作空间项目的web目录下的所有资源。
3、tomcat断点调试:点小虫子来启动debug。
6、Servlet体系结构。
Servlet接口 <---GenericServlet 抽象类 <-- HttpServlet 抽象类。
*GenericServlet:将Servlet接口的其他方法作了默认实现,只将service()方法作为抽象方法,所以以后定义Servlet类时,可以继承该抽象类,实现service()方法即可。
*HttpServlet :对http协议的一种封装,简化操作(判断请求类型) 常用
实现:1、定义类继承HttpServlet 2、复写doGet/doPost 方法。
7、Servlet相关配置。
1、urlPartten:Servlet访问路径。
* 一个Servlet可以定义多个访问路径。
* 路径定义规则:1、/XXX 2、/xxx/xxx 3、*.do
8、HTTP。
1、概念:Hyper Text Transfer Protocol 超文本传输协议。
传输协议:定义了客户端和服务器通信时,发送数据的格式。
* 特点:1、基于TCP/IP的高级协议。
2、默认端口号:80
3、基于请求/响应模型的: 一次请求对应一次响应。
4、无状态的 :每次请求之间相互独立,不能交互数据。
2、请求消息数据格式。
1、请求行:请求方式 请求url 请求协议/版本 : GET /login.html HTTP/1.1
2、请求头:浏览器告诉服务器一些信息。 请求名称:请求值
常见的请求头:1、User-Agent:告诉服务器浏览器的版本信息。
2、Referer:告诉服务器,当前请求从哪里来。作用:防盗链、统计。
3、请求空行:空行,用来分隔。
4、请求体(正文):封装POST请求消息的请求参数的。
Servlet入门和HTTP。的更多相关文章
- HTTP协议 Servlet入门 Servlet工作原理和生命周期 Servlet细节 ServletConfig对象
1 HTTP协议特点 1)客户端->服务端(请求request)有三部份 a)请求行--请求行用于描述客户端的请求方式.请求的资源名称,以及使用的HTTP协议版本号 请求行中的GET ...
- 浅谈JavaWEB入门必备知识之Servlet入门案例详解
工欲善其事.必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详 ...
- java之servlet入门操作教程一续
本节主要是在java之servlet入门操作教程一 的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...
- servlet入门与进阶
servlet入门与进阶 1.servlet基础认知 Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据, ...
- JavaWeb之Servlet入门(二)
1. 准备 在JavaWeb之Servlet入门(一)中,我们完成了第一个Servlet程序,完成了从URL到后台控制器的中转过程,接下来我们延续JavaWeb之Servlet入门(一)学习下如何传参 ...
- Servlet视频学习笔记 57-58 (servlet入门和调用过程)
网易云课堂<30天轻松掌握JavaWeb视频>servlet部分 课时57 servlet开发入门 servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术.S ...
- Servlet入门和ServletConfig、ServletContext
Servlet是一门用于开发动态web资源的技术. 若想开发一个动态web资源,需要完成以下2个步骤: 1)编写一个Java类,实现servlet接口: 2)把开发好的Java类部署到web服务器中. ...
- servlet入门学习之工作原理解析
从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力 ...
- Servlet入门实践
本文主要介绍servlet,包括入门到升入,基本上可以对servlet有一个很好的认识: 1servlet介绍: Servlet(Server Applet),全称Java Servlet,未有中 ...
随机推荐
- redis缓存, 缓存击穿,缓存雪崩,缓存穿透
在实际项目中,MySQL数据库服务器有时会位于另外一台主机,需要通过网络来访问数据库:即使应用程序与MySQL数据库在同一个主机中,访问MySQL也涉及到磁盘IO操作(MySQL也有一些数据预读技术, ...
- django -- ORM查询
前戏 在我们之前操作ORM中,你也许是启动Django项目,通过地址访问固定的函数,或者在pycharm里的python console里执行,第一种比较麻烦,而且每次都要启动项目,写路由,第二种虽然 ...
- Unix/Linux小计
1. centos查看cpu信息 cat /proc/cpuinfo processor有几个就是有几个cpu,每一列是每个cpu的信息 每个processor中的cores是当前cpu中有几个核心. ...
- Hbase(一)了解Hbase与Phoenix
前言 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Googl ...
- logstash设置开机自启动
本篇文件前提是在centos7.6上使用rpm包安装的logstash,添加systemd方式启动. #默认为rpm包安装,进行执行目录 cd /usr/share/logstash/bin/ #系统 ...
- QuantLib 金融计算——基本组件之 Money 类
目录 QuantLib 金融计算--基本组件之 Money 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Money ...
- Sitecore 8.2 工作流程
假设您的新Sitecore项目的所有开发都已完成.现在的下一步是在网站上填写内容并准备上线.客户通知您他们希望使用专门的网站管理员团队负责整个内容管理流程,并要求您为他们准备实例以便能够执行此操作. ...
- 如何用Python制作优美且功能强大的数据可视化图像
第一个案例 首先开始来绘制你的第一个图表 from pyecharts import Bar '''遇到不懂的问题?Python学习交流群:1004391443满足你的需求,资料都已经上传群文件,可以 ...
- 微信小程序路径表达式解析规则
小程序 setData 方法支持路径表达式来设置属性,例如 setData({"x.y.z": 1}). 微信官方没有公布路径表达式的语法规则及解析规则,本文所描述的路径表达式解析 ...
- C#RSA对接JAVA中RSA方式
C#中通过FromXmlString属性加载的是XML形式,而JAVA中用到的是解析后的PEM格式的字符串,总之读取证书中信息无非是转换方式问题 /// <summary> /// c# ...