01_Web开发基础

一、常见软件系统体系结构

C/SB/S是软件发展过程中出现的两种软件架构方式。

1.1、C/S架构

C/S结构即客户端/服务器(Client/Server),例如QQ

需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户端程序;

缺点:软件更新时需要同时更新客户端和服务器端两端,比较麻烦;

优点:安全性比较好。

1.2、B/S架构

B/S结构即浏览器/服务器(Browser/Server);

优点:只需要编写服务器端程序,不需要安装专门的客户端软件,只需要浏览器就行;

缺点:安全性较差。

二、Web资源

Web(World Wide Web) 称为万维网,简单理解就是网站,它用来表示Internet主机上供外界访问的资源。

Internet上供外界访问的资源分为:

  • 静态资源
  • 动态资源

2.1、静态资源

供人们浏览的数据始终是不变;

浏览器能直接看懂

例如:HTMLCSSJavaScript、各种图片

2.2、动态资源

供人们浏览的数据是由程序产生的,不同时间点访问WEB页面看到的内容各不相同。

客户端请求的页面如果是静态网页,那么服务器会直接把静态网页的内容响应给客户端。如果客户端请求的是动态网页,服务器需要先把动态网页转换成静态网页,然后再把转换后的静态网页响应给客户端。

注:从广义上讲,用户看到的都是静态网页。

例如:ServletJSPASPPHP,但是在Java里面只涉及JSP/Servlet

Java中,动态web资源开发技术统称为JavaWeb

三、Web服务器

Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。

3.1、常见Web服务器

开源:

  • Tomcat:主流Web服务器之一,适合初学者
  • Jetty:运行效率比Tomcat
  • Resin:所有开源服务器软件中,运行效率最高的
  • 三者的用法从代码角度完全相同,只有在开启、关闭服务器软件时对应的命令稍有区别。掌握一个即掌握所有

收费:

  • WebLogicOracle
  • WebSphereIBM
  • 提供相应的服务与支持,软件大,耗资源

3.2、Tomcat服务器

TomcatApache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,免费开源、并支持ServletJSP规范。目前Tomcat最新版本为9.0

Tomcat技术先进、性能稳定,深受Java爱好者喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

3.2.1、Tomcat安装
3.2.1.1、下载

官网:https://tomcat.apache.org/index.html

Tomcat8`下载地址:`https://tomcat.apache.org/download-80.cgi

在这里插入图片描述

根据自己电脑情况,选择32位版本或64位版本下载。为了统一,一定要下载压缩版本。

3.2.1.2、解压安装

Tomcat解压到一个没有特殊符号的目录中,纯英文路径就可以。

3.2.1.3、Tomcat目录结构
文件夹说明备注
bin该目录下存放的是二进制可执行文件startup.bat启动Tomcatshutdown.bat停止Tomcat
conf这是一个非常重要的目录,这个目录下有两个最为重要的文件server.xmlweb.xmlserver.xml:配置整个服务器信息。例如修改端口号,编码格式等。web.xml:项目部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。
libTomcat的类库,里面存放Tomcat运行所需要的jar文件。
logs存放日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,异常也会记录在日志文件中。
tempTomcat的临时文件,这个目录下的东西在停止Tomcat后删除。
webapps存放web项目的目录,其中每个文件夹都是一个项目;其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。
work运行时生成的文件,最终运行的文件都在这里。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的javaclass文件都会存放到这个目录下。
3.2.2、启动和停止
3.2.2.1、启动

进入Tomcat安装目录bin下,双击startup.bat启动程序,直到控制台出现xxxms,表示启动完成。

3.2.2.2、验证

打开浏览器,在地址栏输入http://localhost:8080,出现如下界面表示启动成功。

在这里插入图片描述

3.2.2.3、停止

双击shutdown.bat即可关闭Tomcat启动窗口。

注意:一定不要点击控制台的关闭按钮,可能导致停止失败。

3.2.2.4、关于乱码

由于Windows系统中文环境默认编码是GBK编码,而Tomcat8.5在控制台输出的默认编码是UTF-8,这就导致了控制台乱码,解决的思路也很简单:

  • 方式1,设置Windows系统编码为UTF-8,不建议这么做;
  • 方式2,设置Tomcat8.5在控制台输出的默认编码是GBK,推荐。

针对方式2,修改logging.properties中的所有UTF-8GBK

3.2.3、项目部署及访问

静态网站:

  • webapps目录下创建一个目录hello(命名必须不包含中文和空格),这个目录称之为项目目录;
  • 在项目目录下创建一个html文件,例如index.html
  • 启动Tomcat
  • 打开浏览器访问:http://localhost:8080/hello/index.html

动态网站:

  • webapps目录下创建一个项目目录hello1

  • 在项目目录下创建如下内容:

    • WEB-INF
      

      目录;

      • WEB-INF目录下创建web.xml文件(到ROOT项目下的WEB-INF复制即可);
      • 创建classes,用于存放.class文件;
      • 创建lib,用于存放jar文件。
    • 创建动态页面index.jspWEB-INF同级目录;

  • 打开浏览器访问:http://localhost:8080/hello1/index.jsp

