明天开始答辩。
今天老师给我们整理了一些知识点。
第一章 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中提取数据