JavaWeb

web相关概念
软件架构都分为哪两种?有什么区别?

  • B/S(Brower/Server) 浏览器 <-> 服务器模式
  • 例如京东/淘宝/天猫 -> 每次访问要进行资源请求,本次没有备份.
    C/S(Client/Server) 客户端 <-> 服务器模式
  • 例如QQ/YY/穿越火线/英雄联盟
  • 好处:资源在本地有缓存 每次请求无需加载 页面交互比较丰富 安全性能比B/S高.
    资源分类都分为哪几种?有什么区别?
    静态资源
  • 使用静态网页技术发布的资源 -> 特点:每个人访问的静态资源都是一样的.
  • 文本/音频/视频/图片/Html/Css/JavaScript
    动态资源
  • 使用动态网页技术发布的资源 -> 特点:每个人访问的动态资源可能不相同.
  • JSP/Servlet
    网络通信的三要素是什么?
  • IP:设备在网络中的唯一标识.
  • 端口:应用程序在设备中的唯一标识.
  • 协议:数据交互需要遵守的规范.
    web服务器软件_概述
    什么是服务器?
  • 安装了服务器软件的计算机 -> 服务器.
    什么是服务器软件?
  • 接收用户的请求,处理请求,做出响应.
    什么是Web服务器软件?
  • Web服务器软件可以部署Web项目,可以让用户通过计算机的浏览器来访问到这些项目. Web容器
    什么是JavaEE?
  • Java企业级规范,13项大的规范.
    常见的Web服务器软件有哪些?
    WebLogic
  • ORACLE出的 大型的JavaEE服务器软件 支持所有的JavaEE规范. 收费的.
    WebSphere
  • IBM公司出的 大型的JavaEE服务器软件 支持所有的JavaEE规范. 收费的.
    JBoss
  • JBoss公司出的 大型的JavaEE服务器软件 支持所有的JavaEE规范 收费的.
    Tomcat
  • Apache基金会组织(非盈利的 org) 中小型JavaEE服务器 仅仅支持少量的JavaEE规范 免费的.

tomcat_安装&卸载&启动
如何下载Tomcat?

  • https://tomcat.apache.org/download-80.cgi
    如何安装Tomcat?
  • 下载的是压缩包,直接解压就可以使用
  • tomcat的解压路径不要有中文/JAVA_HOME配置好/Address is already in use(端口冲突)
    如何卸载Tomcat?
  • 删除掉Tomcat的解压目录就是卸载了Tomcat.
    如何启动Tomcat?
  • 进入到bin目录 双击startup.bat文件 出现DOS命令窗口 -> Server startup in 1171 ms.
    Tomcat的目录结构是怎么样的?
  • bin:放了脚本 -> 启动.关闭,各种bat文件
  • conf:放了一些tomcat相关的配置文件.
  • lib:放了一些tomcat依赖的文件.
  • logs:存放了tomcat的日志文件
  • temp:存放了一些临时文件
  • webapps:存放的web项目(之后会学习)
  • work:工作空间
    tomcat_启动问题分析
    Tomcat启动时可能产生什么问题?如何解决?
  • 一闪而过 -> 当你没有在环境变量中配置JAVA_HOME的时候启动TOMCAT就会出现这个问题.
  • 启动到一半报错 -> 端口冲突的问题.
    Tomcat如何关闭?
  • 可以右上角也可以通过bin目录的shutdown.bat批处理文件进行管理.
    检查是否安装成功
  • 开启自己的Tomcat并且通过浏览器查看localhost:8080(端口号)是否可以显示Tomcat的主页.
    tomcat_部署项目的方式
    Tomcat部署项目的方式有哪些?(项目中不会用这种方式去部署(docker))
  • 直接将项目放到tomcat的webapps文件夹下即可.
  • 文件夹的名称:虚拟目录/虚拟路径.
  • 简化方式 -> 就是将需要部署的文件打成压缩包(war zip包修改名称war)直接放到webapps目录下即可,Tomcat会自动解压缩war包.
    tomcat_动态java项目的目录结构
    Java动态项目的目录结构是什么?
    项目的根路径
    • WEB-INF(用户通过浏览器是没有办法直接访问WEB-INF中的资源)
      • web.xml(Web项目整体核心配置文件)
      • classes(我们自己编写的代码编译之后的字节码文件)
      • lib(依赖的第三方文件jar包)
    • 静态资源
      Servlet概述
      什么是Servlet?
  • 运行在服务器端的小程序 -> 本质上就是一个(规则)接口,当你自己的类实现了该接口的时候,也就符合了类被Tomcat管理/使用的条件.
    Serlvet的配置过程是什么?
  • 要有一个Java动态项目.
  • 创建一个类 -> 实现Servlet接口(刚开始学习实现Service方法即可)
  • 在Web.xml中配置Servlet的访问路径.
    Servlet的执行原理是什么?
  • Tomcat接收到请求 -> 拆解路径(localhost:8080/Ab_Tomcat/hello) -> 拆解出hello(请求资源)
  • Tomcat会去web.xml中找有没有对应的,如果没有对应的,则直接404.
  • 如果有对应的 -> 则找到的对应的代表了一个Servlet资源,也就代表着获取到了Serlvet的全限定类名.
  • 通过Class.forName(全限定类名) 进行反射创建对象 -> 通过对象来调用方法(service)
  • 因为如果实现了Servlet接口 -> 那么必须要实现接口中的service方法的.
    Servlet的生命周期是什么?
    init() - 初始化方法,当Servlet第一次被访问的时候执行init()方法,只执行1次.
    service() - 提供服务的方法,每当Servlet被访问了,那么service()就会开始执行,会执行多次.
    destory() - 当Tomcat服务器正常关闭的时候,会执行destory(),只执行1次.
    如何修改Servlet创建的时期?
  • 如果不做修改的话,默认Servlet会在第一次被访问的时候进行创建.
  • 可以通过修改配置文件的方式来修改时Serlvet的创建时期.
  • 中的值是数字.正数:(0-10) -> 表示在Tomcat启动的时候就执行Servlet的创建.负数:默认情况,第一次访问Servlet的时候进行创建.
    Serlvet是单例的还是多例的?
  • 单例/多例 (在内存中只有单独的一个对象 称为单例)
  • Servlet是单例的.
    如何解决Servlet的线程安全问题?
  • Serlvet对于之后的框架来说,属于展示层MVC(Controller)
  • 在Servlet中不要去定义成员变量,如果说需要在Servlet中定义成员变量,那么Servlet中的逻辑(只读不写)
    Servlet_3.0注解配置
    如何使用注解配置Serlvet?
  • 如果要使用注解配置Servlet,那么就不需要web.xml.
  • @WebServlet(value = “/hello”,loadOnStartup = 5) 只有value一个属性时间,value可以省略。 @WebServlet( “/hello”)

