1、基本概念
1.1web开发
1.1.1静态web
html,css,js
无法与数据库进行交互
1.1.2动态web
每个人在不同时间不同地点看到的信息不同
技术栈:Servlet/JSP, ASP, PHP
优点:可以动态更新,所有用户看到的都不是同一个页面
它可以与数据库进行交互
1.2Web应用程序
Web应用程序:可以提供浏览器访问的程序
所访问到的任何一个页面或者资源,都存在于世界的某一个角落的计算机上
URL:
这个同一的web资源会被放在同一个文件夹下,web应用程序——>Tomcat:服务器
一个web应用由多部分组成(静态和动态)
2、web服务器
2.1技术讲解
ASP:
微软:国内最早流行的就是ASP
HTML中嵌入了VB脚本,ASP+COM
在ASP开发中,基本一个页面就是几千行,代码混乱
维护成本高
PHP:
开发速度很快,跨平台,功能很强大
无法承载大访问量的情况
JSP/Servlet:
B/S:浏览和服务器
C/S:客户端和服务器
基于JAVA语言的
可以承载高并发,高性能,高可用
2.2web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
IIS
微软的:ASP…Windows中自带的
Tomcat
实际运行JSP和Servlet
3、Tomcat
3.1安装tomcat
3.2tomcat配置和启动
3.3配置
JAVA环境变量没有配置
闪退问题:需要配置兼容性
乱码问题:配置文件中设置
服务器核心配置文件
apache-tomcat-9.0.52\conf\server.xml是核心配置文件
可以配置启动的端口号
tomcat的默认端口号为8080
mysql:3306
http:80
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
可以配置主机的名称
默认的主机名为:localhost
默认网站应用存放的位置为:webapps
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
网站如何进行访问:
1、输入一个域名:回车
2、检查本机的C:\Windows\System32\drivers\etc\hosts配置下有没有这个域名映射
如果有:直接返回对应的IP地址
如果没有则去DNS(全世界域名管理)
可以配置环境变量
3.4发布一个网站JSP已学完
4、HTTP
4.1什么是HTTP(计网)
4.2两个时代
HTTP1.0
HTTP/1.0:客户端与web服务器连接,只能获得一个web资源,断开连接
HTTP2.0
HTTP/1.1:客户端与web服务器连接,可以获得多个web资源
4.3HTTP请求
客户端——发请求——服务器
百度
Request URL: https://www.baidu.com/ 请求地址
Request Method: GET get方法/post方法
Status Code: 200 OK 状态码:200
Remote Address: 220.181.38.150:443 远程地址
Referrer Policy: strict-origin-when-cross-origin
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
请求行:
请求行中的请求方式:GET
请求方式:GET,POST…
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但是高效
post:请求能够携带的参数比较多,大小无限制,不会在浏览器的URL地址栏显示数据内容,安全
消息头:
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式
Accept-Language: 告诉浏览器它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
4.4HTTP响应
Connection: keep-alive 连接
Content-Encoding: gzip 编码
Content-Type: text/html; charset=utf-8 类型
响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding: 支持那种编码格式
Accept-Language: 告诉浏览器它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
Location:让网页重新定位
Refresh:告诉客户端,多久刷新一次
响应状态码(软件测试接触过)
200:请求响应成功
3xx:请求重定向
4xx:找不到资源
5xx:服务器代码错误
5、Maven
在JAVA中需要大量的jar包,大都是手动配置
而Maven能够自动帮助导入jar包
5.1Maven项目架构管理工具
核心思想:约定大于配置
maven会规定号如何写JAVA代码
5.2下载
5.3Maven环境配置
5.4阿里云镜像:
加速加载
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>>
5.5本地仓库
5.6IDEA使用
5.7IDEA中创建一个普通的项目
web应用下才会有
5.8IDEA中配置Ttomcat
当访问一个网站时,需要指定一个文件夹的名字
6、Servlet
6.1Servlet简介
是sun公司开发动态web的技术
sun在API中提供一个接口叫Servlet,若想开发一个Servlet程序,只需要完成两个步骤。
编写一个类,实现Servlet接口,把开发好的JAVA部署到web服务器中
6.2Servlet原理
Servlet是由web服务器调用,web服务器在收到浏览器请求之后,会:
6.3Mapping问题
1、一个Servlet请求可以指定一个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
2、一个Servlet请求可以指定多个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello3</url-pattern>
</servlet-mapping>
3、一个Servlet请求可以指定通用映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
4、可以自定义后缀实现请求映射
*.dan
*前面不能加项目映射的路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.dan</url-pattern>
</servlet-mapping>
5、优先级问题
指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求
6.4servletContext
web容器在启动的时候,会为每个web程序创建一个对应的ServletContext对象,代表了当前的web应用
共享数据:
在这个Servlet中保存的数据,可以在另外一个servlet中拿到
获取初始化参数
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>
请求转发
转发的图
重定向
读取资源文件