JavaEE总结.docx

上传人:小飞机 文档编号:3159445 上传时间:2023-03-11 格式:DOCX 页数:33 大小:52.97KB
返回 下载 相关 举报
JavaEE总结.docx_第1页
第1页 / 共33页
JavaEE总结.docx_第2页
第2页 / 共33页
JavaEE总结.docx_第3页
第3页 / 共33页
JavaEE总结.docx_第4页
第4页 / 共33页
JavaEE总结.docx_第5页
第5页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《JavaEE总结.docx》由会员分享,可在线阅读,更多相关《JavaEE总结.docx(33页珍藏版)》请在三一办公上搜索。

1、JavaEE总结 MyEclipse智能提示类型修改,在Window - Preferences - java - Editor - Content Assist下; 动态WEB在服务器端有WEB服务插件,用以对请求的类型进行区分,静态会交给WEB服务器,调用文件系统,动态会交给一个WEB容器,动态WEB没有固定代码,需要拼凑,再使用WEB服务器; CGI(Common Gateway Interface/公共网关接口); PHP(Hypertext Preprocessor/超文本预处理); ASP(Active Server Pages/动态服务页); JSP(Java Server Pa

2、ge/Java服务页)/Servlet(服务器端小程序); HTTP(Hypertext Transfer Protocol/超文本传输协议); HTML(Hypertext Markup Language超文本标记语言); CSS; XML(Extensive Markup Language/可扩展标记语言); 浏览器默认端口是80; 在表格中,colspan,rowspan; 插入简单换行符; 每个标记编写时候都必须完结,如:; 所有表单元素必须放在中,JSP中也会使用; 基于对象是指在程序的内部已经为用户提供好了若干个对象,用户可以直接使用;而面向对象是指类需要用户自己定义,类需要用户自

3、己产生; JavaScript所有代码均是顺序执行; 所有HTML元素均可使用JavaScript输出; 一般会使用一个*.js的文件保存所有的JavaScript代码,用的时候直接导入即可; JavaScript变量统一使用var定义,不需声明变量类型,在赋值时确定类型,var也可以省略; JS中判断字符串相等可以使用=; 希望表格输出但表格中没内容,使用 占用空间; 另:常用字符实体: 显示结果 描述 不可拆分的空格 小于 大于 And符号 引号 单引号 实体名   > 实体号   < > & " & JS中函数定义: 美分

4、 英镑 元 章节 版权 注册 乘号 除号 ¢ £ ¥ § © ® ¢ £ ¥ § © ® × ÷ function 函数名称(参数列表) JS中所有数组全是通过Array完成操作的; var 数组名 = new Array(数组长度或全部数组元素); JS是在HTML中嵌入的,加强HTML的功能的语言; ; 定义当前页面单击事件: 显示文字 return 返回值; onsubmit是在表单上编写的事件,只要进行submit都必须经过此事件; JSP正则:/正

5、则/.test(值),开头$结尾;如/w+w+.w*$/.test(value); 单击事件和表单提交事件不同; 如果多个控件定义了同一个名字的话,则此时按照数组形式操作; 使用JS打开和关闭窗口时,以及一些特殊效果都要使用window对象; 子窗口操作父窗口,通过opener完成; XML语言文件可清楚的知道每个节点的作用是什么;HTML的主要功能是显示,而XML主要功能是数据结构的描述; XML又头信息、数据区两部分组成; 显示结果 描述 小于 大于 And符号 实体名 > & 双引号 单引号 ' XML中可以使用进行注释; XML解析,W3C标准有两种接口,DOM和SAX,

6、一般以DOM为主,DOM不可以读取大文件,但是可以修改文件,SAX可以读取大文件,但是不能修改; DOM(Document Object Model/文档对象模型),将XML文件转换为DOM树来操作; SAX(Simple API for XML); DOM操作时,每个文字也是一个节点,叫做文字节点; DOM解析常用的接口:Document、Node、NodeList、NamedNodeMap; 解析过程: DocumentBuilderFactory factor = DocumentBuilderFactory.newInstance; DocumentBuilder builder =

