个人学习笔记Javaweb01
1、基本概念
1.1web开发
-
web,网页的意思,[www.baidu.com]
-
静态web
- html,css
- 数据始终不会发生变化
-
动态web
- 数据会根据时间和访问者的不同发生变化
- 几乎所有无网站都是动态
- 常用技术:servlet,jsp,asp,php,
在Java中,动态web开发的技术统称Javaweb
1.2、web应用程序
web应用程序:可以提供浏览器访问的程序
2、web服务器
2.1、jsp/servlet:
-
sun公司主推得b/s架构
-
基于Java语言的(所有的大公司或者一些开源组件都是Java开发的)
-
可以承受高并发
2.2、Tomcat服务器
1、下载安装步骤
-
下载地址[https://tomcat.apache.org/download-90.cgi]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gPOnrIVK-1591260571601)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200603114424127.png)]
-
解压到指定目录
-
配置环境变量
-
新建变量名:CATALINA_BASE,变量值:D:\apache-tomcat-7.0.57(tomcat解压路径)
-
新建变量名:CATALINA_HOME,变量值:D:\apache-tomcat-7.0.57
-
打开PATH,添加变量值:;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin
-
进入bin目录下:启动双击 startup.bat 启动。 在浏览器输入:http://localhost:8080/,出现下图即安装成功
-
2.3、Tomcat分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g8LBzwRW-1591260571609)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200603161245871.png)]
-
核心配置文件--------->server.xml
- port:端口默认8080
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
-
主机名以及网站发布目录(不建议修改)
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
3、http分析
3.1、什么是http
- HTTP(超文本传输协议)是一种简单的请求-响应协议,他通常运行在TCP之上
- 文本:html、字符串
- 超文本:图片、视频、地图、定位…
- 默认端口为80
- HTTPS:安全的
- 默认端口:443
3.2、http的两个时代
- http1.0
- 在客户端与web服务器连接后,只能获得一个web资源,断开连接
- http1.1
- 在客户端与web服务器连接后,可以获得多个web资源,断开连接
3.3、http请求
-
客户端------->请求(request)------->服务器
-
Request URL: https://www.baidu.com/ 请求地址 Request Method: GET 请求方式 Status Code: 200 OK 请求状态码 Remote Address: 61.135.169.121:443
-
-
请求行中的请求方式:get/post
- get:请求能够携带的参数比较少,大小有限制,会在浏览器地址栏显示参数,不安全但比较高效
- post:请求能够携带的参数无限制,大小无限制,不会在浏览器地址栏显示参数,安全但不高效
-
消息头:
-
Accept: 告诉浏览器所支持的数据类型 Accept-Encoding: gzip, deflate, br 告诉浏览器支持的编码 Accept-Language: zh-CN,zh;q=0.9 告诉浏览器他的语言环境 Cache-Control: max-age=0 缓存控制 Connection: keep-alive 告诉浏览器请求完成是断开还是保持连接 host: 主机
-
3.3、http响应
-
服务器------>响应(response)------->客户端
-
Cache-Control: private 缓存控制 Connection: keep-alive 保持连接 Content-Encoding: gzip 编码 Content-Type: text/html;charset=utf-8 类型
-
-
响应体
-
Accept: 告诉浏览器所支持的数据类型 Accept-Encoding: gzip, deflate, br 告诉浏览器支持的编码 Accept-Language: zh-CN,zh;q=0.9 告诉浏览器他的语言环境 Cache-Control: max-age=0 缓存控制 Connection: keep-alive 告诉浏览器请求完成是断开还是保持连接 host: 主机 refrush:告诉客户端多久刷新一次 location:让网页重新定位
-
-
响应状态码
- 200:响应成功
- 404:找不到
- 3xx:用于请求重定向
- 5xx:服务器代码错误(500) 网关错误(502)
4、maven技术
4.1、maven是什么
-
Maven是项目管理工具,对软件项目提供构建与依赖管理
-
Mavan是Apache下的Java开源项目
-
Mavan为Java项目提供了统一的管理方式,已成为业界标准
4.2、Maven插件安装和配置(可以选择开发工具自带的,但是不建议)
-
下载地址:http://maven.apache.org/
-
解压后配置环境变量
-
新建系统M2_HOME变量,并把安装maven路径拷贝上去
-
配置path变量,并把maven路径拷贝上去,这次的maven路径到bin
-
测试maven环境是否配置成功,输入mvn -v
-
-
settings.xml的配置
-
镜像要选择阿里云镜像
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
-
jdk版本配置
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties>
-
本地仓库路径
<localRepository>G:/JavaStudy/mavenRepository</localRepository>
-
集成到idea
依次点击File—>Settings
点击Plugins—>maven,maven home directory选择安装目录,User settings file选择配置好的settings所在目录,local repository会自动识别
-
4.3、创建一个干净的Maven项目
* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nhrXaFS7-1591260571611)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604103739059.png)]
* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GuhpY4Rn-1591260571612)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604103808539.png)]
4.4、在IDEA中配置Tomcat
* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m5PvGtbe-1591260571612)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604105219868.png)]
* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iGd8tcLo-1591260571613)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604105302181.png)]
* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qKVIEZ5s-1591260571614)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604105437918.png)]
* [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6SBa6Ht9-1591260571615)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604105848004.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kFzW9nsM-1591260571615)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604105931594.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4XFRuUO9-1591260571616)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604105956763.png)]
4.5、Maven配置文件pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xunteng</groupId>
<artifactId>maven-javaweb</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>maven-javaweb Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--依赖的jar包-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!--配置resources防止资源导出失败的问题-->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<!--插件-->
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<uriEncoding>UTF-8</uriEncoding>
<path>/</path>
<port>80</port>
</configuration>
</plugin>
</plugins>
</build>
</project>
rg.apache.tomcat.maven
tomcat7-maven-plugin
2.2
UTF-8
80
> Maven的强大之处在于,自动导入这个jar包所依赖的其他jar包