JavaWeb

Javaweb

Maven

Maven是专门管理和Java项目的工具

1.提供一套标准的项目结构
在这里插入图片描述

2.提供了一套标准化的构建流程(编译,测试,打包,发布…)
在这里插入图片描述

3.提供了一套依赖管理机制

管理项目所依赖的第三方资源(jar包,插件…)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

依赖

在pom文件中利用 alt+insert 键直接调出导入相对应的jar包
在这里插入图片描述

MyBatis

mybatis – MyBatis 3 | 配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

条件查询 需要不同样的参数

在这里插入图片描述

动态SQL

mybatis – MyBatis 3 | 动态 SQL

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

Web核心

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-faL5w6iU-1652263559159)(C:\Users\29769\AppData\Roaming\Typora\typora-user-images\image-20220326113139207.png)]

HTTP

Hyper Text Transfer Protocal ,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sjgxevpj-1652263559160)(C:\Users\29769\AppData\Roaming\Typora\typora-user-images\image-20220326141911404.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9005TfAh-1652263559160)(C:\Users\29769\AppData\Roaming\Typora\typora-user-images\image-20220326142323256.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gSSclMGg-1652263559160)(C:\Users\29769\AppData\Roaming\Typora\typora-user-images\image-20220326143948820.png)]

Web-Maven 项目

在这里插入图片描述

在IDEA 中创建maven项目及配置Tomcat服务器

直接创建maven项目,先去配置web工件 再去配置tomcat 将webapp项目放在src包下的main包里

Servlet

servlet 是运行在web服务器上的应用程序 给服务器提供相对应接收请求和处理请求的响应的方法

Servlet 的体系结构 由servlet这个接口其中定义了五个抽象方法 其中HttpServelt重写了service方法在service方法中调用相对应的do方法

JavaWeb 之 Servlet 体系结构 - 格物致知_Tony - 博客园 (cnblogs.com)

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

在这里插入图片描述

Request &Response

Request :使用request对象来获取请求数据

Response: 使用response对象来设置响应数据

在这里插入图片描述

Request

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

解决 request的中文乱码

doGet方式:

Get获得参数的请求方式:getQueryString 获得字符串 因为Tomcat将中文字符转码为ISO_8859_1类型,需要将其转化为utf-8字节类型子啊转化为字符串类型

username = new String(username.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);

doPost

设置输入流的编码

在首部添加 req.setCharacterEncoding(“UTF-8”);

username = new String(username.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);

在这里插入图片描述

请求转发
Response

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kw0yjHvR-1652263559165)(C:\Users\29769\AppData\Roaming\Typora\typora-user-images\image-20220327111713875.png)]

Response重定向

在这里插入图片描述

对比请求转发和重定向

在这里插入图片描述

响应字符数据

在这里插入图片描述

响应字节数据

在这里插入图片描述

路径问题

在这里插入图片描述

JSP

JSP本质就是一个servlet

在这里插入图片描述

JSP 原理

在这里插入图片描述

JSP缺点

在这里插入图片描述

El表达式

简化JSP页面内的Java代码

在这里插入图片描述

JSTL标签

JSP 标准标签库(JSTL) | 菜鸟教程 (runoob.com)

在这里插入图片描述

在这里插入图片描述

MVC 模式

mvc是一种分层开发的模式

M:Model 业务模型,处理业务

V:View 视图,界面展示

C:Controller,控制器,处理请求,调用模型和视图

在这里插入图片描述

三层架构

SSM

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

会话

用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次响应请求

eg:在访问京东商场的页面的时候,点击商品页面,即为发送请求,点击不同的商品页面的时候,是不同的请求,但是此时的会话连接并没有终止,所以在这一次会话里web服务器可以响应请求的时候,并不需要重新建立

会话跟踪技术

一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求建共享数据

eg:在京东商场的商品页面添加商品刀购物车为一次请求,在去购物车结算的时候需要获得上一次请求的数据来结算,在登陆界面,登录后进入的是登录这个人的账号个人页面,需要获得这个人的信息,还有登陆界面的记住我的功能下一次浏览器再次访问服务器就不用输入账号密码,还有页面的验证码功能 也是会话跟踪技术 ,同一次会话多次请求的共享数据。

为什么服务器无法识别那些请求是同一浏览器的?

因为服务器和浏览器之间使用的是HTTP协议:HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都将会将该请求视为新的请求,因此我们需要会话跟踪技术实现会话之间的数据共享

实现会话跟踪技术的方式

  • 客户端会话跟踪技术:Cookie
  • 服务端会话跟踪技术:Session
    在这里插入图片描述
客户端会话跟踪技术:Cookie
  • Cookie 客户端会话技术,将数据保存刀客户端(–将数据保存在客户端浏览器的内存里–),以后每次请求都携带Cookie数据进行访问
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

URL编码:value = URLEncoder.encode(value, “UTF-8”);

