Web基础

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

一、前言

1.JavaEE也不是凭空冒出来的,它实际上是完全基于JavaSE,只是多了一大堆服务器相关的库以及API接口。所有的JavaEE程序,仍然是运行在标准的JavaSE的虚拟机上的。
2.JavaEE最核心的组件就是基于Servlet标准的Web服务器,开发者编写的应用程序是基于Servlet API并运行在Web服务器内部的
3.EJB:Enterprise JavaBean,企业级JavaBean,早期经常用于实现应用程序的业务逻辑,现在基本被轻量级框架如Spring所取代;

下面参考尚硅谷内容整理而来:

二、Tomcat

1、发布一个网站

在这里插入图片描述

2、开端(两种访问)

两种访问原理不一样
在这里插入图片描述
默认访问
在这里插入图片描述

3、目录

在这里插入图片描述

4、启动

在这里插入图片描述
在这里插入图片描述
启动失败主要原因是JAVA_HOME没配置好

在这里插入图片描述
idea启动tomcat
在这里插入图片描述
命令启动,这种方式可以看出错误提示
在这里插入图片描述

5、停止

在这里插入图片描述

6、修改端口号

在这里插入图片描述

7、部署

方法一
比如 直接放一个工程book到webapps下面,访问地址就是ip+端口+/book/book项目中任何路径文件(文件在哪个文件夹下面,直接写文件夹路径就可以了)
在这里插入图片描述
方法二
修改配置文件(不用像方法一约束,只能在webapps下面,也不用访问路径必须是项目名book,可以自定义)
单独的conf目录下面的localhost文件夹下面增加一个xml文件,path就是访问路径,docBase就是本地项目放哪里去了。访问地址和方法一一样,直接放文件路径就可以了。
在这里插入图片描述
方法三(常见)
修改配置文件(不用在localhost下面增加xml,现成的修改,比较常见)(都是只能一对一,换了项目就得改这个配置)
conf目录下面的servser.xml中增加方法二截图的内容,path等意义同方法二

8、动态web项目目录结构

在这里插入图片描述

三、GET和POST

1、GET请求

在这里插入图片描述

2、POST请求

在这里插入图片描述

3、哪些是get哪些是post

在这里插入图片描述

4、/斜杠的意义

在这里插入图片描述

5、响应两种流

在这里插入图片描述
其实void返回值的时候,能多次用字符流
响应的乱码问题解决。 服务器的设置为utf-8,浏览器的也要设置content-type为utf-8(浏览器默认国标)
在这里插入图片描述
乱码解决优化代码,一句话两端全部设置
在这里插入图片描述

6、参数封装高效写法

在这里插入图片描述

四、重定向与转发

resp.sendRedirect(“/hello”);// 重定向
req.getRequestDispatcher(“/hello”).forward(req, resp);// 转发
Redirect
重定向是指当浏览器请求一个URL时,服务器返回一个重定向指令,告诉浏览器地址已经变了(浏览器会收到一个302,和去目的地址Location),麻烦使用新的URL再重新发送新请求,并且更新浏览器的url地址为最新的。(两次请求,两次响应)
Forward
Forward是指内部转发。当一个Servlet处理请求的时候,它可以决定自己不继续处理,而是转发给另一个Servlet处理。(一次请求,一次响应)

五、Cookie和Session

1、前导

cookies与session:
cookies:
浏览器设置启动cookies,是属于浏览器端的技术,原理是把共享信息储存在浏览器中。Cookie由服务器生成,发送给浏览器,浏览器将Cookie的key/value保存到某个文本文件内,下次请求同一网站时就发送该Cookie给服务器。常见应用为保存密码下次免密登录和购物车在付款时最后提取信息。cookies在关闭浏览器后消失(默认设置,此cookies也称之为会话cookies,而且信息是存在内存中的,关闭浏览器就物理不见了。一般浏览器设置了过期时间,那么cookies就是存在硬盘中的,关闭电脑数据都还是在的)。cookies的value只能是简单字符串不能是对象。限制在4kb之内。一台服务器最多在客户端保存20个cookies,一个浏览器最多保存300个cookies。
原始请求没有使用cookie的请求(比如第一次请求),例如name=zt的登录请求,请求头是没有cookie的信息字样的,第一次请求之后服务器会生成name=zt的cookie给浏览器。第二次cookie请求,请求头就会有cookie:name=zt的字样出现。
session:
浏览网站的时候Session开始,关闭浏览器Session结束。session也是通过cookie实现。session由服务器创建,将所有数据放到Session中,一个用户独占一个session ,发送一个key(钥匙,就是cookie方式发送,而且不是全部session内容,只是一个JESSIONID)给客户端,客户端请求拿钥匙来找到自己保存在服务器中的数据 这个钥匙就一个Cookie,名称为jsessionid。上面讲了cookie的原始请求和第二次以后请求,session的请求每次请求头就会有cookie:name=zt,JSESSIONID=xxxxxxx的字样出现。
浏览器A第一次访问Servlet1,服务器会创建一个session,每个session都有一个id号,创建好了后,服务器将id号以cookie的形式回送给客户机(这些是服务器自动完成的)。当浏览器未关闭前再次发请求访问Servlet2时,就会带着这个id号去访问服务器,这时候服务器检索下内存中有没有与之对应的session,有就用这个session为其服务。session是服务器自动完成的。
用户第一次request.getSession时创建。session对象默认在30分钟没有使用,则服务器会自动销毁session。但是用户可以在web.xml文件中手动配置session的失效时间, 用户也可以手动调用session.invalidate方法,摧毁session。

