第四次考试知识点总结

假装没事ソ 提交于 2019-12-02 05:24:13
  • 一、常用的客户端开发技术
 - html
 - css
 - JavaScript
  ...
  • 二、常用的服务器端开发技术
1.servlet(Server Applet)基于Web容器才能提供服务
2.jsp
...
  • 三、Servlet
  • Servle(Server Applet)是java Servlet的简称,主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet容器对于每个Java WEB应用在启动的时候,Servlet容器都会创建一个ServletContext对象。
    一、实现Servlet的三种方式
1.实现Servlet接口
Servlet接口被定义在 javax.servletServlet
实现类需要实现Servlet接口中的五个方法
init()  Servlet实例化之后,调用初始化方法(在生命周期范围内只执行一次)
service() 服务方法,对请求进行处理
destroy()销毁方法  从服务中去除Servlet(在生命周期范围内只执行一次)
getServletConfig()   在初始化方法init()方法中使用ServletConfig对象创建ServletContext对象,以便使用次方法返回该参数。
getServletInfo() 
2.继承实现了Servlet接口的GenericServlet类(javax.servlet.http.GenericServlet)
继承该类的子类需要继承父类中的service()
3.继承继承了GenericServlet类的HttpServlet类(javax.servlet.http.HttpServlet)
继承该类的子类必须重写doXXX()方法处理业务逻辑/返回响应
  • 四、WEB应用程序的目录结构
    在这里插入图片描述
1.一个项目工程
2.可以存放html.gif.js.css.jsp文件
3./WEB-INF/classes:是来存放编译之后生成的字节码文件(.class文件)
4./WEB-INF/lib:用来存放应用程序需要用到的jar包
5./WEB-INF/web.xml:该文件的名称是部署描述符文件
  • 五、Tomcat服务器的目录结构
Tomcat是一个支持Java WEB最小的WEB容器,由Apache提供
Tomcat的适用前提时必须安装JDK

在这里插入图片描述

1.bin:存放Tomcat服务器的可执行文件目录(比如启动和关闭Tomcat服务器的一些相关文件)
2.conf:配置文件目录
3.temp:存放即临时的文件
4.lib:存放相关的一些jar包,称为类库文件
5.log:日志文件目录
6.webapps:Web项目(站点)目录
webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用
7.work:存放运行时最终生成的文件

  • 六、安装JDK–配置环境变量

1.JAVA_HOME
(JDK所在的根目录)

在这里插入图片描述
在这里插入图片描述
2.path
(jdk中的bin目录的绝对路径)
在这里插入图片描述
在这里插入图片描述
3.classpath
(jdk中的lib目录)
在这里插入图片描述

  • **七、Attribute 和 Parameter **
    1.attribute作用域参数
    2.parameter请求参数
1.HttpServletRequest类有setAttribute()方法,而没有setParameter()方法
2.一般通过表单和链接传递的参数使用getParameter
3.request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据;request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
4.request.getParameter()方法返回String类型的数据。
 - request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部
 - request.getAttribute()方法返回Object类型的数据
  • 八、会话管理–Cookie和Session
    1.进行会话管理的原因
Web应用程序基于HTTP协议
HTTP基于请求/响应模式
 -- 所有请求都是相互独立的,无连续性的
HTTP是无连接的协议
 -- 限制每次连接只处理一个请求
HTTP是无状态的协议
 -- 协议对于事务处理没有记忆能力

2.会话管理的概念

会话就是一个客户端连续不断地和服务器端进行请求/响应的一系列交互
多次请求间建立关联的方式称为会话管理,或会话跟踪
会话状态,指服务器与浏览器在会话过程中产生的状态信息

3.实现会话管理的过程
在这里插入图片描述

当服务器接收到客户端的首次请求时,服务器初始化一个会话并分配给该会话一个唯一标识符
在以后的请求中,客户端必须将唯一标识符包含在请求中,服务器根据此标识符将请求与对应的会话联系起来

4.会话管理–使用Cookie

1.创建Cookie对象
调用Cookie的构造方法,给出Cookie的名称和Cookie的值,二者都是字符串
Cookie c = new Cookie(“ ”, ” ”)
2.设置最大时效
如果要告诉浏览器将Cookie存储到磁盘上,而非仅保存在内存中,使用setMaxAge方法(参数为秒数)
c.setMaxAge(60*60*24*7)//一周(正数)
3.将Cookie放入到HTTP响应中
使用response.addCookie(c)
如没有这一步,将不会有任何Cookie被发送到浏览器

