JavaWeb
1.基本概念
1.1前言
web开发:
-
web, 网页的意思
-
静态web
- html,css
- 提供给所有人看的数据始终不会发生变化!
-
动态web
- 淘宝或者其它几乎所有的网站都是用动态web的形式
- 提供给所有人看的数据始终会发生变化,每个人在不同的事件,不同的地点看到的信息各不相同。
在Java中,动态Web资源开发的技术统称为javaWeb
1.2、web应用程序
web应用程序:可以提供浏览器访问的程序
-
a.htm、b.html.....多个web资源可以被外界访问,对外界提供服务;
-
能访问到任何一个页面或者资源,都存在这个时间的某一个角落的计算机上
-
URL
-
这个从一的web资源会被放在同一个文件夹下,web应用程序---> Tomcat: 服务器
-
一个web应用由多个部分组成(静态web,动态web)
- html,css,js
- jsp,servlet
- java程序
- jar包
- 配置文件(Properties)
web应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理;
1.3静态web
- *.html, *.css,这些都是网页的后准,如果服务器上存在这些东西,我们就可以直接读取
- 静态web存在的缺点
- web页面无法动态更新,所有用户看到的都是同一个页面
- 轮播图,点击效果:伪动态
- JavaScript【实际开发中,它用的最多】
- VBScript(微软环境下的轻量级的解释型语言)
- 它无法和数据库交互(数据无法持久化,用户无法交互)
- web页面无法动态更新,所有用户看到的都是同一个页面
1.4动态web
页面会动态展示:
缺点:
- 加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序。
有点:
- web页面可以动态更新,用户看到的不是同一个页面
- 它可以与数据库交互(数据持久化:注册,用户信息)
2、web服务器
2.1技术语言
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。
- 微软:国内最早流行的。
- 在HTML中嵌入了VB的脚本,ASP+COM;
- 早ASP开发中,基本一个页面都有几千行的业务代码,页面机器乱
- 维护成本高
- 使用C#语言
PHP
-
PHP开发速度很快,功能很强大,跨平台,代码很简单(国内大约70%网页使用,中小型开发)
-
无法承载大访问量的情况(局限性)
JSP/Servlet:
B/S:浏览器和服务器
C/S:客户端和服务器
- sun公司主推的B/S架构
- 基于Java语言的(所有大公司,或者一些开源的组件,都是Java写的)
- 可以承载三高问题(高并发,高可用,高性能)带来的影响
- 语法像ASP, ASP--->JSP,加强市场强度。
2.2web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;
IIS(IIS一般指互联网信息服务。 互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。)
微软的;ASP.....Windows自带的
Tomcat:
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
下载tomcat:
1.安装 or 解压
2.了解配置文件和目录结构
3.这个东西的作用
3.Tomcat
3.1安装tomcat
- 下载tomcat压缩包
- 解压,完成
启动点击/bin/startup.bat
遇到的问题:
- Java环境变量没有设置
- 闪退问题,需要配置兼容性
- 乱码问题:配置文件中设置
3.2配置
可以配置启动的端口号
可以配置主机的名称
高难度面试题:
请你谈谈网站是如何进行访问的。
- 输入域名;回车
- 检查本机的C:\Windows\System\drivers\etc\hosts配置文件下有没有这个域名映射;
- 有:直接返回对应的ip地址,在这个地址中,有我们需要访问的web程序,可以直接访问
- 没有:去DNS服务器查找,找到就返回,找不到就返回“找不到”
3.3怎么发布一个网页
模仿 ctrl + c , ctrl + v
4、http
4.1什么是http
HTTP(超文本协议),是一种简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html、字符串
- 超文本:图片、音乐、视频、定位、地图
- 端口:80
Https:安全的(HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。)端口:443
4.2两个时代
- http1.0
- HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
- http2.0
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源
4.3Http请求
- 客户端--发请求--服务器
4.4Http响应
5、Maven
我为什么要学习这个技术?
1.在JavaWeb开发中,需要使用大量的jar包,我们手动去导入;
2.如何能够让一个东西自动帮我导入和配置jar包。
由此,Maven诞生了
5.1Maven项目架构管理工具
我们目前用来就是方便导入jar包!
Maven的核心思想:约定大于配置
- 有约束,不要去违反
Maven回归定好你该如何去编写我们的Java代码,必修要按照这个规范来;
安装:下载压缩包,解压就可以用
5.2配置环境变量
5.3、在IDEA中使用Maven
1.启动IDEA
2.创建一个MavenWeb项目
5.4标记文件夹功能
5.5POM文件
MAVENjar包联系关联图
6、Servlet
6.1 简介
6.2 HelloServlet
Servlet接口Sun公司有两个默认的实现类:HttpServlet, GenerServlet
代码
HelloServlet.java
package com.yuan;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("进入Ddget");
// ServletOutputStream outputStream = resp.getOutputStream();
PrintWriter writer = resp.getWriter();//响应流
writer.print("hello servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
web.xml
6.3 Servlet原理
6.4 Mapping