7、factor.newDocumentBuilder; Document doc = builder.parse(new File(文件路径); NodeList nl = doc.getElementsByTagName(XML标签名); 之后可通过Node对象操作; DOM除了可对文件进行解析,也可对文件进行生成;在创建文档时,Document doc = builder.newDocument;这样使用; JDOM为DOM的可修改性加上SAX的文件读取性; JDOM和DOM4J输出比较方便,读取全部都使用到了SAX; JS中包括了对表格的操作函数,insertRow插入行,deleteCe

8、ll删除单元格,insertCell删除单元格; 实际上在和元素中间有个; WEB容器用来拼凑代码,并可以连接数据库; Tomcat需要一个指定的JDK,新建用户变量JAVA_HOME,指定需要的JDK路径; 进行安装的时候,防火墙必须关闭; Tomcat目录: bin:所有的可执行命令,启动和关闭服务器的命令; conf:服务器的配置文件夹,保存各个配置信息; lib:所需要的库文件; logs:系统日志; webapps:web应用程序存放的目录,web项目保存到此目录即可发布; work:临时文件夹,生成所有临时文件; binTomcat7.exe可启动服务器,ctrl+c或关闭窗口即可

9、关闭服务器; confserver.xml中,可修改端口号; 配置虚拟路径,虚拟路径的文件夹下必须有一个WEB-INF文件夹和web.xml; 在server.xml中,配置语句即可,path表示浏览器中输入的路径地址,docBase为虚拟文件夹在本地的真实路径; HTTP最常见的状态:404,路径错误;500,服务器错误; listings true 修改后,访问虚拟目录时,将列出目录下的文件和文件夹信息; index.htm即首页,一旦输入虚拟目录之后,可直接调用此页面; confweb.xml中,最下边是默认的首页名称,index.htm,index.html,index.jsp; 修改

10、默认的首页,最好是单独修改各自的web.xml,在虚拟目录下的WEB-INFweb.xml中,加入由confweb.xml复制来的: JSP是嵌套在HTML中的,第一次访问时候,会自动编译,生成一个*.class文件,每当jsp文件改变时候,会生成新的*.java和*.class文件; jsp必须有web容器支持,不能直接打开; JSP注释: 显示注释: 隐式注释:/、/* 内容 */、; Scriptlet表示脚本小程序,有三种: :局部变量、语句; :方法、类、全局变量、全局常量; :输出一个变量或一个具体内容; 一般来说使用时,声明全局常量较多,一般不会去定义方法和定义类; 使用out.

11、println输出,会将HTML和java代码混在一起,没有缩进,还得大量使用转义字符; 输出,可以使HTML和java代码相分离,所以尽量使用输出; 也是一种Scriptlet标签; page指令可定义一个JSP页面的相关属性,包括设置MIME类型、定义需要导入的包、错误页的指定等,语法:; 常用page属性:contentType定义响应的MIME类型;import导包;pageEncoding指定字符编码; 高版本的Tomcat可以自动编码,但未保证正常运行,一定要设置MIME类型; confweb.xml中, htm text/html html text/html 即为MIME类型映

12、射表,text/html即为以html风格显示; response.setHeader(Content-Disposition,attachement;filename=helloword.doc);可以更改该页面保存时候的默认文件名; 如果希望一个JSP页面改变现实形式,就通过设置MIME类型完成; contentType=application/msword; charset=GBK中,charset可以设置编码,也可以用pageEncoding来设置编码; JSP中如果有pageEncoding,编码则由pageEncoding决定,如果没有pageEncoding,由contentTy

13、pe中charset决定,如果都没有,则默认iso-8859-1; 常见的使用text/html风格显示的JSP,只需要指定一个pageEncoding即可; 错误页功能满足条件: 指定出现的跳转页,通过errorPage属性指定; 错误处理也必须有明确的标志,通过isErrorPage属性指定; 正常情况下,可以跳转,但有时候也会出现无法跳转的问题,因为在跳转之后,有可能认为错误处理的页面也是一个出错的页面,所以应该在错误处理的页面设置response.setStatus(200);可以说明该处理页面正确; 出错跳转时,地址栏上没有改变,但内容已经改变,这种不改变地址栏的跳转称为服务器端跳转

14、; 修改web.xml可以实现错误的集中处理,在最后增加类似如下代码即可: 404 /basic_page/error.jsp java.lang.NullPointerException /basic_page/error.jsp 加粗的出错后,跳转的页面; ; page指令中,只有import能多次使用,其余只能出现一次; JSP中,有两种包含操作:静态包含和动态包含; 静态包含:语法,就是将内容进行了直接的替换; 动态包含: 不传递参数: jsp:include page=要包含的文件路径| flush=true|false/ 传递参数 jsp:include page=要包含的文件路径

15、| flush=true|false 使用request.getParameter(参数名),可取得参数,使用value=可传递 变量; 使用静态包含由于是代码替换,所以会出现重复定义变量的问题,动态包含先处理后包含,不会出现重复定义的问题; 传递参数时候,参数个数不够,做为null处理; 使用可实现跳转,语法与include相类似; 此种跳转属于服务器端跳转,即地址栏中地址不变化,仅页面变化; JSP中9个内置对象: 内置对象 pageContext request response session application config out page exception 类型 javax

16、.servlet.jsp.PageContext javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse javax.servlet.http.HttpSession javax.servlet.ServletContext javax.servlet.ServletConfig javax.servlet.jsp.JspWriter java.lang.Object java.lang.Throwable 起作用 描述 JSP页面容器 得到用户的请求信息 服务器向客户端的回应信息 用来保存每一个

17、用户的信息 表示所有用户的共享信息 服务器配置,可以取得初始化参数 页面输出 表示从该页面中表示的一个Servlet实例 表示JSP页面所发生的异常,在错误页中才 属性范围即一个对象可以在多少个页面中保存并继续使用; 4种属性范围: page:只在一个页面中保存属性,跳转之后无效,通过pageContext对象完成; request:只在一次请求中保存,服务器跳转后依然有效; session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用; application:在整个服务器上保存,所有用户都可以使用,新开浏览器有效; 4个内置对象都存在以下方法: public void

18、setAttribute(String name, Object o); public Object getAttribute(String name); public void removeAttribute(String name); 使用超链接,地址栏会改变,属于客户端跳转,无法传递request属性; IE8之后,所有的进程全部共享一个session,只有进程全部结束,session效果才会消失; 服务器重启后,application也将不起作用,必须重新设置; pageContext重载了上述3个方法,可以直接设置作用范围,pageContext可操作4种范围:APPLICATION

19、_SCOPE、PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE; request主要用在HTTP协议中; request.setCharacterEncoding(utf-8);可设置传递的统一编码,解决乱码问题; 使用public String getParameterValues(String name)取得复选框中的参数; 地址重写也可以传递参数: 目标页面?参数名称1=参数1&参数名称2=参数2&,如:request.jsp?id=123&password=321 post提交:地址栏转向目标页面,不附加内容,只能用在表单上; get提交:地址栏转向目标页面

20、,使用地址重写的方式传递参数,附加内容,受到地址栏长度限制,直接输入地址属于get提交方式; 当前台表单不确定时,使用public Enumeration getParameterNames取得所有参数名字,然后再取得对应的值; 使用String getHeader(String name) 、Enumeration getHeaderNames可取得头信息; public String getContextPath,取得上下文路径,有利于定位; setAttribute之后,只能通过getAttribute取得,不能通过getParameter取得; response常用方法: public

21、 void addCookie(Cookie cookie); public void setHeader(String name, String value); public void sendRedirect(String location); 使用跳转:属于服务器跳转,地址栏不改变,可传递request属性;属于无条件跳转,跳转之前的语句全部执行,跳转之后的语句不会执行; 使用response.sendRedirect(String location)跳转:属于客户端跳转,地址栏改变,不可传递request属性;实在所有语句执行结束之后才进行跳转; 使用request.getCookie

22、s可取得response设置的全部Cookie,使用Cookie类的方法setMaxAge(int expiry)可设置Cookie保存最大时间; session常用方法: public String getId; public long getCreationTime; public long getLastAccessedTime; public boolean isNew;) public void invalidate; public Enumeration getAttributeNames; 可以配置server.xml,使每次的session在服务器关闭时保存,并在下次继续使用,

