少女祈祷中 . . .|

园龄:粉丝:关注:

2023-02-15 17:06阅读: 26评论: 0推荐: 0

JavaWeb的前期准备

一、概念


1.什么是javaWeb

JavaWeb指的是,java语言编写的可以通过浏览器访问的程序,统称为JavaWeb,它基于请求和响应。

2.什么是请求

请求指的是客户端向服务器发送数据,叫请求Request

3.什么是响应

响应是指服务器给客户端回传数据,叫响应Response
注意:请求和响应是成对出现的 , 有请求就会有响应

4.软件的结构方式

- B/S 浏览器 / 服务器架构
- C/S 客户端 / 服务器架构

5.Web资源的分类

  • 静态资源:html、css、js等

  • 动态资源:jsp页面、servlet程序、Vue

6.常见的Web服务器

Tomcat: 由 Apache 组织提供的web服务器,轻量级,提供了 jsp 和 Servlet 支持,应用最广的服务器

JBoss :javaEE规范、开源代码服务器

二、Tomcat


1.目录介绍

bin 存放服务器的可执行文件
conf 存放服务器配置文件
lib 存放服务器所选的jar
logs 存放的是日志信息
temp 存放的服务器的临时数据
webapps 部署web工程的目录
work tomcat的工作目录 jsp源码 session持久化目录

2.安装及配置Tomcat

阿帕奇雄猫® - 欢迎! (apache.org)

运行后发现出现中文乱码,说明字符集不同,需要到Tomcat根目录下的conf子目录下的logging.properties文件里修改编码

将配置文件里的所有encoding = UTF-8都修改为encoding = GBK,使其识别中文,保存配置文件后,再次启动Tomcat解决中文乱码

3.集成Tomcat到IDEA

3-1.第一种:创建web项目

image-20230215164907250

3-2.第二种:创建普通项目后添加框架支持

image-20230215165005047

3-3.在IDEA里配置Tomcat

image-20230215165309414

3-4.配置当前项目的Tomcat

image-20230215165441448

三、XML


1.什么是xml

xml是可扩展的标记性语言

2.xml的作用

- 用来保存数据,这些数据具有自我描述性
- 可以用来作为项目或模块的配置文件
- 可以作为网络数据传输的格式----选择以Json为主

3.xml语法

文档声明 元素 注释 文本

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

属性

version-版本
encoding-编码

4.xml的书写与命名规范

- id名可以包含字母、数组以及其他字符
- 标签名理论上可以是任何文字或字母,但是建议使用英文字母
- 标签要么是单标签要么是双标签且不能有空格
- 标签的属性要求使用双引号包起来

四、Maven


1.什么是maven

Apache Maven是专门用于管理和构建Java项目的工具

主要功能:

  • 让每个软件新建的项目都有一套标准的项目结构
  • 有一套标准的项目构建流程(编译、测试、打包、发布)
  • 提供一套非常完善的jar包依赖管理机制

2.当前流行的构建工具

* maven--市场占有大
* Gradle--不到maven的50%,增长趋势非常明显
* Ant

3.安装maven

3-1.安装maven

Maven – 欢迎来到 Apache Maven

3-2.添加环境变量
变量名:MAVEN_HOME
变量值:maven的安装路径

在Path里添加

%MAVEN_HOME%\bin
3-3.配置本地下载仓库

到maven根目录下的conf子目录下的settings.xml文件里修改配置信息,查找localRepository找到maven默认的仓库地址将其修改成自己创建的repository文件夹

<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\maven\repository</localRepository>
3-4.配置阿里云私服

还是在当前文件查找<mirror>,找到maven默认的远程仓库下载地址在下面添加一条阿里云私服的

<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>

4.maven的使用

常用命令:

mvn compile 编译当前项目
mvn clean 清理当前项目
mvn test 测试(运行测试)
mvn package 打包项目
mvn install 安装需要的插件

5.依赖管理

如果需要在maven项目中使用jar包,可以使用坐标来引入

