1 解释名词
servlet:服务器端的小程序 用于接收数据、处理请求、给与响应的java模板类
jsp:Java server page Java服务器端页面,是动态资源 jsp=html+js+css+java片段+jsp标签
filter:过滤器 对一个或者一类请求进行拦截 根据条件选择放行
listener:监听器 监听域对象的某一个事件+监听器中的代码时被动执行的
session:由服务器创建和保存 但依赖于名为JSESSION的cookie的 用于保存会话数据的对象
cookie:由服务器创建,客户端保存,并通过请求头和响应头传递的键值对对象,用于保存会话数据
request:请求
response:响应
el:(Expression Language)el表达式 为了使得jsp写起来更简单 ---来替代<%= %>在页面显示变量的值
jstl:jsp标准标签库,提供标签替换jsp页面的java代码,提高程序可读性,降低维护难度 ---el表达式的扩展
2 http及http协议的分类,http的格式,http常见的请求头和响应头
http:超文本传输协议 一种基于请求/响应模式的、无状态的、互联网传输协议
分类:
互联网传输协议:客户端与服务器端进行数据传输时,必须遵守的数据格式
请求协议:客户端给服务器端进行数据传输时,必须遵守的数据格式
响应协议:服务器端给客户端响应的信息,需要遵守的数据格式
格式:
1 请求格式:
请求首行
请求头
空行
请求体
2 响应格式:
响应首行
响应头
空行
响应体
http常见的请求头:
Host:
User-Agent:
Accept:
Accept-Language:
Accept-Encoding:
Connection:
http常见的响应头:
Accept-Ranges:
Content-Length:
Content-Type:
Date:
Http状态码:
200:成功
304:使用浏览器缓存
302:重定向
404:请求资源路径错误
405:doGet/doPost方法没有别重写
500:服务器端代码错误
3 session和cookie的区别!
cookie:符合http协议规范的 由服务器创建 客户端保存的 通过请求头和响应头传递的键值对对象
session:由服务器端创建和保存的 但依赖于名为JSESSION的cookie的 用于保存会话数据的对象
相同之处:
1 都是解决http无状态的会话跟踪技术
2 都是服务器端创建 都依赖于http协议的请求头和响应头
不同之处:
1 保存位置不同
cookie由服务器端保存
session由服务器端保存
2 默认有效时间不同
cookie生命周期默认是浏览器内存
session默认的请求间隔是30分钟
3 存储容量不同
cookie单个数据<=4kb 单个站点只能有20个cookie
session没有限制
4 隐私策略不同
cookie对客户端可见 不安全
session对客户端是透明的 不存在敏感信息的安全问题
5 依赖关系
session依赖名为JSESSION的cookie
6 保存的数据格式
cookie只能保存ASICC码信息+二进制
session可以保存任意数据
4 jsp标签分类 及其作用
jsp指令标签:给整个jsp设置属性
page指令标签:给当前jsp页面设置属性
include指令标签:静态包含
taglib指令标签:引入第三方标签库
jsp动作标签:在jsp页面实现指定功能的标签:请求转发+请求包含+域属性的增删改查
forward动作标签:请求转发
include动作标签:请求包含,动态包含
useBean动作标签:创建域属性及赋值
5 jsp的九大内置对象名称类型及其作用
jsp九大内置对象:jsp对应的servlet自动创建好的九个对象:方便jsp的直接使用
1 request:HttpServletRequest类型:封装与请求相关的所有数据
作用: a:获取请求参数
b:获取请求头
c:作为域对象 实现请求链之间的数据共享
d:请求转发 请求包含
e:其他功能
2 response:HttpServletResponse类型:封装与响应相关的所有内容
作用: a:设置响应头
b:设置响应体
c:重定向
d:其他功能
3 page:HttpServlet类型:当前servlet对象
4 application:ServletContext类型:上下文对象
5 session:HttpSession类型:会话对象
6 pageContext:PageContext类型 当前页面数据共享,获取其他8个内置对象
7 out:PrintWriter类型:response的打印输出流
8 config:ServletConfig类型:配置信息,servlet-name url-pattern
9 exception:Throwable类型:错误界面捕获到的异常对象
6 el表达式的十一大内置对象名称类型及其作用
el表达式:为了使jsp书写更简单 用以替换<%= %>在页面显示变量的值
el的11大内置对象:
1~4 域对象:
pageScope:PageContext域对象
requestScope:request域对象
sessionScope:session域对象
applicationScope:application域对象
5~6 获取请求参数
param:获取单值请求参数
paramValues:获取多值请求参数
7~8 获取请求头
header:获取单值请求头
headerValues:获取多值请求头
9 获取cookie
10 获取项目的初始化参数
11 PageContext:PageContext对象
7 servlet的生命周期和filter的生命周期
servlet中有init、service、destory方法,这几个方法是servlet生命周期的相关方法:
servlet第一次被访问时就会被实例化,只要servlet一被实例化就会执行init方法(init方法只会执行一次);任何一个从客户端发出的请求,servlet中的service方法都会执行(在service方法的内部根据请求的方式不同调用doXxx方法);当servlet从服务器中移除或者关闭时,servlet对象被销毁,里面的destory方法就会被执行,然后垃圾回收就会将其回收处理。
filter中也是init、service、destory方法,可以对访问权限进行控制
filter在tomcat启动时就会创建filter单例对象;filter对象一经创建,tomcat就会调用filter的init方法,对filter进行实例化;每次filter配置的url被请求一次,tomcat就会调用filter对象的doFilter方法来拦截请求,然后通过FilterChain的doFilter方法来选择放行请求;tomcat在关闭前,会调用filter对象的destory方法,来销毁对象,释放内存。
8 listener的分类及其作用
listener:监听器 监听域对象的某一个事件,当此事件发生时,就会执行相应的代码
listener分类:
域属性监听器:监听request/session/servletContext的属性的 增删改:crud
域对象的生死监听器:监听request/session/servletContext对象的创建与销毁
9 request对象和response对象的作用 及其主要方法
我们开发的软件是b/s结构的软件,可以通过浏览器访问服务器的软件,从浏览器输入一个地址访问服务器(将这个过程成为请求),服务器接收到请求,需进行处理,处理之后需要将处理结果显示回浏览器端(将这个过程称为响应)。
request对象:将浏览器向服务器发送的数据的封装
request获得客户机的信息
获得请求的方式:String getMethod()
获取请求路径的url和uri:String getRequestURI()
StringBuffer getRequestURL()
获取客户端的IP地址:String getRemoteAddr()
request获得请求头的方法
获得单值value的请求头:String getHeader(String name)
获得多值value的请求头:Enumeration getHeaders(String name)
获得所有请求头名称:Enumeration getHeaderNames()
request获得请求参数的方法
获得单值请求参数:String getParameter(String name)
获得多值请求参数:Map getParameterMap()
获得多值请求参数的value值:String[] getParameterValues(String name)
request作为域对象存取数据的方法
向request域中存储数据:void setAttribute(String name, Object o)
从request域中获取数据:Object getAttribute(String name)
从request域中移除数据:void removeAttribute(String name)
response对象:将服务器向浏览器发送数据的封装
response响应首行设置响应的状态码:void setStatus(int sc, String sm) 设置状态码没啥意义
response响应头设置响应头 set开头的方法:一个key对应一个value,set等同于重写valule
add开头的方法:一个key对应多个value,add等同于value加上一个新的value
response响应体设置响应体:::在页面输出内容
ServletOutputStream getOutputStream() ---字节流
PrintWriter getWriter() ---字符流
response重定向:void sendRedirect(String location)
response设置响应的字符流缓冲区字符集:void setCharacterEncoding(String charset)
response设置浏览器打开页面时采用的的字符集:void setContentType(String type)
response服务器向浏览器回写cookie的方法:void addCookie(Cookie cookie)
|