当前位置: 首页 > news >正文

森林病虫防治系统 (结束)

明天开始答辩。

今天老师给我们整理了一些知识点。

第一章  java Web 工作原理 重点:

什么是HTTP?(了解)

HTTP是一种超文本传送协议,是一套计算机在网络通信的一种规则。

特记:HTML超文本标记语言,以.htm或.html为扩展名,

HTTP请求/响应包含哪些内容?(了解)

HTTP请求包含了:请求行,请求头,空行与消息体。

HTTP响应包含了:状态行,响应头,空行与消息体。

第二章 Servlet基础 重点:

Servlet生命周期?(了解)

Servle生命周期大体可以分为:初始化,服务,销毁3个阶段。

  • 初始化:第一个阶段主要工作,容器装载并实例化servlet,并触发init()方法装载资源。
  • 服务阶段:主要处理来源于客户端的各种请求与给出响应,请求到达时触发service()方法,处理请求产生响应。servlet是多线程的,容器只装载一个servlet实例,初始化只执行一次,但是请求达到时,每个请求被servlet的service()方法执行的线程并发处理。
  • 销毁: servlet的销毁代表着该servlet实例被容器丢弃,一般是容器关闭或容器需要空闲内存时,容器通过调用destroy()来销毁。

需要说明的是:servlet调用service()方法之后提供了7个常见的辅助方法,其中doGet()与doPost(),浏览器发起一个请求时都会通过GET请求连接服务器,到servlet时会调doGet()方法,但并不是说表单就掉用了doGet()方法,表单具体调用哪个方法,还是要看表单提交的请求类型。表单是GET就doGet(),表单是POST就doPost(),但是处理表单时,无论在doGet()中显式调用doPost(),还是doPost()中显式调用doGet()方法, tomcat容器都认为表单时GET提交。均会对表单采用ISO-8859-1来编码,所以会出现中文乱码的问题。

第三章使用Servlet处理HTTP响应 重点:

什么是请求转发与重定向?(面试可能涉及)

  请求转发:只能将请求转发到同一个WEB应用中的组件,请求转发的组件与组件之间共享相同的request 对象和response 对象,它们属于同一个访问请求和响应过程。由服务器内部完成请求的转发,并返回了响应。所以转发过程中浏览器地址不会跳转路径,依旧是前一个URL,由于转发请求的工作都是服务器完成。安全性较高。

  重定向:可以将请求重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。请求者与被请求者使用各自的request 对象和response 对象,它们属于两个独立的访问请求和响应过程。浏览器发起了2次不同的请求,所以重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL。

第四章使用Servlet处理HTTP请求 重点:

表单提交中GET与POST的区别?(面试可能涉及)

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。提交地址“URL”全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE对应着对这个资源的查,改,增,删4个操作,但是在平常GET/POST就可以完成,不需要用到PUT和DELETE,所以传统的WEB MVC框架都只支持GET与POST,包括后面将的JAVAEE的几大框架。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

  • GET:

1、GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,浏览器可见。

2、"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,看起来GET可提交的数据量跟URL的长度有直接关系。这个说法是有误的。实际上,URL不存在参数上限的限制,HTTP协议规范没有对URL长度进行限制。那么为什么说GET提交有数据量限制呢?这个限制是浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Google、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

3、GET提交的数据以明文存在于URL中,浏览器很多时候可能会缓存数据,其他人通过看历史记录就可以查看到你的数据了,所以安全性不高。

 

  • POST:

1、      POST把提交的数据则放置在是HTTP包的包体中,浏览器不可见。

2、      理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制。唯一可能限制是服务器的处理程序的处理能力。

3、      POST的安全性要比GET的安全性高。

 

第五章Web应用程序状态管理 重点:

(了解)

首先要知道HTTP协议使用的是无状态的连接,连接只针对一个请求/响应。

其次要知道session对象的作用,它是服务器为客户端创建并维护的用于存放客户状态数据的对象。该对象保存在服务端,关闭浏览器并不表示着该对象就销毁了。服务器可以为客户端创建并维护一个session对象,用于存放数据,在创建session对象的同时,也会为该对象创建一个唯一编码sessionID,该编码通过cookie存放在客户端,当浏览器需要与服务器交互时,sessionID会被cookie重新带回服务器,服务器通过sessionID找到具体的session对象,并对其操作。

客户关闭浏览器或退出应用时,cookie清空,sessionID被销毁。如果再操作应用,服务器找不到对应的session,那么认为是此次请求时无效的。对session而言,只认sessionID不认人,为了安全考虑,所以应当尽量对session的维护时间设置的较短一些。

第六章 对象作用域与Servlet事件监听器 重点:

servlet提供的3大对象作用域(面试不问,应用较多):

servletContext(应用上下文):整个WEB应用只有一个ServletContext对象,在WEB应用中所有部分都可以访问到它,由容器创建并实例化。

HttpSession(会话):Session主要是服务器用于维护与一个客户的会话状态。例子:给10086打电话