23、叫做session的持久化; session使用的最多的是登录验证和注销; 会话跟踪的4种技术: 1、 使用session的方法,; 2、 使用Cookie; 3、 使用表单的隐藏域; 4、 通过地址重写; application常用方法: public String getRealPath(String path); public Enumeration getAttributeNames; public String getContextPath; 尽量使用this.getServletContext代替application对象; 网站计数器:使用BigInteget;用户在第一次进入才

24、计数;更改保存时的同步操作; Tomcat路径映射配置: he /WEB-INF/hello.jsp he /hello.123 映射路径配置参数,可通过config对象取得; pageContext对象可取得很多其他的内置对象,但是其中很大部分只有基本功能; JaveBean名词: VO:只对象,存放所有的传递数据的操作; POJO:简单Java对象; TO:传输对象,一个类必须实现Serializable接口后才称为传输对象; WEB开发的标准目录结构: 可以使用import导入使用JavaBean,也可使用jsp标签: 虚拟目录配置时候,以下方式可使Tomcat自动检测JavaBean修

25、改与否,并自动重载; 该配置适合调式使用,在真正运行时这么设置,会使服务器性能下降;每次重加载后,相当于服务器重启,之前的session属性会全部消失; 设置属性属性: 自动匹配:; 指定属性:; 指定参数:; 指定内容:; 一般来说,在jsp标签中,id就是实例化对象名,name就是id的内容,property就是类中的属性名; JavaBean删除:(pageContext|request|session|application).removeAttribute(JavaBean名称); DAO组成部分: DatabaseConnection:负责数据库的打开和关闭操作的类; VO:主要由