<!-- 坐标引入jar包-->
<dependencies>
<!-- mysql-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<!-- 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- JDBCutils-->
<!-- https://mvnrepository.com/artifact/me.geso/jdbcutils -->
<dependency>
<groupId>me.geso</groupId>
<artifactId>jdbcutils</artifactId>
<version>2.2.0</version>
</dependency>
<!-- DButils-->
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.7</version>
</dependency>
<!-- Driud-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- lombox-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
<!-- jsp-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!-- jstl-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- taglibs标准库-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- IOUtils-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
<!-- google图形验证码-->
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>
<!-- fastJSON-->
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!-- mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<!-- 添加slf4j日志api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.20</version>
</dependency>
<!-- 添加logback-classic依赖 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 添加logback-core依赖 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<!-- spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<!-- spring操作jdbc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<!-- spring整合mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- spring整合junit-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<!-- aop切面-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<!-- springmvc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>

Maven中央仓库:Maven Repository: Search/Browse/Explore (mvnrepository.com)

依赖范围:

<scope>...</scope>

​ 编译环境(main) 测试环境(test) 运行环境(打包以后)

image-20230215194951486

默认值为:compile

tomcat:

<build>
<finalName>maven_servlet</finalName>
<plugins>
<!-- tomcat-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 访问路径编解码字符集-->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>

五、HTTP


1.HTTP的概念

超文本传输协议 , 规定和约束了浏览器和服务器之间的数据传输的规则,数据传输必须按照此规则 , 请求数据和响应数据才能够正常进行

2.请求数据的格式

GET /maven_webapp/ HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,zh-TW;q=0.5

包含部分

请求行:http请求数据的第一行又包含三个部分,请求方式GET(默认为GET)/请求项目地址/协议和版本号

请求方式很多 7种 : 常用GET POST
请求头:第二行开始,格式:key :值 规定各种配置
请求体:请求的时候携带的参数

3.响应数据的格式

HTTP/1.1 200
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 57
Date: Thu, 16 Feb 2023 06:14:32 GMT
Keep-Alive: timeout=20
Connection: keep-alive
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

响应行:响应数据的第一行 HTTP/版本 响应状态码 描述

响应头:第二行开始 key :value

空行

响应体:响应给浏览器的内容 响应体和响应头之间有应该空行

4.常见的响应头属性和响应状态码

响应头属性:

属性 说明
Content-Type 表示内容的类型
Content-Length 表示响应内容的字节数(长度)
Accept-Encoding 表示响应的压缩算法

响应状态码:

状态码 描述 说明
200 ok 请求成功
404 Not Found 请求资源不存在
500 服务器发送不可预期的错误

本文作者:顔をして

本文链接:https://www.cnblogs.com/ynxiyan/p/17123809.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   顔をして  阅读(26)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 I Really Want to Stay at Your House Samuel Kim,Lorien
  2. 2 将月亮藏进躯体 豆芽鱼(庄东茹)
  3. 3 辞九门回忆 解忧草,冰幽
  4. 4 I'M Not Girl 伊晗
辞九门回忆 - 解忧草,冰幽
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 虫二颠

作曲 : 唯子/妖狐公子

一曲定重楼

一眼半生筹

看的全都是那诡谲云涌

入得此门不回首

无需宣之于口

我对案再拜那风雨瓢泼的残陋

再聚首

戏子多秋

可怜一处情深旧

满座衣冠皆老朽

黄泉故事无止休

戏无骨难左右

换过一折又重头

只道最是人间不能留

误闯天家

劝余放下手中砂

张口欲唱声却哑

粉面披衣叫个假

怜余来安座下

不敢沾染佛前茶

只作凡人赴雪月风花

绕过胭脂楼

打散结发扣

唱的全都是那情深不寿

入得此门不回首

无需宣之于口

我对镜遮掩那风雨瓢泼的残陋

碑已旧

戏子多秋

可怜一处情深旧

满座衣冠皆老朽

黄泉故事无止休

戏无骨难左右

换过一折又重头

只道最是人间不能留

误闯天家

劝余放下手中砂

送那人御街打马

才子佳人断佳话

怜余来苦咽下

求不得佛前茶

只留三寸土种二月花