Servlet体系结构
Servlet的体系结构是什么?
顶级接口 -> Servlet

  • 实现类(子类) -> GenericServlet(对于一些init(),destory()做了空处理,只需要子类实现service()方法即可.
  • 实现类(孙子类) -> HttpServlet(针对于Http协议的一个封装)
  • 如果说继承了HttpSerlvet -> 不需要重写service方法,推荐重写doGet和doPost方法.
    GenericServlet和HttpServlet有什么区别?
  • GenericServlet(对于一些init(),destory()做了空处理,只需要子类实现service()方法即可.
  • 实现类(孙子类) -> HttpServlet(针对于Http协议的一个封装)
    继承HttpServlet的好处是什么?
  • HttpServlet是针对于Http协议的一个封装,对于不同的请求/提交方式可以提供对应的方法来进行执行.
  • 所有的自定义Servlet不需要实现Servlet接口,只需要继承HttpServlet并且重写doGet/doPost方法即可.
    Servlet的Urlpartten配置
  • 一个Serlvet如何配置多个访问路径?
  • @WebServlet(urlPatterns = {"/url","/u","/r","/lru"}) 正常情况下基本上只会配置1个.
    Serlvet的UrlPattern的路径规则如何定义?
  • 最常用的/xxx -> 通过/xxx可以直接访问到资源.
  • /xxx/xxx 通过层级关系来访问资源.
  • /* 输入任意字符即可访问资源
  • *.do 自定义拓展名 ( * . *)
  • UrlPattern配置通配符匹配时候需要注意什么问题? *.do 不加/
    HTTP概述
    Http是什么协议?
  • 超文本传输协议
    什么是传输协议?
  • 规定客户端和服务器端之间交互数据的格式.
    Http协议的特点是什么?
  • 基于TCP/IP协议的.
    Http的默认端口号是多少?
  • 80
    Http的模型是什么?
  • HTTP 请求-响应模型 一次请求对应着一次响应.
    Http是有状态的还是无状态的?
  • 无状态 -> 各个请求相互独立.
    Http1.0和Http1.1有什么区别?
  • 1.0的请求 -> 创建连接 -> 进行交互 -> 断开连接.
  • 1.1的请求 -> 创建连接 -> 进行交互 -> (进入到等待状态[等待还没有有其他的请求要使用连接的]) 如果没有的话才断开.
    HTTP请求消息的请求行
    Http的请求信息包含哪四部分?
  • 请求行/请求头/请求空行/(请求体)
    请求行的格式是什么样的?
  • 提交方式 提交地址 协议/版本
  • GET /test HTTP/1.1
    GET/POST提交的区别?
  • GET提交,参数都封装到请求行中(在地址栏中) POST提交,参数都封装到了请求体中. -> GET提交没有请求体,POST提交有请求体.
  • GET提交的数据长度有限,POST提交数据长度没有限制.
  • GET提交相对POST提交来说不安全.
    HTTP请求消息的请求头&请求体
    请求头的格式是什么样的?
  • 键值对 -> 请求头名称:请求头值
    User-Agent请求头表示什么?有什么作用?
  • 表示当前浏览器的一些信息(版本)
  • 可以让服务器端根据不同的浏览器产生不同的样式(有一些CSS样式谷歌浏览器支持,火狐不支持.)
    Referer请求头表示什么?有什么作用?
  • 表示当前访问路径 -> 现在我所在的网页是www.baidu.com -> 贴吧 www.baidu.com/tieba
  • 防盗链/统计
    请求体的内容是什么?
  • GET请求没有请求体,POST请求请求体中封装是提交的参数.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值