requestScope(请求作用域):存储在前2者之内的资源都非常消耗系统资源,服务器不关闭,上下文就一直存在,session中,只要会话交互存在,也会一直存在。请求作用域只作用在一个请求相关的2个资源之间,范围很小。存储时间比前2者都短,只要请求一旦结束,requestScope中的对象就会被垃圾回收。

第七章重点:

过滤器(了解,会写)

第八章JSP基础 重点:

JSP与servlet的关系:WEB容器会将JSP页面翻译成servlet.java文件。JSP页面的运行阶段分为:翻译(容器外:servlet),编译(容器外:class),类装载(容器内:装载生成新的servlet),类实例化,初始化(准备就绪,可以接受客户端的请求),服务,销毁七个阶段(了解)

掌握脚步表达式的使用(工作中可能用到),例如:<% java代码 %>

JSP的三种类型指令:(了解)

1、    page 指令为当前页面提供处理指令,设定整个JSP页面的属性与相关功能。例如:contentType(text/html;charset=utf-8),import(导包)

2、    include 指令用于把例外一个文件静态包含在jsp中。语法:<%@ include file = “url”%>,特点:共享request请求域,先包含再编译,不检查包含页面的变化。(面试可能涉及)

3、    taglib指令主要作用是引入标签库,比如:c标签

JSP的标准动作:

<jsp:include>动态包含,语法:<jsp:include page=”url” flush=”true”>特点:不共享request请求域,先编译再包含,会检查包含页面的变化。(面试可能涉及)

<jsp:forward> 将客户端所发出的请求,从一个JSP页面转发到例外一个JSP页面。 (了解)

JSP的9种隐式对象:(面试可能涉及)

Request 代表与请求相关的HttpServletRequest对象。

Response代表与响应相关的HttpServletResponse对象。

PageContext代表封装请求的某个JSP页面时请求环境的PageContext对象。

Session 代表特定用户请求会话的HttpSession对象,该对象只有在JSP页面参与一个HTTP会话时才有意义。

Application代表WEB应用程序的servletConText对象。

Out代表与响应输出流相关的JSP Writer对象。

Config 代表JSP页面的servlet相关的ServletConfig对象。

Page等于Java编程语言中的this变量。

Exception 代表JSP页面抛出的Trowable对象,这个对象只在JSP错误页面中使用。

第九章Java Web开发模式 重点:

JSP开发模式的发展:M1--àM2(MVC),JAVAWEB阶段采用了MVC模式,即:Servlet+jsp+javaBean

MVC架构(面试可能涉及,重点掌握):

Model(模型)+View(视图)+Controller (控制器),在这个架构中,Model部分负责管理系统业务数据(逻辑,采用JAVABEAN实现),View部分负责显式界面,Controller部分则负责与用户的交互(包括接受请求和选择响应的视图)。

JSP开发模式2的开发步骤:(了解)

1、    定义一系列的Bean来表示数据

2、    使用一个servlet来处理请求

3、    在servlet中填充Bean

4、    在Servlet中,将Bean存储到请求,会话或者Servlet上下文中。

5、    将请求转发到JSP页面

6、    在JSP页面中,从Bean中提取数据

 

相关文章:

  • Linux内核中进程上下文、中断上下文、原子上下文、用户上下文的理解【转】...
  • 计算机
  • lucene4.7学习总结
  • python头部 #!/usr/bin/env python
  • nodejs安装及express
  • [error] 17755#0: *58522 readv() failed (104: Connection reset by peer) while reading upstream
  • Linux DNS之二DNS主从复制、子域授权及视图
  • 书摘—免费:商业的未来
  • DotNetMQ一个完整的消息队列(.NET)
  • Java 的对象和类
  • 关于时间管理
  • http返回值含义
  • 开发板和centos服务器tftp传文件
  • 关于Python数据分析,这里有一条高效的学习路径
  • Android 自定义帧动画
  • 230. Kth Smallest Element in a BST
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Linux各目录及每个目录的详细介绍
  • Otto开发初探——微服务依赖管理新利器
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • React as a UI Runtime(五、列表)
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redux系列x:源码分析
  • Vim Clutch | 面向脚踏板编程……
  • vue总结
  • 关于List、List?、ListObject的区别
  • 计算机在识别图像时“看到”了什么?
  • 开发基于以太坊智能合约的DApp
  • 每天10道Java面试题,跟我走,offer有!
  • 我的zsh配置, 2019最新方案
  • 在weex里面使用chart图表
  • gunicorn工作原理
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #Z0458. 树的中心2
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (翻译)terry crowley: 写给程序员
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)四层和七层负载均衡的区别
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net6+aspose.words导出word并转pdf
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @Import注解详解
  • [C++]:for循环for(int num : nums)
  • [C++]类和对象【上篇】
  • [C++基础]-入门知识
  • [C语言]编译和链接
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [Everyday Mathematics]20150130
  • [flask]http请求//获取请求体数据