JavaWeb01:Maven和Tomcat

1. 基本概念
静态web:html,css,提供的数据不会变化
– 客户端通过web service从服务器获取*.html, *.htm
在这里插入图片描述
– 无法动态更新:轮播图,点击特效,伪动态;JavaScript(实际中用得最多)。无法和数据库交互。
动态web:提供给人看的数据发生变化,因人而异,淘宝等。常用Servlet, ASP, PHP。
在这里插入图片描述
– 假如服务器的动态web资源出现错误,我们需要重新编写后台程序,重新发布(停机维护)。
– 优点是可以动态更新,可以与数据库交互(数据持久化:注册,上平信息,用户信息)。

2. web应用程序
a.html, b.html等多个web资源可以被外界放访问,并被放在同一个文件夹下–>Tomcat: 服务器。一个web应用由多部分组成:
– html. css. js
– jsp, servlet
– Java程序
– jar包
– Properties配置文件
web程序编写完若想给外界访问,需要一个服务器来统一管理。

3. Web服务器
3.1 技术

–ASP: C#, IIS
–PHP: 开发速度快,跨平台,代码简单。但是无法承载大访问量情况。(接近70%占有率)
–JSP/Servlet: sun公司主推的B/S架构,基于Java,可以高并发高可用高性能。语法像ASP。
3.2 web服务器
–IIS: windows中自带的
–Tomcat: Tomcat 服务器属于轻量级应用服务器,并发访问用户不是很多的场合下被使用,是开发和调试JSP 程序的首选。当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的。当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
在这里插入图片描述

1 进入Tomcat的bin目录下:终端输入
	cd /Users/mac/Environment/tomcat-9.0.40/bin  
	也可以打开Tomcat文件夹,把bin文件夹直接拖拉到终端,前提是先输入cd+空格

2 授权bin目录下的所有操作:终端输入sudo chmod 755 *.sh,输完回车
	sudo chmod 755 *.sh

3 这时要输入密码,输完回车

4 这时候就可以开启Tomcat了,终端输入sudo sh ./startup.sh,输完回车
	sudo sh ./startup.sh
5 可浏览器输入 http://localhost:8080/ 检验
6 关闭Tomcat,用终端输入 sh ./shutdown.sh,回车即可关闭

说明:
sudo为系统超级管理员权限.
chmod 改变一个或多个文件的存取模式
755代表用户对该文件拥有读、写、执行的权限,同组的其他人员拥有执行和读的权限,没有写的权限,其它用户的权限和同组人员一样.
777代表,user,group ,others ,都有读写和可执行权限.
chmod -R 777 folername,获取文件夹权限.

在这里插入图片描述在这里插入图片描述3.3 如何访问一个网站:
在这里插入图片描述
3.3 发布网站
将自己写的网站放到服务器中指定的web应用的文件夹(webapps)下,就可以访问了。网站应有的结构

--webapps:Tomcat服务器的web目录
	- ROOT
	- yyz:(网站目录名)
		- WEB-INF 
			- classes:(Java程序)
			- lib:(web应用所以来的jar包)
			- web.xml:(网站配置文件) 
		- index.html:(默认首页,或.jsp) 
		- static
			- css 
				- style.css
			- js
			- img
		-...  

4. HTTP详解
4.1 简介
http指超文本传输协议。文本指html,字符串。超文本指图片,音乐,视频,定位,地图等。默认端口80。https的s指security,默认端口443。
4.2 两个时代
HTTP/1.0: 客户端和服务器连接,只获取一个资源就断开连接。
HTTP/1.1: persistent, 可获取多个资源。
4.3 Request和Response