26、属性、setter、getter组成,VO类中的属性和表中的字段相对应,每个VO对象都表示表中的一条记录; DAO:定义操作的接口,定义一系列数据库的原子性操作; Impl:DAO接口的真实实现类,完成具体操作,但不负责数据库的打开和关闭; Proxy:代理实现类,完成数据库的打开和关闭并且调用真实实现类对象的操作; Factory:工厂类,通过工厂类取得DAO实例化对象; 接口命名规律: 数据库更新操作:doXxx;查询:findXxx、getXxx; 使用JSP+JavaBean的开发模式也叫做Mode I; form属性enctype的取值: 值 application/x-www-fo

27、rm-urlencoded multipart/form-data 在使用包含文件上传控件的表单时,必须使用该值。 text/plain 空格转换为+加号,但不对特殊字符编码。 描述 在发送前编码所有字符 不对字符编码。 使用smartupload上传,文件名不改变,所以上传同名文件会覆盖,应使用程序修改; 文件上传时,要对表单进行封装,但表单封装后,不能是使用request.getParameter接收参数; Fileupload中,不管是基本数据还是文件,只要上传,都按照FileItem表示,都通过List一起接收,故最麻烦的部分就是这里; 通过fileupload开发包中的FileIte

28、m接口下的isFormField方法判断是否是上传文件,返回值为false的是上传的文件,true是普通的表单元素; 建议使用SmartUpload。 每个Servlet都必须通过web.xml文件进行映射的路径指定; hello com.ee.servlet.HelloServlet MyServlet /test.do Servlet多作为控制逻辑层; 开发中尽量避免./的问题,把Servlet虚拟目录配置到.htm文件的文件夹中; Servlet生命周期对应方法: init:初始化调用; service(ServletRequest req, ServletResponse res):一

29、般不使用,而是用doGet和doPost,该方法本来是区分get和post的,覆写之后,将不使用doGet和doPost及一系列的doXxx; destroy:销毁时调用; 配置时,加上标签,可在服务器启动时加载; hello com.ee.servlet.HelloServlet 1 如果带参和不带参的两个init都被覆写,则只有带参的起作用; 取得初始化参数的操作在一些架构中使用; 在Servlet程序中取得session对象,通过HttpServletRequest接口中的getSession方法取得; 类似的,使用getServletContext取得application对象; 两种

30、跳转对比: 客户端跳转:地址栏跳转之后改变,无法传递request属性,在所有操作之后完成才跳转,使用response.sendRedirect(String location),在Servlet中使用resp对象即可; 服务器跳转:地址栏不改变,可以传递request属性,属于无条件跳转,执行到立即跳转,使用,在Servlet中使用javax.servlet. RequestDispatcher接口的forward(ServletRequest request, ServletResponse response)完成,其中,依靠ServletRequest接口的getRequestDispa

31、tcher(String path)可对RequestDispatcher实例化; WEB开发模式: Mode I:在开发中将显示层、控制层、数据层的操作统一交给JSP或JavaBean处理; 其中JavaBean包含了专门负责数据数据的操作,数据层主要以DAO为主,同时包括事务处理; Mode II:即MVC设计模式,以Servlet主体展开,由Servlet接收所有的客户端请求,交给对应的JavaBean,并将显示结果交给JSP完成。 Session在登录验证使用较多,request则主要用于MVC的Servlet将内容交给JSP显示上,而且这种显示在另外一次提交之后,属性消失; MVC处