5.cookie中的一些方法

1.getMaxAge()/setMaxAge()
读取/设置Cookie到期时间(秒)
如果值为0,表示删除对应的Cookie
如果值为负数,表示Cookie只适用于当前的浏览会话
默认值为-1
2.getName()
读取Cookie的名称。不存在setName方法
3.getValue()/setValue()
读取/设置与Cookie关联的值
如果重新设置了某Cookie的值,需要用addCookie()方法将其发送回去

6.会话管理–使用Session

1.获取一个与请求相关联的会话
HttpSession session = request.getSession();
2.从Session中设置或获取一个属性
session.setAttribute(“userName”,userName);
session.getAttribute(“username”);
3.根据需要关闭会话
session.invalidate();
通常客户端不提供结束会话的通知,而是Servlet容器在用户处于一段非活动期后就会自动的使会话失效——这个时间段称为会话的超时期

7.会话时效

Session对象失效:当用户超出指定会话期时间处于非活动状态时,会话自动结束
setMaxInactiveInterval(),设置会话的超时期
通过web.xml的<session-timeout>标签设置
使用方法invalidate()
Cookie失效
默认关闭浏览器Cookie消失
在web.xml中设定存储Session ID的Cookie存活期限

8.Session相关的一些方法

1.getAttribute()
从会话对象中提取出一个之前存储的属性值
如果没有找到与名称相关联的值,则返回null
2.setAttribute()
设置会话对象的属性名称和属性值
3.removeAttribute()
移除与名称关联的值
4.getAttributeNames()
返回会话中所有属性的名称
5.getId()
返回唯一的标识符
6.isNew()
确定会话对于客户来说是否为新创建
7.getCreationTime()
返回会话创建的时间
8.getLastAccessedTime()
返回客户端最近一次发送请求的时间
9.getMaxInactiveInterval()、setMaxInactiveInterval()
取得或设置会话的超时期
10invalidate()
废弃当前的会话

9.URL重写

当用户浏览器禁用Cookie时,仍打算运用Session来进行会话管理,可以对所有的URL使用URL重写
  • 九、JSP(Java Server Pages)
  • 必须依附项目
  • JSP文件与WEB-INF是同级目录
    1.JSP的组成(HTML文件+Java片段+JSP标签)
    在这里插入图片描述
  1. JSP文件必须包括
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8“ %>

3.JSP页面元素(6种标签元素)
在这里插入图片描述

1.<%@     %>
伪指令用来设置全局变量,声明类、要实现的方法以及输出内容的类型等
注意:
page:指定整个JSP页面的全局属性
include:通知jsp页面,内嵌指定页面,利用include可以将复杂的页面拆分成简单的页面
taglib:允许JSP页面开发者自定义标签

2.<%!   %>
声明指令包括的是一段java代码
可以生命全局的变量、方法

3.<%  %>
脚本指令是镶嵌在JSP页面中的java代码
可以声明聚局部变量、方法

4.<%=     %>
表达式指令是JSP提供的一种简单方法用于访问可用的Java取值或其他表达式,还可用于给动作指令动态传递参数
注意:表达式不能使用分号结尾
错误写法:<%=name;%>

6.JSP生命周期(7个阶段)

1.转换:将JSP源文件转换成对应的Servlet源文件
2.编译:将Servlet源文件即Java源文件编译生成字节码文件(.class)
3.装载:加载至内存
4.创建:创建一个Servlet类实例对象
5.初始化:调用_jspInit()方法,最终调用Servlet类的init()方法初始化
6.服务:调用_jspService()方法,最终调用Servlet类的service()方法,将请求和响应传递进行应的doXXX()方法。
7.销毁:调用_jspDestroy()方法,最终调用Servlet类的destroy()方法,销毁Servlet

5.JSP九大内置对象及含义

1.out:客户端打开的输出流
2.request:为多个应用程序保存信息
3.response:为每个用户保存信息
4.session:封装客户端HTTP请求信息
5.application:封装返回HTTP客户端响应信息
6.page:JSP对应实现类实例,JSP本身
7.pageContext:封装JSP上下文信息,管理JSP作用域中对象的访问
8.config:表示Servlet的配置,只在JSP页面中有效
9.exception:表示运行时异常,将导致调用错误页面
  • 十、过滤器Filter
    1.过滤器的概念
