JavaWeb技术栈

23 篇文章 0 订阅
订阅专栏

一个网页是怎么运行的?

首先网页想要运行,需要有静态资源他们负责页面的展示,如果我们想要页面产生互动效果,我们需要动态资源进行逻辑处理。同时,我们还需要数据库来存取数据。

进入一个网站,浏览器向服务器请求资源,动态资源去数据库里拿取数据,静态数据做出页面,最后服务器响应返回页面给浏览器。浏览器解析页面成为我们看到的效果。

 HTTP:超文本传输协议

HTTP规定了浏览器和服务器之间传输数据的规则。

HTTP协议特点:

基于TCP协议:面向连接,安全

基于请求-响应模型:一次请求对应一次响应

HTTP协议是无状态的协议,对于事务处理没有记忆能力。每次请求-响应都是独立的。

优点:速度快。

缺点:多次请求间不可以共享数据。

举个例子:我们将商品添加到购物车这一行为是一个请求和响应。我们打开购物车结算的时候又是一个请求和响应。我们需要知道将什么东西添加到了购物车里,但两次请求之间的数据不能共享。

Java会提供会话技术(cookie和Session)来解决这个问题。

HTTP-请求数据格式

1、请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本。

GET/HTTP/1.1

2、请求头:从第二行开始,格式为键值对key:value形式。

User-Agent:用于浏览器兼容性处理,让不同浏览器访问的效果相同

3、请求体:

 POST请求方式独有的模块。用来存放请求的数据,没有数据大小的限制。

总结:

GET请求和POST请求的区别

1、GET请求请求参数在请求行中,没有请求体。POST请求在请求体中。

2、GET 请求参数有大小限制(4kb),但是POST请求体没有大小限制。

HTTP-响应数据格式

 响应数据同样分为三部分。

1、请求行:响应数据的第一行。其中HTTP/1.1表示协议版本。200表示状态码,(服务器告诉浏览器响应的状态是怎么样的,成功或者失败或者别的状态),OK是对状态码的英文描述。

2、响应头:

Content-Type:表示应响应内容的类型,比如text/html/image/jpeg。浏览器知道了响应内容的类型,会自动的选择对应的解析引擎进行解析。

Content-Length:表示应响应数据的长度(字节数)。

Content-Encoding:表示响应压缩算法,告诉浏览器我才用了哪种压缩方式进行压缩数据,浏览器会选择同样的压缩格式来解压缩。

Cache-Control:告诉浏览器该如何缓存数据,例如max-age=300,表示最多可以缓存300秒。第一次访问将数据存储到浏览器本地,第二次再访问的时候,直接读取本地数据。这样可以提高速度。

3、 响应体:

最后一部分,存放响应数据,浏览器解析这些响应数据就可以展示出来一个页面了。

常见的状态码有哪些? 

 Web服务器

Web服务器是一个应用程序(软件)。

他可以对HTTP协议进行封装,使我们不需要对协议直接操作,让Web开发更为高效快捷。

他可以将web项目部署到服务器中,对外提供网上浏览服务。

Tomcat

它是一个轻量级的Web服务器,支持Servlet/JSP和少量JavaEE(企业开发标准,比如说mybatis,maven之类的),也称之为web容器,servlet容器。

  bin目录下存放了一些可执行的文件,其中.bat是windows系统下可执行的文件,.sh是linux系统下可执行的文件。

conf目录下存放了一些配置文件。

lib目录下存放了依赖jar包,Tomcat是使用java语言编写的。

logs目录下存放的日志文件,如果出现500错误我们就需要去查看日志信息。

temp目录运行时产生的临时文件。

webapps目录存放我们需要运行的项目。

work目录下存放项目运行时临时产生的数据。

 Tomcat使用java编写的,所以运行时需要jdk的运行环境,如果全局变量出错找不到运行环境,会一闪而过启动失败。

Tomcat部署项目

将项目放到webapps目录下即可完成部署。

一般情况下,我们直接将文件夹打包移动速度会很慢,我们会将项目打包成war包,然后放到webapps目录下,Tomcat会自动完成文件解压。

在IDEA中创建Maven Web项目

创建Web项目方法

1、使用骨架

2、不使用骨架 

 

 在IDEA中方便快捷的使用Tomcat

1、通过配置编辑,将Tomcat集成到本地idea。

将Tomcat通过编辑配置部署到本地IDEA环境中。

随后在webapp目录下创建html文件,启动服务器并且输入你的路径就可以访问了。 

2、 通过maven导入插件坐标

以这样的方式更加简单高效,访问速度更快。

在pom文件中可以通过<configuration>标签修改一些配置,比如说端口号,比如说项目访问路径。

 Servlet

Servlet是java提供的一门动态web资源开发技术。

注:html+css+JSP不同的用户所看到的页面是一样的,Servlet可以让不同用户得到不同的反应结果。

Servlet是JavaEE规范之一,本质上就是一个接口,将来我们需要定义Servlet类并且实现接口,由web服务器运行Servlet。

Servlet快速入门

scope依赖范围必须是provided,在编译环境和测试环境有效,运行环境无效。