32、理流程: Servlet分为:简单Servlet、过滤Servlet、监听Servlet; 过滤器使用的是filter接口,过滤的操作是自动完成的,多个过滤器采用“链”的方式处理,FilterChain表示把请求继续向下传递,若还有过滤器则过滤,若没有则直接到“目的地”; 过滤器在服务器启动时候自动初始化,服务器关闭时候销毁; 过滤器在FilterChain的doFilter方法向后过滤完后,还会回到前一层过滤器执行; 最常用的过滤:编码过滤和登录验证; 在web.xml中配置过滤器时,在servlet前配置; 监听器可对application、session、request监听,在事件触发之

33、后处理; 对application监听,主要使用ServletContextListener和ServletContextAttributeListener,都在javax.servlet包中; web.xml配置时,建议顺序:监听器、过滤器、简单Servlet; 对session监听,使用HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener,在javax.servlet.http包中; session销毁:不可通过关闭页面销毁,可调用invalidate销毁,或超时销毁; 对request监听,

34、使用ServletRequestListener、ServletRequestAttributeListener,从实际来看,对request的监听不常使用; 所有的监听接口的attributeReplaced方法,如果通过其参数取得的属性值,为重新设置之后的属性值; 在JSP中只能出现的3种代码:接收属性、判断语句、迭代输出; No. 1 2 3 4 5 6 7 8 9 10 11 表达式内置对象 pageContext pageScope requestScope sessionScope applicationScope param paramValues header headerVa

35、lues cookie initParam 说明 表示javax.servlet.jsp.PageContext对象 表示从page属性范围查找输出属性 表示从request属性范围查找输出属性 表示从session属性范围查找输出属性 表示从application属性范围查找输出属性 接收传递到本页面的参数 接收传递到本页面的一组参数 取得一个头信息数据 取得一组头信息数据 取出cookie中的数据 取得配置的初始化参数 由于通过pageContext可取得其余3个对象,所以可通过el直接完成内置对象的方法调用;从实际上来说,使用最多的仅仅是param,因为从MVC来说,接收参数应该由Ser

36、vlet完成; el输出集合时,可以简单地仅使用下标输出,也可使用Itertor; el数学运算符:+、-、*、/(div)、%(mod); el关系运算符:=(eq)、!=(ne)、(gt)、=(ge); el逻辑运算符:$(and)、|(or)、!(not); el其他运算符:empty、? :、; 使用数据源可以提升操作性能; 连接池功能:最小数据库连接维持数、最大允许连接数、等待时间; WEB容器中,连接池的访问是通过数据源访问; JNDI和程序文件夹的web.xml: Server.xml(sontext.xml)配置: web.xml配置: jdbc/db javax.sql.Da

37、taSource Container 取得连接: String name = java:comp/env/jdbc/db;/ 必须有java:comp/env/,该名字后边是上边配置的name Context c = new InitialContext;/ 查找上下文 DataSource ds = (DataSource) c.lookup(name);/ 查找对象 Connection con = ds.getConnection;/ 取得数据库连接 . con.close;/ 关闭,将连接放回连接池 自定义的标签编程一般在开发中不使用; 自定义标签需要一个标签的支持类,一个标签描述文件

38、,和web.xml文件中的配置; 标签中属性的设置依然通过反射机制调用setter方法完成; No. 1 2 3 4 5 6 7 8 9 10 常量或方法 protected PageContext pageContext SKIP_BODY EVAL_BODY_INCLUDE SKIP_PAGE EVAL_PAGE EVAL_BODY_AGAIN public int doStartTag public int doEndTag public int doAfterBody public void release 类型 属性 常量 常量 常量 常量 常量 方法 方法 方法 方法 描述 表示PageContext对象,可操作4种属性范围 忽略标签体内容,将操作转交给doEndTag 正常执行标签体操作,但不处理任何运算 所有在JSP上的操作都将停止,会将所有的输出的内容立刻显示在浏览器上 正常执行JSP页面 重复执行标签体内容,会再次调用doAfterBody,直到出现SKIP_BODY为止 处理标签开始部分 处理标签结束部分 处理标签主体部分 释放标签资源 Tag接口的程序执行流程: IterationTag接口执行流程: BodyTag接口的执行流程: 使用BodyTagSupport可以完成标签的开发,但比较复杂,此

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号