过滤器是一个用于拦截数据源和数据目的地之间消息的一个对象

2.过滤器功能

分析请求,把请求发送给目的资源或者过滤器自身创建一个响应返回

在请求发送到服务器端之前过滤器需要处理请求,设置请求消息,将请求封装成符合规则的对象

在相应到达客户端志强处理响应,将响应封装成符合规则的对象

3.过滤器的执行
处理请求时采用以下三种行动之一

1.过滤器自身产生一个响应,发送给客户端
2.将请求转发给过滤器链的下一个过滤器,如果是最后一个过滤器,则将请求准发给请求指定资源
3.将请求转发到另一资源

4.编写过滤器的步骤

-编写过滤器的实现类
-在web.xml部署描述符文件中进行配置
-运行

5.过滤器接口中的三个主要方法

init() 初始化过滤器方法,生命周期中只执行一次
doFilter() 处理请求
destroy() 释放过滤器所占用的资源

6.过滤器链的相关执行顺序(和部署描述符文件中的虚拟路径有关)

加载顺序:web.xml文件中<filter-mapping>的倒序
拦截顺序:web.xml文件中<filter-mapping>的正序
销毁顺序:web.xml文件中<filter-mapping>的倒序

7.Servlet容器可以在同一个Filter对象运行多个线程来同时处理多个请求。
8.Filter在web.xml中的配资

<filter>
<filter-name> </filter-name>
<filter-class>  </filter-class>
<description>  </description>
<init-param> 
<param-name>  </param-name>
<param-value>  </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>  </filater-name>
<url-pattern>  </url-pattern>
</fliter-mapping>
  • 十一、监听器–Listener
    1.概念
监听器接口监听另一个Java对象的方法调用或者属性更改

2.application作用域的两大监听器
单个Web站点的资源都共享一个

ServletContextLinstenr(存取全局对象,初始化变量)
该监听器中的方法:
ContextInitialied() 接收对应的ServletContextEvent事件
ContextDestroyed() 从容器中移除时调用

对应的监听器事件是ServletContextEvent,它的主要方法:
getServletContext()

ServletContextAttributeListener
该监听器中的方法:
attributeAdded(ServletContextAttributeEvent  e)  有对象加入Application范围
attributeReplaced(ServletContextAttributeEvent  e) 在Application的范围,有对象取代另一个对象
attributeRemoved(ServletContextAttributeEvent  e) 有对象从Application范围移出

对应的监听器是的事件是ServletContextAttributeEvent,它的主要方法
getName()
getValue()
attributeReplaced()方法中,getName()与getValue()是取之前的值

2.request作用域的两大监听器

ServletRequestListener接口
以及该接口中的方法:
requestInitialized(ServletRequestEvent  e)ServletRequest已经被加载及初始化
requestDestroyed(ServletRequestEvent  e)ServletRequest已经被销毁
该监听器的事件是ServletRequestEvent,它的主要方法:
getServletContext()
getServletRequest()

ServletRequestAttributeListener接口
该监听器接口的主要方法:
attributeAdded(ServletRequestAttributeEvent  e)有对象加入Request范围
attributeReplaced(ServletRequestAttributeEvent  e)在Request的范围,有对象取代另一个对象
attributeRemoved(ServletRequestAttributeEvent  e)有对象从Request范围移出

该监听器的事件是ServletRequestAttributeEvent,它的主要方法
getName()
getValue()

3.session作用域的两大监听器

HttpSessionListener接口
以及该监听器接口中的方法:
sessionCreated(HttpSessionEvent e) 通知正在收听的对象,Session已经被加载及初始化
sessionDestroyed(HttpSessionEvent e)通知正在收听的对象, Session已经被载出

HttpSessionAttributeListener接口

以及该监听器接口中的方法:
attributeAdded(HttpSessionBindingEvent  e) 有对象加入Session范围
attributeReplaced(HttpSessionBindingEvent  e)在Session的范围,有对象取代另一个对象
attributeRemoved(HttpSessionBindingEvent  e)有对象从Session范围移出
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!