//请求
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK //状态码,200代表ok
Remote Address: 180.101.49.11:443 //百度ip
//请求header
Accept:text/html //告诉浏览器支持的数据类型
Accept-Encoding: gzip, deflate, br //支持哪种编码,GBK UTF-8 GB2312 ISO8859-1
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8 //告诉浏览器它的语言环境
Cache-Control: max-age=0 //缓存控制
Connection: keep-alive //告诉浏览器,请求完成是断开还是保持连接。
HOST: // 主机
1)请求行:请求方式:*GET*/*POST*/HEAD/DELETE/PUT/TRACT
POST安全但不高效,大小没限制,GET高效但不安全。
2)消息头:见上header
//响应header
Cache-Control: private	//缓存控制
Connection: keep-alive	//保持连接
Content-Encoding: gzip	
Content-Type: text/html;charset=utf-8 
//响应体
Accept:text/html //告诉浏览器支持的数据类型
Accept-Encoding: gzip, deflate, br //支持哪种编码,GBK UTF-8 GB2312 ISO8859-1
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8 //告诉浏览器它的语言环境
Cache-Control: max-age=0 //缓存控制
Connection: keep-alive //告诉浏览器,请求完成是断开还是保持连接。
HOST: // 主机
Refresh: //告诉客户端多久刷新一次
Location: //让网页重新定位
响应状态码:
200 请求响应成功 200
3xx 请求重定向,即重新到我给你的新位置 
4xx 找不到资源 404
5xx 服务器代码错误 500,502(网关错误)

5. Maven
5.1 Maven项目架构管理工具
JavaWeb开发时需要导入大量jar包,Maven避免手动导入。
核心思想:约定大于配置 ,有约束不要违反。
5.2 Maven安装
Linux: https://www.cnblogs.com/zhuwf/p/11646617.html
下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/
Windows:在这里插入图片描述
5.3 阿里云镜像
mirrors作用:加速下载。国内建议使用阿里云镜像。找到镜像标签:
在这里插入图片描述
把如下代码加在后面:

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>       
</mirror>
ps:
JEECG存在自定义JAR包,放在自己的Maven私服上面,所以有的时候会遇到下载失败。
一般遇到下载失败的情况,是因为用户设置了本地镜像,导致无法从JEECG私服下载资源,下面的方式进行镜像排除配置即可。
<mirror>
     <id>nexus-aliyun</id>
   	 <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
     <name>Nexus aliyun</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> 
重点在<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
如果不加,默认所有的依赖都会去阿里云仓库下载,加上后jeecg的依赖包就可以从jeecg私服下载了。推荐后者。

5.4 本地仓库
分为本地仓库和远程仓库。
建立本地仓库:修改地址,不然maven会自动生成文件夹
在这里插入图片描述
5.5 Maven和IDEA
在这里插入图片描述
在这里插入图片描述
出现下图说明项目搭建成功
在这里插入图片描述
在这里插入图片描述

IDEA中的Maven设置:成功后还是要看一眼
在这里插入图片描述
在这里插入图片描述
一些问题:
在这里插入图片描述
初始的maven:
首先要把环境变量配置好,在初始创建项目界面,configration->preferrences
在这里插入图片描述

一开始不选webapp
在这里插入图片描述
因此在上面webapp的项目中,可加文件夹使其完整。

在这里插入图片描述
在这里插入图片描述
5.5 Tomcat和IDEA
edit configuration
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
fix warning:
为什有这个问题?访问网站,必须要指定一个文件夹名。idea接管tomcat不会默认去找webapp,必须手动配置。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
侧边栏:
在这里插入图片描述
clean可把WEB.INF下的lib删除。
5.5 pom.xml
在这里插入图片描述
dependency用来关联jar包,刷新自动下载。
在这里插入图片描述
由于maven约定大于配置,之后写的配置文件可能无法被导出或生效。解决方案:在build下面加resource。
https://www.cnblogs.com/pixy/p/4798089.html
在这里插入图片描述
Java文件夹下只能写Java,写.xml会n无法导出,加这个可以导出。
5.6 目录树
在这里插入图片描述

在这里插入图片描述
5.7 servlet的引导和Maven repository
建立一个新maven项目
在这里插入图片描述
1)在tomat的root里也有web.xml文件,是最标准的。更换如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
</web-app>

替换为4.0版本,和tomcat一致
2)加入java和resource文件夹:
在这里插入图片描述
3)在java文件夹中新建class文件(没办法直接加servlet,所以手动加)
https://mvnrepository.com/
搜索servlet-api(其实tomcat的lib目录里也有)
在这里插入图片描述
找到pom.xml文件,把下面依赖拷贝到该xml文件中,刷新。

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

在这里插入图片描述

然后如下图所示,导入包:
在这里插入图片描述
4)编写程序
generate -> override method -> doGet, doPost

猜你喜欢

转载自blog.csdn.net/qq_43378019/article/details/110679359