URL解码:value = URLDecoder.decode(value, “UTF-8”);

服务端会话跟踪技术:Session
  • 服务端会话跟踪技术:将数据保存到服务端
  • JavaEE 提供HttpSession接口,来实现一次会话的多次请求间的数据共享功能

在这里插入图片描述

Session原理
在这里插入图片描述

  • Session是基于Cookie实现的**,session的每次访问都携带一个JSESSIONID来传给浏览器来识别,从而查找有没有对应的Session会话,没有再重新创建**
  • session不能长期的存储数据,而cookie可以将数据保存在客户端的内存里
  • session的数据保存在服务器内存里

使用Session会话的时候,服务器正常的重启后数据会自动保存(相当于购物车添加商品之后退出了页面,再次访问的时候,购物车的商品仍然存在)

但如果是浏览器的关闭 session会话会重新启动,第一次会话和浏览器关闭后再进行访问服务器的会话是不同的 但session里的数据还在

如果要保持会话相同,那浏览器不能重新启动
在这里插入图片描述

小结

在这里插入图片描述

Filter 过滤器

  • Filter 过滤器,是Javaweb三单组件(Servlet,Filter,Listener)之一
  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能
  • 过滤器一般完成一些通用的操作,比如:权限控制,同一编码处理,敏感字符处理等等
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Listener 监听器

在这里插入图片描述

AJAX

利用HTML+Ajax取代 jsp页面

从服务端抓取数据到html页面上

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

在这里插入图片描述

同步

用户在请求服务器的时候,服务器需要处理,此时用户只能等待服务器的响应,在服务器响应客户了之后才能继续访问或者操作另外的服务 操作是不连续的 因为客户端需要等待服务器的响应才能继续操作

在这里插入图片描述

异步

用户在请求服务器的时候,服务器需要处理,但是异步的操作客户端不用等待服务器的响应也可以进行其他操作,操作是连续的,可以不用等待服务器也可以操作其他服务

快速入门

AJAX - XMLHttpRequest (w3school.com.cn)

写在html页面的script标签上

xmlhttp.open()三个参数
在这里插入图片描述

在这里插入图片描述

Axios 异步框架

封装管理Ajax的原生代码 管理Ajax代码的框架

起步 | Axios 中文文档 | Axios 中文网 (axios-http.cn)

在这里插入图片描述

在这里插入图片描述

JSON

  • 对象表示法
  • 语法简答,层次结构鲜明,作为数据的载体,在网络中用于数据传输
  • json的语法和Javascript里的参数语法差不多
    在这里插入图片描述

数据转换需要用到fastjson的依赖包来写

在这里插入图片描述

  • Java转换为Json数据 JSON.toJSONString(参数) ------>返回的是一个json格式的字符串
  • JSON转换为Java对象 JSON.parseObject(“json格式的字符串”,转换类型(对象))

Vue

介绍 — Vue.js (vuejs.org)

  • Vue是一套前端框架,是免除原生Javascript中的DOM操作,简化书写
  • 基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上

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

Element

组件 | Element

  • Element:是饿了么公司前端开发工程团队提供的一套基于vue的网站组件库,用快速构建网页

  • 组件:组成网页的不见,例如超链接,图片,按钮等等

    在这里插入图片描述

JavaWeb demo 是一个简单的 JavaWeb 应用程序示例。它主要用于展示如何创建一个简单的动态网站,并介绍了一些常用的 JavaWeb 技术。 这个 demo 可能包含以下几个方面的内容: 1. 前端页面:demo 可能包含多个静态 HTML 页面,通过 CSS 和 JavaScript 来实现页面的样式和交互效果。这些页面可能包含表单、按钮、导航栏等常见的网页组件。 2. 后端处理:demo 可能使用 Java Servlet 来处理前端页面的请求。Servlet 是 JavaWeb 开发中的一种常用技术,通过它可以接收和处理 HTTP 请求,并生成对应的响应。在 demo 中,Servlet 可能会读取表单数据、调用业务逻辑处理模块,并将处理结果返回给前端页面。 3. 数据库连接:demo 可能会使用 Java 中的数据库连接技术,如 JDBC,来与后端数据库进行交互。通过 JDBC,demo 可能会连接到数据库、执行 SQL 查询和更新操作,以及处理数据库返回的结果。 4. 业务逻辑:demo 可能会展示一些简单的业务逻辑,如用户注册、登录等。在这些功能中,demo 可能会将用户的输入数据存储到数据库中,或者验证用户的登录信息。 通过这个示例,开发者可以了解到如何搭建一个简单的 JavaWeb 应用程序,并了解到如何使用常见的 JavaWeb 技术来实现各种功能。这个 demo 还可以作为 JavaWeb 开发的一个入门教程,帮助开发者迅速上手和理解如何构建一个简单的动态网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

02XD

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

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

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

打赏作者

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

抵扣说明:

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

余额充值