Web基础

目录

  • 一、前言
  • 二、Tomcat
    • 1、发布一个网站
    • 2、开端(两种访问)
    • 3、目录
    • 4、启动
    • 5、停止
    • 6、修改端口号
    • 7、部署
    • 8、动态web项目目录结构
  • 三、GET和POST
    • 1、GET请求
    • 2、POST请求
    • 3、哪些是get哪些是post
    • 4、/斜杠的意义
    • 5、响应两种流
    • 6、参数封装高效写法
  • 四、重定向与转发
  • 五、Cookie和Session
    • 1、前导
    • 2、cookies
      • 2.1、cookies创建
      • 2.2、cookies获取
      • 2.3、cookie修改
      • 2.4、cookie生命周期
      • 2.5、cookie路径设置
      • 2.6、用户登录
    • 3、session
      • 3.1、session会话
      • 3.2、session创建和获取
      • 3.3、session域数据的存储
      • 3.4、session的生命周期
      • 3.5、浏览器和session底层内幕
  • 六、表单重复提交和验证码防重复
    • 1、概念
    • 2、谷歌验证码
  • 七、JSON
    • 1、概念
    • 2、JSON在JavaScript中的使用(客户端)
      • 2.1、定义
      • 2.2、访问
      • 2.3、两个常用方法
    • 3、JSON在Java中的使用(服务器Gson)
      • 3.1、JSON和JavaBean的相互转化
      • 3.2、JSON和List的互转
      • 3.3、JSON和Map的互转
  • 八、Ajax
    • 1、概念
    • 2、原生Ajax请求
    • 3、JQuery中的Ajax请求
      • 3.1、$.ajax方法
      • 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
    • 3、页面的使用

一、前言

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

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

二、Tomcat

1、发布一个网站

Web基础_第1张图片

2、开端(两种访问)

两种访问原理不一样
Web基础_第2张图片
默认访问
Web基础_第3张图片

3、目录

Web基础_第4张图片

4、启动

Web基础_第5张图片
Web基础_第6张图片
启动失败主要原因是JAVA_HOME没配置好

Web基础_第7张图片
idea启动tomcat
Web基础_第8张图片
命令启动,这种方式可以看出错误提示
Web基础_第9张图片

5、停止

Web基础_第10张图片

6、修改端口号

Web基础_第11张图片

7、部署

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

8、动态web项目目录结构

Web基础_第14张图片

三、GET和POST

1、GET请求

Web基础_第15张图片

2、POST请求

Web基础_第16张图片

3、哪些是get哪些是post

Web基础_第17张图片

4、/斜杠的意义

Web基础_第18张图片

5、响应两种流

Web基础_第19张图片
其实void返回值的时候,能多次用字符流
响应的乱码问题解决。 服务器的设置为utf-8,浏览器的也要设置content-type为utf-8(浏览器默认国标)
Web基础_第20张图片
乱码解决优化代码,一句话两端全部设置
Web基础_第21张图片

6、参数封装高效写法

Web基础_第22张图片

四、重定向与转发

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创建

Web基础_第23张图片
原理 注意没有就创建,有就更新,是基于key1更新value1的,不是更新整个cookie
Web基础_第24张图片

2.2、cookies获取

Web基础_第25张图片
Web基础_第26张图片

2.3、cookie修改

Web基础_第27张图片
Web基础_第28张图片
Web基础_第29张图片
Web基础_第30张图片

2.4、cookie生命周期

(注意,默认都是session级别的周期,关闭浏览器后就会消失,而如果设置了时间,关闭浏览器后还在,只有时间到期了,才会消失。)(时间是格林时间)
Web基础_第31张图片

Web基础_第32张图片
通过设置时间来删除cookie
Web基础_第33张图片

2.5、cookie路径设置

默认是当前的工程路径
Web基础_第34张图片

2.6、用户登录

Web基础_第35张图片

3、session

3.1、session会话

Web基础_第36张图片

3.2、session创建和获取

Web基础_第37张图片
Web基础_第38张图片

3.3、session域数据的存储


Web基础_第39张图片

Web基础_第40张图片

3.4、session的生命周期

(注意:超时是指两次请求的最大间隔时长,如果一直点一直点,超时时间一直会被刷新从而一直没有超时)(负数表示永不超时,极少使用,不然服务器维护session成本太高。)
Web基础_第41张图片
默认时长1800秒=30分钟
Web基础_第42张图片
Web基础_第43张图片
Web基础_第44张图片
删除
Web基础_第45张图片

Web基础_第46张图片

3.5、浏览器和session底层内幕

(session的底层是基于cookie实现的)
Web基础_第47张图片

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

1、概念

Web基础_第48张图片Web基础_第49张图片

2、谷歌验证码

Web基础_第50张图片
Web基础_第51张图片
Web基础_第52张图片
Web基础_第53张图片
Web基础_第54张图片

七、JSON

1、概念

Web基础_第55张图片

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

2.1、定义

Web基础_第56张图片
Web基础_第57张图片

2.2、访问

Web基础_第58张图片
Web基础_第59张图片
Web基础_第60张图片
Web基础_第61张图片

2.3、两个常用方法

Web基础_第62张图片
Web基础_第63张图片
上面定义的var jsonObj 本身是一个json对象 (传参用json字符串,取值存值用json对象)

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

3.1、JSON和JavaBean的相互转化

Web基础_第64张图片
Web基础_第65张图片
Web基础_第66张图片

3.2、JSON和List的互转

Web基础_第67张图片
还得自己写个PersonListType ,或这种方案不好用(下面map有优化方案,用匿名内部类)
Web基础_第68张图片
Web基础_第69张图片
Web基础_第70张图片

3.3、JSON和Map的互转

在这里插入图片描述
也得用继承TypeToken这种,不爽(后面有优化方案)
Web基础_第71张图片
Web基础_第72张图片

八、Ajax

1、概念

Web基础_第73张图片

2、原生Ajax请求

Web基础_第74张图片
只发请求不管返回
Web基础_第75张图片
处理返回
Web基础_第76张图片

3、JQuery中的Ajax请求

3.1、$.ajax方法

Web基础_第77张图片

Web基础_第78张图片
Web基础_第79张图片

dataType返回的选择,json更方便
Web基础_第80张图片

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

Web基础_第81张图片
Web基础_第82张图片
Web基础_第83张图片
Web基础_第84张图片

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

Web基础_第85张图片

3.4、表单序列化serialize

Web基础_第86张图片

Web基础_第87张图片

Web基础_第88张图片
Web基础_第89张图片

九、i18n国际化

1、概念

Web基础_第90张图片

2、三要素

Web基础_第91张图片

2.1、locale

Web基础_第92张图片
Web基础_第93张图片

2.2、properties

Web基础_第94张图片
Web基础_第95张图片

2.3、ResourceBundle

Web基础_第96张图片
CHINA的locale,并且项目准备了properties配置文件,basename是i18n,这样就能得到resoureceBundel对象,并通过getString取配置文件里面的值

3、页面的使用

简单用法
Web基础_第97张图片

切换的优化
Web基础_第98张图片
jstl标签继续优化 fmt标签
Web基础_第99张图片
Web基础_第100张图片
感觉还是比较麻烦,所以大部分公司还是写了两套代码
Web基础_第101张图片

你可能感兴趣的:(java,web,tomcat)