session和cookie的主要区别在于:cookie是把用户的数据写给用户的浏览器(保存在客户机);session技术把用户的数据写到用户独占的session中(保存在服务器)。

jsp就是一个servlet
MVC设计模式:Model(模型)-View(视图)-Controller(控制器)
硬性规定模板必须放在webapp/WEB-INF/templates目录下,静态文件必须放在webapp/static目录下

2、cookies

2.1、cookies创建

在这里插入图片描述
原理 注意没有就创建,有就更新,是基于key1更新value1的,不是更新整个cookie
在这里插入图片描述

2.2、cookies获取

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

2.3、cookie修改

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

2.4、cookie生命周期

(注意,默认都是session级别的周期,关闭浏览器后就会消失,而如果设置了时间,关闭浏览器后还在,只有时间到期了,才会消失。)(时间是格林时间)
在这里插入图片描述

在这里插入图片描述
通过设置时间来删除cookie
在这里插入图片描述

2.5、cookie路径设置

默认是当前的工程路径
在这里插入图片描述

2.6、用户登录

在这里插入图片描述

3、session

3.1、session会话

在这里插入图片描述

3.2、session创建和获取

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

3.3、session域数据的存储


在这里插入图片描述

在这里插入图片描述

3.4、session的生命周期

(注意:超时是指两次请求的最大间隔时长,如果一直点一直点,超时时间一直会被刷新从而一直没有超时)(负数表示永不超时,极少使用,不然服务器维护session成本太高。)
在这里插入图片描述
默认时长1800秒=30分钟
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除
在这里插入图片描述

在这里插入图片描述

3.5、浏览器和session底层内幕

(session的底层是基于cookie实现的)
在这里插入图片描述

六、表单重复提交和验证码防重复

1、概念

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

2、谷歌验证码

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

七、JSON

1、概念

在这里插入图片描述

2、JSON在JavaScript中的使用(客户端)

2.1、定义

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

2.2、访问

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

2.3、两个常用方法

在这里插入图片描述
在这里插入图片描述
上面定义的var jsonObj 本身是一个json对象 (传参用json字符串,取值存值用json对象)

3、JSON在Java中的使用(服务器Gson)

3.1、JSON和JavaBean的相互转化

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

3.2、JSON和List的互转

在这里插入图片描述
还得自己写个PersonListType ,或这种方案不好用(下面map有优化方案,用匿名内部类)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3、JSON和Map的互转

在这里插入图片描述
也得用继承TypeToken这种,不爽(后面有优化方案)
在这里插入图片描述
在这里插入图片描述

八、Ajax

1、概念

在这里插入图片描述

2、原生Ajax请求

在这里插入图片描述
只发请求不管返回
在这里插入图片描述
处理返回
在这里插入图片描述

3、JQuery中的Ajax请求

3.1、$.ajax方法

在这里插入图片描述

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

dataType返回的选择,json更方便
在这里插入图片描述

3.2、 . g e t 方法和 .get方法和 .get方法和.post方法

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

3.3、$.getJSON方法(只是get请求没有post)

在这里插入图片描述

3.4、表单序列化serialize

在这里插入图片描述

在这里插入图片描述

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

九、i18n国际化

1、概念

在这里插入图片描述

2、三要素

在这里插入图片描述

2.1、locale

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

2.2、properties

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

2.3、ResourceBundle

在这里插入图片描述
CHINA的locale,并且项目准备了properties配置文件,basename是i18n,这样就能得到resoureceBundel对象,并通过getString取配置文件里面的值

3、页面的使用

简单用法
在这里插入图片描述

切换的优化
在这里插入图片描述
jstl标签继续优化 fmt标签
在这里插入图片描述
在这里插入图片描述
感觉还是比较麻烦,所以大部分公司还是写了两套代码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝影铁哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值