JavaWeb

一、基本概念

1.1 前言

web开发:

1、web:网页(比如www.baidu.com)

2、静态web

html,css

提供给所有人看的数据始终不会发生变化!

3、动态web

淘宝,天猫等等,几乎所有的网站;

提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同。

技术栈:Servlet/JSP,ASP,PHP

在Java中,动态web资源开发的技术统称位JavaWeb。

 

1.2 web应用程序

web应用程序:可以提供浏览器访问的程序。

a.html    b.html  等等多个web资源,可以被外界访问,对外界提供服务。

访问到的任何一个页面或资源,都存在于这个世界的某一台计算机上。

URL(Uniform Resoure Locator:统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

这些统一的web资源会被放在同一个文件夹下,  web应用程序 ------>Tomcat:服务器

一个web应用由多个部分组成(静态web,动态web)

html、css、js

jsp、servlet

java程序

jar包

配置文件(Properties)

web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理。

1.3 静态web

*.htm、*.html这些都是网页的后缀,如果服务器一直存在这些东西,我们就可以直接进行读取。

 

 

 

存在的缺点:

Web页面无法动态更新,所有用户看到都是同一个页面

轮播图,点击特效:伪动态

JavaScript[实际开发中用的最多]

VBScript

它无法和数据库交互(数据无法持久化,用户无法交互)

1.4 动态web

页面会动态展示,Web的页面展示的效果因人而异。

存在的缺点:

假如服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布;   停机维护

优点:

Web页面可以动态更新,所有用户看到都不是同一个页面

可以与数据库交互(数据持久化:注册了一个账户,商品信息、用户信息等都可以长久保存)

 

 

 

 JDBC(JavaDataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。

二、 web服务器

2.1 技术讲解

 ASP:即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。

微软(国内最早流行的),在HTML中嵌入了VB的脚本。  ASP+COM

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境事件驱动为机制的可视化程序设计语言。

在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱。  导致维护成本高

C#

IIS(Internet Information Services ,互联网信息服务 )

IIS作为一种Web(网页)服务组件,其中包括zWeb服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

php:(Pre Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。

php开发速度快,功能强大,跨平台,代码简单。(中国70%网站都是中小型的 )   

缺点:无法承载大访问量的情况(局限性)

JSP/Servlet:JSP全称Java Server Pages,是一种动态网页开发技术。. 它使用JSP标签在HTML网页中插入Java代码。. 标签通常以<%开头以%>结束。. JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。. 网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。. JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。. JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

B/S架构:浏览和服务器

C/S架构:客户端和服务器

sun公司主推的B/S架构

基于java语言的(所有大公司,或一些开源的组件,都是java写的)

可以承载三高问题(高并发、高可用、高性能)带来的影响;

语法像ASP,ASP------->JSP,从而加强市场强度。

2.2web服务器(web server)

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息。

ISS

微软的:ASP...Window中自带的.

Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个java初学web来说,它是最佳选择。
Tomcat 实际上运行JSP 页面和Servlet。

三、Tomcat

http://localhost:8080

可以配置启动的端口号

Tomcat的默认端口号是8080

mysql:3306

http:80

https:443

在Tomcat安装目录下的conf目录找到文件“server.xml”文件,用记事本打开,将 port="8080"改为 port="80",并保存。 

<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

可以配置主机的名称

Tomcat默认的主机名称为localhost--->127.0.0.1

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

默认网站应用存放位置webapps

win32 ---drivers----etc-----hosts

{面试高频问题:网站是如何访问的?

1、输入一个域名:回车

2、检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;

有就直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问

没有:去DNS服务器(包含全世界的域名)上找,找到的就返回,找不到就返回找不到}

发布一个web网站

将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

网站应该有的结构:

--webapps : Tomcat服务器的web目录

-ROOT

-longstudy:网站的目录名

        -WEB-INF

        -classes:java程序

        -lib:web应用所依赖的jar包

        -web.xml:网站配置软件

        -index.html  默认的首页 

        -static

         -css

                 -style.css

           -js

           -img

          -......

 

四、 HTTP(超文本传输协议)

4.1 什么是HTTP

HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。

文本:html,字符串,~...

超文本:图片、音乐、视频、定位、地图......

默认端口 80

Https:     s(安全的)        默认端口443

4.2 两个时代

http1.0

HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接

http2.0

HTTP/2.0:客户端可以与web服务器连接后,可以获得多个web资源。

4.3HTTP请求

客户端发请求到服务器

百度:

Request URL:https://www.baidu.com/                      请求地址

Request Method:GET                                                  get方法/post方法

Status Code:200 ok                                                     状态码:200     

Remote(远程) Address:14.215.177.39:443 

 

 

 1、请求行 

请求行中的请求方式:GET

请求方式:Get,Post,HEAD,DELETE,PUT,TRACT...

get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全。

post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全但不高效。

2、消息头

 

 

 

 

       

4.4HTTP响应

服务器响应客户端

百度:

 

 

 1.响应体

 

 

 2、响应状态码

200:请求响应成功  200

3xx:请求重定向  (重定向:重新到所给的新位置)

4xx:找不到资源   404

资源不存在

5xx:服务器代码错误   500   502:网关错误

 

面试题:

当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?

 

五、Maven

为什么要学习这个技术?

1、在Javaweb开发中,需要使用大量的jar包,需要手动去导入。

2、如何能够让一个东西自动帮我导入和配置这个jar包。

5.1 Maven 项目架构管理工具

我们目前用它就是方便导入jar包的。

Maven核心思想:约定大于配置

有约束,不要去违反。

Maven会规定好如何去编写Java代码,必须按照这个规范来。

 

如果遇到写的配置文件无法被导出或生效的问题,解决方案:

在build中配置resources,防止资源导出失败的问题

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>

5.2 下载安装Maven

http://maven.apache.org/download.cgi

5.3 配置环境变量

在我们的系统环境变量中,配置如下配置

M2_HOME   maven目录下的bin目录

MAVEN_HOME    maven的目录

在系统的path中配置 %MAVEN_HOME%\bin

 

 

 测试maven是否安装成功,保证必须配置完毕.

5.4阿里云镜像

镜像:mirrors

作用:加速我们的下载

国内建议使用阿里云的镜像。

maven  conf   setting   mirror 配置阿里云镜像

<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>



posted @ 2021-05-26 13:19  mapian  阅读(616)  评论(0)    收藏  举报