web项目里,Tomcat已经提前创建好了Servlet的jar包,如果我们仍在运行范围内打包成jar包存在会产生错误。 

Servlet执行流程

我们将web项目发布到服务器上去,浏览器通过url访问servlet。

http://localhost:8080/web-demo/demo1

http://localhost:8080访问到Tomcat服务器。

/web-demo访问到上线的项目。

/demo1访问对应的Servlet。

Servlet由谁创建?Servlet方法由谁调用?

Tomcat自动创建Servlet对象,并且方法也是由Tomcat调用的,调用后就可以给浏览器发送回对应的响应数据。 

服务器为什么会知道Servlet中一定有service方法?

我们自定义的Servlet,必须实现Servlet接口并且重写其中的方法。

Servlet生命周期

Servlet生命周期指的是一个Servlet对象从被创建到销毁的阶段,其生命周期由容器(比如说Tomcat)来管理。 

loadOnStartUp-加载和实例化

@WebServlet(urlPatterns="/demo",loadOnStartUp=1)

注解:如果属性的名称叫做value且只有一个,value可以省略。

配置访问路径,浏览器输入一个url就可以访问到web项目。 

1、负整数:在第一次被访问时创建Servlet对象。

2、0或正整数:服务器启动时创建Servlet对象,数字越小优先级越高。这是因为创建一些Servlet所需要的时间比较长,我们在创建服务器的时候就创建好Servlet对象可以减少用户的等待时间。 

​​​​​​​

getServletConfig()获取Servlet配置对象。

 getServletInfo()返回一些版权信息,比如说作者之类的。

Servlet体系结构

Servlet是一个接口,有两个实现类方法,我们通过继承对应的实现类来实现servlet。

用来简化开发。

HttpServlet里面分别doGet和doPost方法,在底层获取servlet对象并且强转成httpservlet对象获取Method标签的内容来判断要执行get还是post,根据不同请求方法采用不同请求逻辑。

 

ServletServlet urlPattern配置

Servlet想要被访问,必须配置其访问路径(urlpattern)。

 1、精确匹配

通过urlpattern配置的路径和使用浏览器访问的路径完全一致。 

 2、目录匹配

前边路径相同,最后的路径写任何东西都可以访问到。 

精确匹配的优先级要高于目录匹配。

 3、扩展名匹配

前面的路径相同,最后的路径只要扩展名结尾相同,就可以匹配。

4、任意匹配

在结尾输入任意内容都可以匹配到,但是我们不要使用这种配置方法。

因为任意匹配的/和/*意味着覆盖掉tomcat里面的default路径,我们无法加载静态资源。

5、优先级

精确路径>目录路径>扩展名路径>/*>/

  

XML配置方式编写Servle 

1、servlet全类名 2、servlet访问路径 

写文章

热门文章

  • 常用API之爬虫 2295
  • Linux-12-root用户(su、sudo命令) 1834
  • JSP详解 1774
  • SpringMvc入门 1594
  • Linux-09-grep、wc、管道符 1419

分类专栏

  • SSM 9篇
  • JavaWeb 23篇
  • 力扣 13篇
  • java 106篇
  • Linux学习 13篇

最新评论

  • Tomcat启动与关闭端口

    shanda22: lsof -i :端口号

  • Maven的概述

    CSDN-Ada助手: 不知道 Java 技能树是否可以帮到你:https://edu.csdn.net/skill/java?utm_source=AI_act_java

  • Java面向对象之内部类

    居明明: iterator

大家在看

  • string字符串的插入与删除
  • 基于Java的文献推荐系统的设计与实现
  • MySQL高级SQL语句与高级操作 457
  • MySQL 主从复制原理和配置流程
  • Packet Sniffifing and Spoofifing Lab

最新文章

  • Spring事务
  • 请求与响应
  • SpringMvc入门
2023年162篇
2022年14篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家附近玻璃钢景观雕塑定做价格河南步行街玻璃钢雕塑方法惠州玻璃钢雕塑怎么样天津商场美陈玻璃钢卡通雕塑泰州玻璃钢海豚雕塑定制落地式玻璃钢花盆厂家公园玻璃钢雕塑直销价格福州户外玻璃钢雕塑造型贴金无锡玻璃钢仿铜雕塑电话北京大型主题商场美陈制造安徽大型玻璃钢雕塑价格芜湖玻璃钢雕塑市场河北玻璃钢雕塑摆件定制常州景观玻璃钢雕塑销售寿光玻璃钢雕塑建造无锡景观灯玻璃钢花盆昆山元旦商场美陈秦淮新年商场美陈玻璃钢雕塑漆黄怎么回事镜面不锈钢玻璃钢仿铜雕塑价格澳门玻璃钢孔子雕塑汕头玻璃钢雕塑凳子沛县玻璃钢雕塑定制景洪市玻璃钢雕塑生产商商场企划活动美陈工作总结山东园林玻璃钢雕塑厂家玻璃钢雕塑人物价格湖北玻璃钢佛像雕塑批发银辉玻璃钢雕塑图片内蒙古商场美陈装饰香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化