JavaEE知识点.docx
《JavaEE知识点.docx》由会员分享,可在线阅读,更多相关《JavaEE知识点.docx(19页珍藏版)》请在冰点文库上搜索。
![JavaEE知识点.docx](https://file1.bingdoc.com/fileroot1/2023-5/19/19098c6c-f23d-4363-a63f-d20259ff9f16/19098c6c-f23d-4363-a63f-d20259ff9f161.gif)
JavaEE知识点
第一讲:
JavaEE体系结构
1.JavaEE概念:
一种开发Internet企业级应用的规范
2.JavaEE组成:
(1)容器规范:
容器是运行JavaEE组件的环境
i.Web容器:
运行web组件;
ii.EJB容器:
运行EJB组件
iii.Applet容器:
运行Applet
iv.Applicationclient容器:
运行一般的Java类
(2)组件规范:
i.Web组件:
JSPServletFilterListenerJSF
ii.EJB组件:
实体EJB,会话EJB,消息EJB
iii.Applet组件:
iv.Applicationclient组件
(3)服务规范:
由组件调用
i.JDBC:
连接数据库
ii.JavaMail:
连接MailServer发送/接受E-mail
iii.JNDI:
连接命名服务系统或者目录服务系统
iv.JTA:
事物管理服务
v.JMS:
连接消息服务
(4)协议规范:
规定访问组件的通讯规范
i.HTTP:
访问web组件
ii.HTTPS:
安全协议
iii.RMI:
远程调用
iv.RMI-IIOP:
访问EJB组件
v.SOAP:
访问web服务
(5)开发角色的规范:
产品的提供者工具的提供者等。
第二讲Servlet编程
1.Servlet概念:
Servlet是一种JavaEE的web组件,以Java类的形式存放,以Web形式读取。
继承了HttpServlet类
2.引入的包:
java.io.*;javax.servlet.*;javax.servlet.http.*
3.Servlet配置:
在WEB-INF下得web.xml文件下
a)声明Servlet:
类名
—声明servlet的名字-->
包名.类名
—指定servlet的全名-->
b)声明servlet初始化参数:
参数名
参数值
注:
servlet声明初始化参数后,在servlet中的init方法中用config.getInitParameter(“参数名”)来取出初始化参数的值
c)servlet映射:
servlet名
映射地址
注:
1.声明servlet和其映射的时候要注意servlet名必须一致
2.映射地址分为绝对映射和模糊映射
绝对映射:
以”/”开头
模糊映射:
前置方式:
*.do或者*.action
后置方式:
”/*”或者”/目录/*”
注意区别联众映射的区别,声明一个servlet的映射的时候要么以“/”开头要么以“*”开头。
否则均视为映射声明错误
d)servlet的四种方法:
publicvoidinit(ServletConfigconfig)throwsServletException{
//声明servlet初始化
}
publicvoiddestroy(){
//servlet终止
}
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//用Get方法传递参数时调用的方法
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//用post方法传递参数时调用的方法
}
e)servlet生命周期:
从用户调用servlet开始到向应客户结束
第三讲:
Http请求处理编程
1.Http请求数据的组成:
a)请求头
i.客户端信息(浏览器信息,位置信息,cookie数据等)
ii.请求数据体信息(一下仅为主要的信息)
User-Agent:
客户端的类型
Accept:
浏览器可接受的MIME类型
Accept-Charset:
浏览器支持的字符编码
Accept-Encoding:
浏览器知道如何解码的数据编码类型
Accept-Language:
浏览器指定的语言
Connection:
是否使用持续连接
Content-Length:
使用post方法提交是,传递数据的字节数
Cookie:
保存的cookie对象
Host:
主机和端口
b)请求体:
包含提交到服务器的数据,只有post方法才有请求体,get请求的请求体包含在url中作为请求头的请求体
2.Http请求数据的类型:
文本和二进制
注:
当请求体数据是二进制的时候需引入解析二进制数据的第三方框架,例如:
apache的Commonfileupload,cos框架,JspSmartUpload同时客户端必须以post方式进行提交而且表单中要加入属性:
enctype=”multipart/form-data”
3.Http请求对象,实现HttpServletRequest接口(javax.servlet.http.HttpServletRequest)
a)声明周期:
每次Http请求时创建,当向应结束时销毁
b)请求对象的方法:
i.取得请求头的方法:
getHeader():
取得指定的请求头字符串类型的内容返回字符串类型
getIntHeader():
取得整数类型的指定内容返回整数类型
getDataHeader():
取得如期类型的指定请求头中得内容返回日期类型
getHeaderNames();取得所有请求头的列表,返回枚举类型
ii.取得请求体中包含的提交参数数据:
getParameter():
取得指定名称的参数数据
getParameterValues():
取得指定参数名称的数据数组
getParameterNames():
取得所有请求参数的名称
getParameterMap():
取得所有请求的参数名和值
getInputStream():
取得客户端提交的输入流。
iii.取得其他客户端信息:
getRemoteHost():
取得请求客户的主机名
getRemoteAddr():
取得请求客户的IP地址
getRemotePort():
取得请求客户的端口号
getProtocol():
取得请求协议
getContentType():
取得请求体内容的类型
getContentLength():
取得当请求提为二进制流时请求体的长度,多用于文件上传
iii.取得服务器端信息:
getServerName():
取得服务器的HOST,一般为IP
getServerPort():
取得服务器接收端口
iv.取得cookie
getCookies():
取得cookie数组
v.获取请求地址信息:
getRequestURL():
取得URL;
getRequestURI():
取得URI;
注:
url与uri的区别:
url指次文件在全球互联网的地址
uri指文件在站点下的地址
第四讲:
Http响应处理
1.Http响应内容:
a)响应状态:
状态码和状态信息组成
i.状态码:
1.1XX:
用于指定客户端应响应的某些动作
2.2XX:
用于表示请求成功;例如200表示完成
3.4XX:
用于指出客户端的错误;例如404表示请求的文档不存在
4.5XX:
用户支持服务器错误;一般指Java代码内部错误
b)响应头:
i.响应类型
ii.字符编码
iii.Cookie
c)响应体:
文本类型和二进制类型
常见的响应体类型:
扩展名
类型/子类型
扩展名
类型/子类型
*
Application/octet-stream
mp2
Video/mpeg
avi
Video/x-msvideo
Mp3
Audio/mpeg
Bmp
Image/bmp
Mpeg
Video/mpeg
Css
Text/css
Mpg
Video/mpeg
Doc
Application/msword
Pdf
Application/pdf
Dot
Application/msword
Pfx
Application/xpkcs12
Gif
Image/gif
Pgm
Image/x-portable-graymap
Htm
Text/html
pps
Application/vnd.ms-powerpoint
Html
Text/html
Ppt
Application/vnd.ms-powerpoint
Jpe
Image/jpeg
Txt
Text/plain
Jpeg
Image/jpeg
Xls
Application/vnd.ms-excel
Jpg
Image/jpeg
Xwd
Image/x-xwindowdump
Movie
Video/x-sgi-movie
Zip
Application/zip
2.JavaEE向应对象(javax.servlet.http.HttpServletResponse)
a)方法:
i.设置向应状态码
1.setStatus()向客户端发送自定义的状态码或者信息
2.sendError()向客户端发送指定的错误信息码
ii设置向应头
1.setHeader()将指定的名称和值(字符型或者整型常量)的响应头发送到客户端
2.setDataHeader()将指定的名称和值(long类型)的响应头发送到客户端
iii设置响应头的便捷方法
1.setContentType()直接设置向应内容类型MIME响应头
2.setContentLength()设置向应体长度,以字节为单位
3.setCharacterEncoding()设置向应字符集
4.setBufferSize()设置向应体的缓存字节数
iv设置向应体发送功能方法
1.setContentType()设置响应类型ContentType
2.setCharacterEncoding()设置向应字符编码
3.PrintWriterout=response.getWriter()取得文本字符流对象
4.out.println()向流对象发送文本数据
5.out.flush()清空流中缓存的字符
6.out.close()关闭流
7.addCookie()发送cookie到客户端
8.sendRedirect()重定向响应
9.InputStreamin=response.getInputStream()取得二进制流
第五讲会话跟踪编程
1.会话的概念:
客户端与服务器交互的过程
2.跟踪的概念:
服务器保存客户端信息的能力
注:
http是无状态协议,所以无跟踪能力
3.实现会话跟踪的技术:
a)重写URL:
将客户端信息附加在请求URL地址的参数中
i.缺点:
1.url地址过长
2.不同浏览器对url传递参数的限制
3.安全性缺陷
4.编程繁杂
b)隐藏表单字段:
将要保存的客户信息使用隐藏表单字段发送到服务器端
i.缺点:
1.安全性差
2.编程复杂
3.无法再超链接模式下工作
c)Cookie:
使用javaEEAPI提供的Cookie对象
i.CookieAPI(javax.servlet.http.Cookie)
1.Cookiecookie=newCookie(”attribute”,”value”)创建Cookie
2.Cookie的主要方法
a)getName()取得Cookie对象的名称
b)getValue()取得Cookie对象的值
c)getMaxAge()取得Cookie对象在客户端保存的有效期
d)getPath()取得Cookie对象的有效路径
e)getVersion()取得Cookie对象使用的协议版本
f)getDomian()取得Cookie对象的有效域
g)setValue()设置Cookie对象的新的有效值
h)setMaxAge()设置Cookie对象在客户端保存的有效期
i)setDomain()设置Cookie对象的访问域名
j)setPath()设置Cookie对象的有效目录
k)response.addCookie(cookie名)将cookie发送到客户端
ii.缺点:
1.Cookie存储方式单一
2.存储位置限制
3.Cookie大小受浏览器的限制
4.Cookie可用性的限制
5.安全性缺陷
d)HttpSession对象API
i.接口:
javax.servlet.http.HttpSession
ii.创建会话对象:
HttpSessionsession=request.getSession([Boolean])
1.参数为true:
有会话对象直接返回引用,无会话对象则先创建再返回引用
2.参数为false:
有会话对象直接返回引用,无会话对象则不会创建会话对象
iii.会话对象的方法:
1.setAttribute()设置存入会话对象的属性和值
2.getAttribute()取得存入会话对象的值
3.removeValues()删除会话对象中不需要的属性
4.getAttributeNames()取得会话对象中保存的所有属性名称列表,返回枚举类型的对象
5.setMaxInactiveInterval()设置会话对象的时效期限,以秒为单位
6.getMaxInactiveInterval()取得会话对象的时效期限,以秒为单位
7.invalidate()立即迫使会话对象失效
8.isNew()测试取得的会话对象是否是刚刚创建的返回值为boolean类型
9.getCreateTime()取得会话对象的创建时间,返回long类型的整数
10.getId()取得会话对象的ID
iv会话对象的生命周期:
a)创建:
i.第一次访问Jsp文件,同时不设置session属性
ii.第一次访问servlet有会话对象创建的方法
b)销毁:
i.会话对象的方法销毁
ii.访问超时
iii.Server关闭
v会话对象ID的存储
a)默认存储在cookie中
b)编程实现(url重写)
注:
此时的url重定向有两种方法:
1.自动重定向:
response.encodeRedirectURL(Stringurl)
2.超链接重定向:
重写url,进行封装
第六讲:
Web页面的跳转
1.重定向:
a)手动
i.地址栏输入地址
ii.超链接
iii.表单提交
c)自动:
response.sendRedirect();
2.转发:
web组件在服务器端直接跳转
a)实现:
javax.servlet.ResquestDispatcher
i.JSP:
forwardpage=””/>
ii.Servlet:
RequestDispatcherrs=request.getResquestDispacher();rs.forward(request,response);
3.转发与重定向的区别:
a)位置不同:
重定向是想在客户端,跳转实现在服务器端
b)请求次数不同:
重定向请求两次,跳转请求一次
c)共享不同:
重定向不能共享request,跳转可以共享request
d)速度不同:
重定向比跳转慢
e)访问外部url:
重定向可以访问外部url,跳转不可以访问外部url
第七讲ServletContext对象
1.servletContext对象是web级应用对象
2.ServletContext对象的方法:
a)Web级数据共享容器:
i.setAttribute()增加ServletContext对象中的属性和值
ii.getAttribute()取得ServletContext对象中的值
iii.removeAttribute()将指定的属性从ServletContext中删除
iv.getAttributeNames()取得所有属性的名称列表
b)读取web级初始化参数
i.Web级初始化参数的配置:
属性名
属性值
ii.Web组件取得web初始化参数
1.getInitParameter()取得初始化参数的值
2.getInitParameterNames()取得所有web初始参数名称列表
c)访问外部资源:
i.getRealPath()取得指定web目录或者文档的绝对目录地址
ii.gerResourceAsStream()以二进制字节流的类型返回指定的web资源
iii.getRequestDispatcher()取得指定web文档的转发对象
iv.getResource()返回指定Web资源的URL地址
v.getMimeType()返回指定文件的MIME类型
d)取得web应用的基本信息
i.getMajorVersion()取得Servlet容器API的主版本号
ii.getMinorVersion()取得Servlet容器的次版本号
iii.getServletInfo()取得web容器的名称和版本信息
e)web应用日志输出
i.log()
第八讲JavaEE过滤器编程
1.过滤器概念:
JavaEE过滤器能够对Http请求头和请求体在到达web服务器组件前进行预处理,同时对Http响应头和向应体在发送到客户端之前进行后处理操作
2.过滤器的功能:
a)登录检验
b)权限审核
c)数据验证
d)日志登记
e)数据压缩/解压缩
f)数据加密/解密
3.过滤器API
a)接口:
javax.servlet.Filter,javax.servlet.FilterChain,javax.servletConfig
b)必须包含三个方法init()dofilter()和destory()方法
c)FilterChain定义了一个dofilter()方法:
调用下级过滤器或者最终的请求资源
注:
过滤器编程时必须实现以上三种方法,缺一不可,doFilter()方法中的两个参数是ServletRequest和ServletResponse的对象
4.过滤器的配置
a)
过滤器名称
过滤器包名.类名
注:
在过滤器中也可以设置初始化参数方法与servlet相同
第十讲监听器
1.监听器的概念:
检测web容器对象ServletContext,Session,request的变化的Java对象
2.监听器的基本功能:
a)网站访问人数或次数计数器
b)网站登录用户人数和在线用户监测
c)日志记录
d)会话超时后的清理工作
3.监听器类型:
a)ServletContext对象监听器
i.接口:
javax.servlet.ServletContextListener
ii.事件类:
ServletContextEvent
iii.实现方法:
contextInitialized()和contextDestory()
b)ServletContext对象属性监听器
i.接口:
javax.servlet.ServletContextAttributeListener
ii.事件类:
ServletContextAttributeEvent
iii.实现方法:
attributeAdded(),attributeRemoved()和attributeReplaced()
c)会话对象监听器
i.接口:
javax.servlet.http.HttpSessionListener
ii.事件类:
HttpSessionEvent
iii.实现方法:
sessionCreated()和sessionDestoryed()
d)会话对象属性监听器
i.接口:
javax.servlet.http.HttpSessionAttributeListener
ii.事件类:
HttpSessionBindingEvent
iii.实现方法:
同ServletContext对象属性监听器的方法
e)请求对象监听器
i.接口:
javax.servler.ServletRequestListener
ii.事件类:
ServletRequestEvent
iii.实现方法:
requestInitialized()和requestDestroyed()
f)请求对象属性监听器
i.接口:
javax.servlet.ServletRequestAttributeListener
ii.事件类:
ServletRequestAttributeEvent
iii.实现方法同ServletContext对象属性监听器的方法
4.监听器的配置
包名.类名
第十一讲El和JSTL
1.EL:
表达式语言,应用于jsp2.0以后,代替Jsp文件中的脚本代码
2.EL语法:
${表达式}
注:
表达式可以是常量,变量,但是当表达式是变量的时候指的是scope对象的属性名
Scope对象:
pageContext,request,session,application,他们的访问顺序是自左向右
3.EL运算符:
a)算数运算
b)逻辑运算
c)空判断运算符(empty)
i.任意类型对象为null,返回true
ii.String类型对象为空字符串时,返回true
iii.数组类型对象无元素时,返回true
iv.容器类型对象无元素时,返回true
d)