JavaWeb
1 基本概念
1.1 基本概念
web开发:
- web,网页的意思
- 静态web
- html,css
- 提供给所有人看的数据,始终不会发生变化
- 动态web
- 几乎是所有的服务型网站
- 提供给所有人看的会发生变化的数据,每个人在不同时间(地点等)看到的东西不同
- 技术栈:Servlet/JSP,ASP,PHP
在Java中,动态web资源开发的技术统称为Javaweb
1.2 web应用程序
web应用程序,可以提供浏览器访问的程序:
- a.html;b.html...这些web资源可以被外界访问,对外界提供服务
- 能访问到的任何一个页面或者资源,都存在计算机上
- URL
- 这些统一的web资源会被放在同一个文件夹下,web应用程序----->Tomcat:服务器
- 一个web应用由多部分组成
- html,css,js
- jsp,servlet
- Java程序
- jar包
- 配置文件(Properties)
web应用程序编写完毕后,若想提供给外界访问,需要:
- 服务器来统一管理
1.3 静态web
.htm,.html等都是网页后缀,如果服务器一直存在这些,就可以直接读取
- 静态web存在缺点:
- web页面无法动态更新,所有用户看到的都是同一个页面
- 轮播图,点击特效:伪动态
- JavaScrip(实际开发中,用的最多)
- VBScrip
- 它无法和数据库交互(数据无法持久化,用户无法交互)
- web页面无法动态更新,所有用户看到的都是同一个页面
1.4 动态web
页面会动态展示,web的页面展示效果因人而异
-
动态web存在缺点:
- 加入服务的动态web资源出现了错误,需要重新编写后台程序,重新发布
- 停机维护
- 加入服务的动态web资源出现了错误,需要重新编写后台程序,重新发布
-
动态web存在优点:
- web页面可以动态更新,所有用户看到的不是同一个页面
- 它可以和数据库交互(数据持久化:注册,商品信息)
2 web服务器
2.1 技术
ASP:
- 微软:国内最早流行
- 在HTML中嵌入VB的脚本,ASP+COM
- 在ASP开发中,基本一个页面都有几千行的业务代码——页面极其混乱
- 维护成本高
- 多用C#
- IIS
PHP
- PHP开发速度快,功能强大,跨平台,代码简单
- 无法承载大访问量的情况(局限性)——>适用于中小型企业(现在的大部分(70%))
JSP/Servlet
B/S:浏览和服务器
C/S:客户端和服务器
- sun公司主推的B/S结构
- 基于Java语言的(所有的大公司,或者一些开源的组件,都是用Java写的)
- 可以承载三高问题带来的影响(高并发,高可用,高性能)
- 语法像ASP(ASP猿可以快速入手),加强市场强度
...
2.2 web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些相应信息
IIS:
微软的,跑ASP,Windows中自带
Tomcat:
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
目前Tomcat最新版本为9.0.37。
工作3-5年后,可以尝试手写Tomcat服务器
3 Tomcat
3.1 Tomcat安装
官网下载
3.2 Tomcat启动和配置
Tomcat文件夹信息
启动/关闭
如果关闭(或未启动),则无法访问
访问测试:——localhost:8080
Tomcat网页信息
apache-tomcat-9.0.37\webapps\ROOT包内
index.jsp是html代码
tomcat.css是css代码
配置
在conf下的server.xml文件中,可以:
- 配置启动端口号(默认8080)
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其中,8081就是改后的端口号,现在访问,需要访问localhost:8081
- 配置主机的名称(localhost)
<Host name="www.cyb.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
C:/Windows/System32/drivers/etc/hosts
添加:
127.0.0.1 www.cyb.com
保存
输入www.cyb.com:8080获得同样效果
3.2.1 可能遇到的问题
- Java环境变量没有配置
- 闪退问题(需要配置兼容性)
- 乱码问题(改startup.bat文件(不推荐))
3.2.2 网站是如何进行访问的
-
输入一个域名,回车
-
检查本机的C:/Windows/System32/drivers/etc/hosts配置文件下有没有这个域名的映射
-
有:直接返回对应的IP地址,这个地址中,有我们需要访问的web程序,可以直接访问
-
无:去DNS服务器找,找到的话就返回,找不到就提示找不到
-
3.3 发布一个Tomcat
把自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问
5.
网站应有的结构:
- webapps:Tomcat服务器的web目录
- ROOT
- asdfasdfasd:网站的目录名
- WEB-INF
- classes:Java程序
- lib:web应用所依赖的jar包
- web.xml:网站配置文件
- index.html(或者jsp等等)(默认的首页)
- static
- css
- js
- img
- ...
- WEB-INF
4 Http
4.1 What's HTTP
HTTP(超文本传输协议)
http是一个简单的请求-响应协议,它通常运行在TCP之上。
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
- 文本:html,字符串...
- 超文本:图片,音乐,视频,定位,地图...
HTTP(超文本传输协议)默认端口:80
HTTPS(安全的超文本传输协议)默认端口:443
4.2 两个时代
-
HTTP/1.0
- 客户端可以与web服务器连接后,只能获得一个web资源,之后则断开连接
-
HTTP/1.1
- 客户端可以与web服务器连接后,可以获得多个web资源
4.3 HTTP请求
- 客户端---发请求---服务器
4.4 HTTP响应
- 服务器---响应---客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!