文章目录
- 一、WEB开发概述
-
- 1.1、WEB资源介绍
- 1.2、软件架构
- 1.3、WEB通信模式 (B/S)
- 1.4、URL请求路径
- 1.5、WEB服务器软件
- 二、TOMCAT
-
- 2.1、概述
- 2.2、Tomcat版本
- 2.3、安装Tomcat
- 2.4、Tomcat目录结构
- 2.5、Tomcat启动和访问、关闭
-
- 2.5.1、启动(双击)
- 2.5.2、访问
- 2.5.3、关闭
-
- 2.5.3.1、 正常关闭
- 2.5.3.2、 非正常关闭
- 2.6、Tomcat常见问题
-
- 2.6.1、JAVA_HOME的配置
- 2.6.2、端口号冲突
- 2.7、web项目目录结构
- 2.8、eclipse & idea和tomcat整合
- 三、 Maven(后面会详细介绍)
-
- 3.1 什么是maven
- 3.2 maven 的作用
- 3.3 maven 的使用(配置)
-
- 3.3.1 下载
- 四、使用Servlet技术完成一个用户登录
-
- 4.1、需求说明
- 4.2、需求分析
- 4.3、知识讲解-Servlet
-
- 4.3.1、什么是Servlet
- 4.3.2、Servlet的作用
- 4.3.3、Servlet的入门
-
- 4.3.3.1、准备工作
- 4.3.3.2、编写步骤
- 4.3.3.3、Servlet的执行的流程详解
- 4.3.4、Request接收请求参数
-
- 4.3.4.1、Request接收请求参数的概述
- 4.4、登录流程分析
- 4.5、案例原型准备及代码实现
- 五、Servlet发展史和生命周期
-
- 5.1 发展史
- 5.2 url-pattern
- 六、HTTP协议
-
- 6.1、HTTP协议的概述:
-
- 6.1.1、什么是HTTP协议
- 6.1.2、HTTP协议的作用及特点
- 6.1.3、HTTP协议的组成:
- 6.2、HTTP协议入门
-
- 6.2.1、HTTP请求的详解
- 6.2.3、HTTP响应的详解
- 七、XML
-
- 7.1 什么是xml
- 7.2 xml的作用
- 7.3 如何书写xml
-
- 7.3.1 文档声明
一、WEB开发概述 1.1、WEB资源介绍
WEB:网页 因特网开发/web开发/网站开发1.2、软件架构 目前市场上有两种流行的软件架构:
Web资源:在浏览器上看到的任何资源(数据信息)都称作为web资源
作用:展示数据
分类:静态资源
源代码不变,展示效果不变(html/css/js 图片 视频)
动态资源
展示内容会根据数据的改变而改变(由程序来控制) servlet 、jsp
应用: 时间网页 微博热搜 天气网页
C/S架构:Client/Server 客户端/服务器。要求用户安装一个客户端程序。优点:
常见应用:qq音乐、王者荣耀、网易云、消消乐、抖音、快手、头条
1.用户体验好,效果炫缺点:(客户端程序上)
2.对信息安全的控制较强
3.应用服务器运行数据负荷较轻,部分计算功能在客户端完成。
1.占用硬盘空间
2.维护麻烦
3.安装使用依赖其他条件
B/S架构:Browser/Server 浏览器/服务器 。通过浏览器与服务器交互,不需要安装其他程序优点:(没有客户端,直接使用浏览器即可)
常见应用:12306、淘宝、京东、去哪儿
1.维护和升级简单,无缝升级。缺点:(效果一般、体验一般、服务器压力极大)
2.不用必须安装程序,操作系统内置了浏览器。大大减少了使用成本
1.动画效果受浏览器限制1.3、WEB通信模式 (B/S)
2.对信息安全控制较差。例如:网银就需要使用U盾,在浏览器端加密。
3.应用服务器运行数据负荷较重。大部分计算都在服务器端,增加服务器压力。使用Ajax可以改善部分用户体验。
文章图片
1、浏览器向服务器发送请求,去请求某些资源请求和响应是成对出现的。 而且必须先有请求,再有响应 (类似与一问一答)
2、服务器接收到请求之后,处理请求
3、寻找对应的资源,将对应资源响应给浏览器
4、浏览器拿到这些资源,负责解析,展示结果
1.4、URL请求路径
URL (Uniform Resource Locator) ,统一资源定位符(器),是对互联网上资源位置的一种表示,互联网上的每个文件都有一个唯一的URL。完整格式如下:
用于标识互联网上某个资源的具体位置,相当于内网路径中的绝对路径
协议://域名:端口号/资源位置?参数=值例如:
协议,http、https、ftp等 【必须写】
域名,域名或IP地址,都可以访问WEB资源【必须写】
端口号,程序必须使用端口号,才可以让另一个计算机访问
资源位置,用于描述WEB资源再服务器上的位置。
参数=值,浏览器和服务器交互传递的数据
https://www.baidu.com/
1.5、WEB服务器软件
服务器:在电脑上安装一个服务器软件,你的电脑就是一台服务器。常见的WEB服务器:
J2EE 企业级开发Java规范。标准规范包括:servlet、jsp、jdbc、xml、jta、javamail等。在java中规范就是接口。J2EE又称为JavaEE。
WEB服务器对JavaEE规范部分或全部支持(实现),也就是WEB服务器实现部分或全部接口。
1.Tomcat:Apache组织提供一个免费的小型的服务器软件。支持Servlet和JSP规范。二、TOMCAT 2.1、概述
应用范围最广
2.WebLogic:Bea公司的一个收费的大型的服务器软件,后被Oracle收购。支持EE的所有的规范
运算能力较强、稳定性较高
3.WebSphere:IBM公司的一个收费的超大型的服务器软件,支持EE的所有的规范。
数据库使用DB2,机器使用IBM系列
银行、金融、证券
运算能力无人出其左右,
稳定性极强
4.JBoss:是一个基于J2EE的开放源代码的应用服务器。JBoss是一个管理EJB的容器和服务器,JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。(总体均一般)
文章图片
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。2.2、Tomcat版本
支持Servlet和JSP 规范,且最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。
tomcat 目前存在很多版本,希望大家了解tomcat的版本,从而知道自己的创建的项目使用的是几版本规范,不同版本的规范技术可能不同。官网地址
本站地址&本文所需资料下载
2.3、安装Tomcat
步骤一:.下载一个tomcat服务器软件2.4、Tomcat目录结构
步骤二:解压下载好的zip文件.
将解压后的文件copy到一个没有中文和空格的路径下即可.(不要有中文路径和空格以及特殊符号)
文章图片
2.5、Tomcat启动和访问、关闭 2.5.1、启动(双击)
文章图片
2.5.2、访问
(访问http://localhost:8080/ 如果出现一只猫,代表启动成功)
文章图片
2.5.3、关闭
2.5.3.1、 正常关闭
双击
文章图片
2.5.3.2、 非正常关闭
Ctrl + c 进行关闭2.6、Tomcat常见问题 2.6.1、JAVA_HOME的配置
点叉直接关闭
电脑关机(从任务管理器关闭)
问题:窗口一黑,一闪而过2.6.2、端口号冲突
解决:配置JAVA_HOME环境变量
问题:端口号被占用2.7、web项目目录结构 在JavaEE规范中,WEB项目存在一定的目录结构,具体结构如下:
解决:
1.更换端口号
2.关闭已开启的服务器
文章图片
一个项目只要有classes才可能有动态WEB资源2.8、eclipse & idea和tomcat整合 在开发中,都是使用eclipse或idea和tomcat整合使用,方便开发测试。
只要WEB项目符合规范,放置在webapps目录中,服务器就会将其顺利发布网络
WEB-INF 是一个保护目录 浏览器不能去访问它下边的资源
eclipse & idea和tomcat整合
三、 Maven(后面会详细介绍) 3.1 什么是maven
文章图片
Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平 台的项目构建和依赖管理。Maven 这个单词的本意是:专家,内行。读音是 ['me v( )n] 或 ['mevn]。3.2 maven 的作用
可以对项目需要的jar包进行引入,并且进行统一化的管理;可以解决jar包之间的依赖;可以进行模块化的开发3.3 maven 的使用(配置) 3.3.1 下载
官网
本地
1.环境变量配置:
变量名:M2_HOME 变量值:maven解压的文件的bin目录; 变量名添加到path;
2.修改jar包存放的路径:settting.xml: D:\ssm\maven\apache-maven-3.6.0\repository
文章图片
文章图片
全部确定,然后打开黑窗口,输入cmd——>mvn -v
出现如下证明安装成功
文章图片
四、使用Servlet技术完成一个用户登录 4.1、需求说明
若用户名和密码正确,判定为登录成功,则控制台输出登录成功;4.2、需求分析 4.3、知识讲解-Servlet 4.3.1、什么是Servlet
若用户名或密码错误,判定为登录失败,则控制台输出登录失败。
文章图片
Servlet就是运行到服务器端的小程序入口:
可以使用浏览器进行访问获取数据
用来接收浏览器的数据4.3.2、Servlet的作用
Servlet它是JavaWeb三大组件之一(Filter 、 Listener)
文章图片
作用:
相当于程序的入口
1、搜集页面提交过来的数据4.3.3、Servlet的入门
2、然后进行一系列的逻辑处理
3、将结果响应给页面进行展示
4.3.3.1、准备工作
Servlet规范要求:Servlet程序需要编写实现类,并在web.xml进行配置。4.3.3.2、编写步骤
实现类:通常继承javax.servlet.http.HttpServlet类,并复写doGet和doPost方法。
doGet()方法用于处理get请求。
doPost()方法用于处理post请求。
1、先创建一个类,让这个类继承HttpServlet注意:以上这三步缺一不可。
2、重写doGet和doPost方法
3、配置web.xml中的路径
1、如果servlet没有继承HttpServlet,会报错
2、如果没有重写doGet和doPost方法
3、如果不配置web.xml中的路径
eclipse &idea中创建web项目
4.3.3.3、Servlet的执行的流程详解 问题:为什么访问该路径http://localhost:8080/servlet可以执行到Demo3 Servlet doGet方法?
文章图片
3.0版本的servlet如何创建
(1)
文章图片
(2)无需配置web.xml,只需在上面添加注解
@WebServlet("/servlet")
即可文章图片
4.3.4、Request接收请求参数
4.3.4.1、Request接收请求参数的概述 请求参数:
Request对象的方法
方法名 | 描述 |
---|---|
String getParameter(String name) | 获得指定参数名对应的值。如果参数列表没有该参数, 返回值是null如果参数列表有同名的参数,返回值是第一次出现的参数值 |
文章图片
4.5、案例原型准备及代码实现
文章图片
(1)sql准备:
CREATE DATABASES login;
use login;
CREATE TABLE USER(
uid VARCHAR(32) PRIMARY KEY,
username VARCHAR(100),
PASSWORD VARCHAR(100)
);
INSERT INTO USER VALUES ('001','Daniel','123'),('002','Jenny','123');
(2) 案例结构
所需资料下载
文章图片
(3)源代码
User 代码:
package com.zql.pojo;
import java.io.Serializable;
public class User implements Serializable{
private String uid;
private String username;
private String password;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String uid, String username, String password) {
super();
this.uid = uid;
this.username = username;
this.password = password;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [uid=" + uid + ", username=" + username + ", password=" + password + "]";
}
}
Userservlet代码:
package com.zql.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zql.pojo.User;
import com.zql.service.UserService;
@WebServlet("/login")
public class UserServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+"--------------"+password);
UserService service = new UserService();
User user = service.login(username,password);
if(user != null) {
System.out.println(username+"22--------------"+password);
System.out.println("登录成功");
System.out.println(username+"33--------------"+password);
}else {System.out.println("登录失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);
}}
UserService代码:
package com.zql.service;
import com.zql.dao.UserDao;
import com.zql.pojo.User;
public class UserService {
public User login(String username, String password) throws Exception {UserDao dao = new UserDao();
User user = dao.login(username,password);
return user;
}}
UserDao 代码:
package com.zql.dao;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import com.zql.pojo.User;
import com.zql.utils.C3P0Utils;
public class UserDao {
public User login(String username, String password) throws Exception {QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
String sql = "select * from user where username=? and password=?";
Object [] param = {username,password};
User user = qr.query(sql, new BeanHandler<>(User.class),param);
return user;
}
}
(4) 登录成功失败显示(后台)
文章图片
五、Servlet发展史和生命周期 5.1 发展史
Servlet也是由复杂难用、功能单一,逐步发展到目前的操作简单,功能强大的。
Servlet的发展史,完全就是一部人类由猿人的进化史。
文章图片
体系结构:
文章图片
生命周期:5.2 url-pattern
创建(出生):第一次请求servlet时被创建
工作:每次请求该servlet时都会被创建一次
销毁(死亡):服务器正常关闭时
问题: 一个servlet是否可以配置多个访问路径? 可以
文章图片
匹配方式(2.5版本)
文章图片
3.0版本 如何配置多个访问路径?
文章图片
六、HTTP协议
文章图片
6.1、HTTP协议的概述: 6.1.1、什么是HTTP协议
HTTP协议: 超文本传输协议 它是互联网运用最广泛的一种网络协议6.1.2、HTTP协议的作用及特点
HTTP协议: 专门用来进行超文本信息传输, 规定 和 规范 浏览器与服务器之间的数据传输格式
协议: 规范 规定 规则
作用: 似的浏览器与服务器之间 请求-响应之间传递的 超文本数据信息 更加快捷 高效特点:
1.简单快捷6.1.3、HTTP协议的组成:
2.灵活
3.无连接
4.无状态
协议组成两种: 请求协议和响应协议6.2、HTTP协议入门
请求协议: 请求行 请求头 请求体请求行:
DemoServlet1
package com.zql;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/servlet")
public class DemoServlet1 extends HttpServlet {@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(111);
}@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
Login:
Title - 锐客网
浏览器开发者模式查看(F12)
Get请求
文章图片
Post请求
文章图片
Get请求和Post请求的区别:
1.get请求数据在请求行上,Post请求在请求体中6.2.1、HTTP请求的详解
文章图片
2.Get请求安全性较低, Post请求安全较高
3.Get请求提交数据有限制(不能超过4KB), Post请求数据量无限制
【#|Java进阶-tomcat+Maven+Servlet+HTTP协议+xml(十)】请求头:由键值对组成
文章图片
6.2.3、HTTP响应的详解
HTTP/1.1
状态码:
200: 响应成功
404: 路径找不到(检查路径)
500: 服务器内部代码出现异常(通过debug断点测试)
304: 缓存 (清除浏览器缓存)
302: 重定向 (后边讲)
405: 方法找不到
服务器缓存:(需要进行clean服务中缓存,然后进行重新发布)
响应体,传递的是请求需要查看的资源数据,数据量无限七、XML 7.1 什么是xml HTML : 超文本标记语言 预定义好的标签
响应体,就是服务器发送给浏览器的资源数据。
如果访问的是一个html页面,那么响应回来的就是一个页面
XML: 可扩展标记语言 可以随意定义 <哈哈>哈哈>
7.2 xml的作用
- 传输数据 (json格式)
- 存储数据 (有数据库存储数据)
- 作为配置文件(重点) (以注解为主, 2.5版本配置 已配置为辅)
Xml 文件数据分为5个组成元素构成 分别是文档声明 元素element 属性 注释 CDATA区域7.3.1 文档声明
1.它是以结尾.
2.是放在文件的开头部分
3.两个属性:
(1)Version 代表 版本
(2)Encoding 编码格式
推荐阅读
- #|【竞赛篇-电商竞赛】浙江省电子商务竞赛参赛经验
- #|【竞赛篇-乡村振兴】浙江省乡村振兴创意大赛参赛经验分享
- #|第七篇 Fiddler-Composer构造器
- #|入门教程-Jmeter13-常用功能详解-JDBC Request返回数据的使用
- #|ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
- JDBC|JDBC进阶—— 师承尚硅谷(DAO)
- 手写hashmap
- Springboot单元测试
- activiti|activiti课程导学(一)(慕课网)