index.jsp内容如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
      <%
		String name = "张三";
		out.print("<p>" + name + "</p>");
	  %>
      <p>Hello JavaWeb</p>
  </body>
</html>

关于访问路径:协议://主机名:端口号/项目名/资源

  • 协议:一般是httphttps
  • 主机名:localhost或者一个其他的域名
  • 端口号:Tomcat默认的是8080
  • 项目名:和webapps下项目所在目录的目录名一致
  • 资源:静态资源或动态资源位置,如果资源在某个目录中,此处也要包含目录的名字。

注意:WEB-INF目录中的资源无法直接访问。

3.2.4、常见问题

启动Tomcat控制台闪退,一般是由于没有配置JAVA_HOME

之前在配置JDK的环境变量时,配置JAVA_HOME就是为了此处准备的。

JAVA_HOME的值是JDKbin的上一级目录。

3.3、IDEA集成Tomcat

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四、HTTP协议

4.1、概述

HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。

HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。我们要学习的就是这个两个格式。客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”。

HTTP协议的特点:

  • 支持客户端(浏览器)/服务器模式。

  • 简单快速:客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信速度很快。请求方法常用的有GETPOST等。

  • 灵活:HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识。

  • 无连接:无连接指的是每次

    TCP
    

    连接只处理一个或多个请求,服务器处理完客户的请求后,即断开连接。采用这种方式可以节省传输时间。

    • HTTP1.0版本是一个请求响应之后,直接就断开了。称为短连接。
    • HTTP1.1版本不是响应后直接就断开了,而是等几秒钟,这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,就会断开连接。称为长连接。
  • 无状态:HTTP协议是无状态协议。

    • 无状态是指协议对于事务处理没有记忆能力。

4.2、请求协议

客户端发送给服务器的格式

格式:

请求首行
请求头信息
空行
请求体

分类:

  • GET
    
    • 可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔;
    • URL地址后附带的参数是有限制的,其数据容量通常不能超过1K
    • GET请求没有请求体。
  • POST
    
    • 传送的数据量无限制;
    • 传输的数据在请求体内。

在这里插入图片描述

4.3、响应协议

服务器发送给客户端的格式

格式:

响应首行
响应头信息
空行
响应体

常见响应码

  • 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中
  • 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源
  • 500:请求资源找到了,但服务器内部出现了错误
  • 302:重定向
  • 304:如果再次访问的页面没有经过修改,返回304

在这里插入图片描述

五、IDEA创建Web项目

此处以Idea 2020.3举例

5.1、新建普通Java项目

在这里插入图片描述

注意:Idea2020无法直接新建JavaWeb项目,只能通过新建普通Java项目的方式间接新建JavaWeb项目。

选择项目位置和普通Java项目相同,此处略过。

5.2、修改普通Java项目为JavaWeb项目

项目根目录->右键->Add Framework Support

在这里插入图片描述

选择JavaEE版本

在这里插入图片描述

勾选左侧的Web Application

在这里插入图片描述

完成之后,可以看到项目下新建了web目录,并包含如下内容。
在这里插入图片描述

添加相关依赖File->Project Structure

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

执行上述操作之后,Tomcat相关Jar包就添加到了项目中,不添加后续很多开发无法进行。

5.3、项目部署

此处指的是将Idea中开发的Web项目在Tomcat中部署。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改index.jsp的代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
      <%
		String name = "张三";
		out.print("<p>" + name + "</p>");
	  %>
      <p>Hello JavaWeb</p>
  </body>
</html>

5.4、项目运行

单击运行按钮,运行项目,默认会在浏览器中打开index.jsp

在这里插入图片描述

在以后的开发中,多数时候都是重复上述步骤进行JavaWeb项目的开发。

5.5、其他操作

5.5.1、关联第三方Jar
  1. 在项目WEB-INF目录下新建lib目录;

  2. 将第三方Jar包(例如:MySQL驱动Jar包,Druid连接池Jar包)拷贝到lib目录下;

  3. 在lib上右键Add as Library

  4. 选择

    Project Library
    

    ,完成

    • Global Library表示所有工程都可以使用
    • Project Library表示当前工程中所有模块都可以使用
    • Module Library表示当前模块可以使用
5.5.2、导出war

项目完成后,有时候需要打成war方便部署。war包可以直接放入Tomcatwebapps目录中,启动Tomcat后自动解压,即可访问。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

执行上述操作,后在项目根目录下生成out目录,内部包含的war包就是我们需要的war包。
在这里插入图片描述

将该war包拷贝到tomcatwebapps目录下,双击运行startup.battomcat自动解压war包并发布项目,发布之后我们就可以访问。

总结:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.又是新的一天.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值