JavaEE重点知识总结.docx

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

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

1、JavaEE重点知识总结JSP/SERVLET/JAVABEAN 第一章 JavaEE概述 Java平台的版本: Java SE:窗体、控制台应用程序 Java ME:嵌入式开发手机、移动设备 Java EE:Web Application Java EE的体系结构: 1、表示层 2、中间层 3、数据层 三层体系结构的优点: 1、耦合性低2、扩展性好3、重用性好4、便于分工 系统集成技术 1、JAX-WS 2、JNDI HTTP协议的提交方式 1、GET 用URL传递数据 2、POST 用流的方式传递数据 GET和POST的区别: 1、GET方式在地址栏中有数据显示,POST没有 2、GET提

2、交的数据量有限,POST没有 3、GET请求的页面可以设置为书签或通过EMAIL发送,POST不行 第二章 Servlet基础 什么是Servlet:Servlet是一个Java程序,是在服务器端运行的以处理客户端请求并做出响应的程序。 Servlet类一定要继承HttpServlet,Servlet必须和Servlet容器配合运行,Servlet要嵌入容器才能运行。 Web应用程序的结构: tomcat-webapps-appName: http:/ip:port/appName/index.jsp 1、页面和图片 2、WEB-INF目录 a、web.xml b、classes文件夹 c、l

3、ib文件夹 Web.XML中要对Servlet进行一些配置 test org.owl.servlets.TestServlet test /test doPost doGet service JSP在运行时需要翻译成一个Servlet程序,然后在编译成Class文件,然后才可以运行。 Servlet的生命周期由Servlet容器来管理 Servlet的生命周期: 1、加载和实例化:在Web容器中查找用户请求的Servlet,如果没有找到,则实例化,如果找到加载。 2、初始化:在实例化后调用的方法,可以初始化一些资源。 3、服务:接收请求并做出响应。根据请求的方式不同,调用doXXX方法。 4、

4、销毁:主要用来销毁初始化时创建的资源,在destory方法中我们标识那些资源可以回收,并不能马上回收。 加载实例化初始化服务 加载服务 加载服务 销毁 HttpServlet基类 MyServlet派生类 HttpServlet ms = Class.forname(org.owl.MyServlet).getInstance; 容器使用Servlet的伪代码 HttpServlet s = container.getServlet(name);加载 if(s = null) s = Class.forname(org.owl.MyServlet).getInstance;实例化 s.init

5、;初始化 container.setServlet(name,s); s.service(request,response);服务 .s.destory;销毁 s = null; HttpServletRequest常用方法: getParameter方法:获得页面传过来的数据 setCharacterEncoding方法:设置请求的编码字符集 setAttribute,getAttribute方法:用于在request中存储一些信息,他们的生命周期就是一个请求的期间。 getRequestDispatcher方法:用于获得一个RequestDispatcher对象,应用于请求转发。 Http

6、ServletResponse常用方法: setContentType方法:设置响应的字符集和格式 sendRedirect方法:重定向。 getWriter方法:获得向客户端输出字符信息的对象。 RequestDispatcher常用方法 forward方法:请求转发 include方法:服务器端包含 重定向: 客户端发送请求到服务器端,如果服务器端需要重定向,那么将需要重定向到的地址发送给客户端, 客户端再向该地址提出请求。 请求转发: 客户端发送请求到服务器端,如果服务器端需要请求转发,那么服务器端直接把请求传送给另一个servlet或jsp,由其向客户端返回响应。 请求转发(reque

7、st.getRequestDispacther(1.jsp).forword(request,response) 与重定向(response.sendRedirect(1.jsp)的区别 1、重定向地址栏地址改变,请求转发不变; 2、重定向可以跳转到站外页面,请求转发不能; 3、重定向不能保存request中的数据,请求转发可以。 第三章 基于Servlet的会话跟踪 HTTP协议无状态 Session指的是在一段时间内,单个客户与Web服务器之间一连串相关的交互过程 Session是通过SessionID来确认是否是一个session过程 Session是一个HttpSession类的实例。

8、 通过request的getSession方法来获取Session 无参数的方法和参数是true方法是一样的,获取匹配的Session,如果无匹配,返回一个新的Session对象。 如果参数是false的话,如果无匹配的Session,返回null 使用Session 利用其setAttribute设置session,使用其getAttribute方法来获取session中的内容。 结束一个Session 1、关闭浏览器 2、当两次访问的时间超过了Session的最大非活动时间间隔 3、调用Session的invalidate方法使一个Session无效 由于Session的易失性,在获取数据

9、后要进行判断。 第四章 基于Servlet的会话跟踪 常用的集合类和接口 集合类分为两种: 1、Collection 2、Map Collection 1、ListArrayList、LinkedList 2、SetHashSet、TreeSet MapHashMap、Properties 第五章 基于Servlet的MVC设计模式 设计模式使一套被反复使用,成功的代码设计经验的总结。 MVC设计模式 1、M模型:JavaBean 2、V视图:JSP 3、C控制器:Servlet 优点: 1、各施其职、互不干涉 2、有利于开发中的分工 3、有利于组件的重用 客户端提交请求到C,C获取客户端数据

10、,根据不同的请求调用不同的M,并获得M的结果,根据结果的不同,选择不同的V,V将结果显示给客户端。 V:显示数据,与客户端交互 C:获取客户端数据;调用M;选择V M:业务逻辑;数据库访问 第六章 Model层开发:高级JDBC 我们需要什么样的数据访问层: 1、完成CRUD操作 2、能够处理数据库发生的各种错误 3、可以灵活的修改配置 4、提供方便使用的工具 5、高性能 连接池:一个存放着很多连接的容器。 数据源:对容器进行管理的对象 JNDI:获取数据源的方式 在Tomcat中配置连接池并使用: 1、将驱动Jar放入Tomcat中的lib目录; 2、修改Tomcat中conf目录中的con

11、text.xml配置文件,加入一个Resource标签。 3、在自己项目中的Web.xml中配置Resource-ref标签 4、编写程序,获取数据源 import javax.naming.*; Context ctx = new InitialContext; DataSource ds = (DataSource)ctx.lookUp(java:comp/env/jdbc/book); Connection cn = ds.getConnection; 如果JNDI名字是jdbc/book lookUp方法中的名字应写成:java:comp/env/jdbc/book 属性文件:*.pr

12、operties 因为Java中有一个类Properties可以用这个类的load方法直接读取*.properties文件。 属性文件如何存储: 键值对的方式,key=value 一行一个键值对 public class Sss private static Sss ss = null; private Sss private syn void Init if(ss = null) ss = new Sss; public static Sss getInstance Init; return ss; Sss ss = Sss.getInstance; 自定义异常: 所有的异常的父类:Thro

13、wable Exception就是Throwable的子类 throw关键字用于抛出异常,throws关键字用于将方法中的异常传递给调用类来处理。 自定义异常可以让我们更方便的看懂异常信息 通用DAO类 Result 相当于C#中的DataTable ResultSupport 相当于C#中的DataAdapter 第七章 View层开发:JavaBean在JSP中的使用 JavaBean实际上就是一个Java类 1、封装数据 2、封装业务 JavaBean要满足的要求: 1、公有类,公有的无参的构造方法 2、属性私有 3、公有的Getter和Setter方法。 属性,特性 根据Getter和

14、Setter方法来的 1、将Getter和Setter方法中的get和set去掉,剩下的部分首字母变为小写 例如,getName,setName,属性名为name 2、如果剩下的部分前两个字母都是大写,那么首字母不变为小写 例如,getUName,setUName,属性名为UName JSP标准动作 1、useBean:( ):获取或者创建JavaBean对象 id 必须有的,代表JavaBean的变量名 class 一个类型,新创建出来的JavaBean的数据类型 type 一个类型,获取对象以后将其转换为那种类型 scope 作用域,可选的参数,默认值是page class和type必须得

15、有一个,不能都没有,但是可以都有,type和class可以不一样,type指定的类型一定是class指定的类型的父类或者其实现的接口。 scope有四个值:从小到大page,request,session,application User test = (User)session.getAttribute(test); if(test = null) test = new User; session.setAttribute(test,test); Person test = (Person)session.getAttribute(test); if(test = null) throw n

16、ew Exception; Person test = (Person)session.getAttribute(test); if(test = null) test = new User; session.setAttribute(test,test); 2、setProperty:给JavaBean对象的属性赋值。 name 必须有,对应的是JavaBean的名称, property 必须有,指定的JavaBean的属性名称 value 给属性赋的值 param 上一页表单的表单元素的名字 不使用useBean的时候,也可以使用setProperty value属性和param属性不可以

17、同时出现,要么只能出现一个,或者一个也不出现。 都不出现时,只要上一页表单元素的名称和属性名称正好相同,那么可以自动给属性赋值。 还可以给property属性赋值为*,那么就会将上一页所有的与JavaBean属性名称相同的表单元素的值赋给JavaBean相对应的属性。 test.setName(tom); test.setName(request.getParameter(userName); test.setName(request.getParameter(name); 3、getProperty:获取指定JavaBean的某个属性的值并输出 name 必须有 property 必须有 如

18、果property指定的属性的值是null,会输出null 如果name指定的对象的值是null,会抛出异常 4、forward:请求转发 page: 转发到的页面地址 Model I JSP+JAVABEAN 中小型项目 Model II JSP+JAVABEAN+SERVLET 大型项目 第八章 View层开发:EL和JSTL JSP 2.0版本开始 语法:$ 表达式 点号操作符,中括号操作符 中括号操作符可以替换点号操作符,但是反之不可以 $bean.name 等价于 $beanname $beans0,$beans0 EL的隐式对象 作用域: pageScope requestScop

19、e sessionScope applicationScope 参数访问: param paramValues JSP隐式对象: pageContext $param.name $paramValues0 JSTLJSP标准标签库 非常好的支持EL,或者说没有EL,JSTL不能正常运作 标签描述文件扩展名tld 要使用必须在页面上面添加taglib指令 核心标签库 通用标签 set 获取或者创建JavaBean var 变量名 value 值 scope 作用域 remove删除JavaBean对象 var 变量名 scope 作用域 out 输出一个值 value 输出的值 条件标签 if

20、条件分支 test 布尔类型的值,当test的值是true的时候运行标签体中的代码 var 变量名 scope 作用域 迭代标签 foreach 迭代循环 var 变量名 items 集合 varStatus 循环状态变量 start 开始索引 end 结束索引 step 步长 SQL标签库 setDataSource 创建或者获取数据源 update 增删改 query 查询 param 是update和query的子标签,用于给其中的sql语句设置参数 第九章 Web服务 Web服务是为实现“基于Web无缝集成”的目标而提出的全新概念,希望通过Web服务能够实现不同的系统之间的相互调用,从

21、而实现系统集成的平台无关性、语言无关性。 Web服务是一个应用程序,它为调用者提供一个能够通过Web进行调用的API。 Web服务应用的协议:HTTP、SMTP、TCP/IP 传输的数据格式:XML 数据格式限制协议:SOAP 让调用者知道如何访问发布的Web服务,描述方法:WSDL 如何利用XFire创建Web服务 1、加入XFire的Jar包 2、在Web.xml中配置XFire 3、开发接口 4、开发实现类 5、编写services.xml 6、发布Web服务 7、调用Web服务 JUnit测试 测试类一定要继承或者间接继承TestCase类 测试方法一定要叫做testXXX 开发基于S

22、truts/Spring/Hibernate/Ajax的网上信息发布平台 第一章 框架技术概述 框架是一个提供了可重用的公共结构的半成品 框架的优点 1、不用再考虑公共问题 2、可以专心在业务逻辑上 3、结构统一,便于学习和维护 4、新手也可以写出稳健、性能优良而且结构优美的高质量程序 第二章 Struts原理 创建应用Struts的程序需要的步骤: 1、添加Struts支持 添加Struts的Jar包 在Web.xml中配置ActionServlet 在WEB-INF中添加Struts-Config.xml配置文件 2、编写业务逻辑 3、编写Struts组件 a、编写ActionForm A

23、ctionForm实际上对应的是表单,理论上有几个表单就有几个ActionForm FormBean的类一定要继承ActionForm这个类 要写与表单元素对应的属性,属性名称要与表单元素的名称一致 承担了一个将客户端传上来的数据封装起来的作用 b、编写Action 是ActionServlet的扩展 所有的ActionBean的类都要继承Action这个类 要重写Action中的execute方法 参数:ActionMapping,ActionForm,HttpServletRequest,HttpServletResponse 返回值:ActionForward c、编写JSP d、配置S

24、truts-config.xml 配置FormBean 在form-beans标签体中,配置form-bean标签 name formbean的名称 type formbean的完全限定名 配置ActionBean 在Action-Mappings标签中配置Action标签 path 代表Action的访问路径,必须以/开头 type ActionBean的完全限定名 name 与这个Action相关的FormBean的名称 scope 相关的FormBean的存入的作用域 attribute 相关的FormBean存入作用域时使用的名称 input 表明由谁来访问此Action,主要作用是当

25、出错时可以自动跳转到 该路径,也必须以/开头 在Action标签中配置Forward标签 name forward对象的名称 path forward对象对应的路径,必须以/开头 4、调试运行 Struts包括三种组件 控制器组件:ActionServlet和自定义的Action 模型组件: 业务逻辑类和数据访问类 视图组件:JSP、ActionForm和Struts标签 运行原理: 客户端发送请求到ActionServlet ActionServlet将.do去掉获得请求的名称 ActionServlet将去struts-config.xml中查找所有的Action配置中path属性是/ad

26、d的配置 然后ActionServlet取出该配置中的type属性,利用反射创建出该类对象,试图去调用其execute方法 execute方法有四个参数,要构建出来 创建ActionMapping:将刚才找到Action配置转换成为一个ActionMapping的对象,包括配置中的Forward集合 创建ActionForm:从该Action配置中找到name属性,取出其值,去所有的FormBean配置中查找name属性值相同的FormBean配置,然后取出其type属性,用反射创建该FormBean对象。根据该FormBean的属性名称去request中取表单传过来的数据,并为其属性赋值。

27、这样就可以调用ActionBean的execute方法了 execute方法返回一个ActionForward对象。 ActionServlet根据该ActionForward对象的path跳转到相应的JSP 第三章 Struts原理 DispatchAction是Action的一个子类 使用: 1、自定义Action类要继承DispatchAction 2、Action配置中要加入一个属性parameter 3、DispatchAction中不推荐实现execute方法 4、其中的方法虽然和execute方法基本一样,但是名字不能叫做execute 例如,parameter属性的值为op 在

28、客户端提出请求的时候要多传一个op参数过来,例如op=add DispatchAction得到op参数后,会根据其值自动调用相应的方法。例如op=add的话就会去调用Add方法。 在Struts中有一个资源文件,利用他可以实现国际化资源配置 struts-config.xml中配置 com.aptech.jb.Messages主资源文件 com.aptech.jb.Messages_zh_CN中国中文资源文件 com.aptech.jb.Messages_en_GB英国英文资源文件 资源文件转码我们可以利用native2ascii命令 利用ActionMessages类作为错误消息的集合 利用

29、ActionMessage类作为错误消息 利用Action类提供的saveErrors方法来存储错误集合 错误集合是存储在request中的 在JSP中利用标签来显示错误信息 如果要单独显示某一条错误信息,为该标签制定property属性 errors.header= errors.footer= error.validate.number=cuole 动态Form 配置 调用 DynaActionForm f = (DynaActionForm)form; String str = (String)f.get(xxx); 理用实体对象作为ActionForm的属性 作为属性的实体类必须得实例

30、化。 如:private User user = new User; private String name; 在页面表单上怎么写 写Formbean的属性名称加上点,再加上formbean的属性的属性名称 如: 第四章 Struts标签库 HTML form标签 Select标签-option标签 optionsCollection name 从某个作用域中取出的某个对象的名称 label 显示的属性名称 value 作为值的属性名称。 一旦用了Struts的HTML标签,这些HTML标签会在第一次访问该页面时就去查找表单对应的FormBean的属性的值。 LOGIC empty标签和not

31、Empty标签:判断某个作用域中的某个对象或其某个属性是否为null name user scope session property name equal和notEqual标签:判断某个作用域中的某个对象或其某个属性是否和特定的值相等 name user property name value tom scope session iterate标签:迭代 id user name class scope session property users BEAN write标签:输出某个作用域中的某个对象或其某个属性的值 name: user property: birthday scope:

32、session format: yyyy-MM-dd define标签:将某个作用域中的某个对象或其某个属性定义一个可以在页面中使用的变量 id: userName property: name type: org.owl.User name: user scope: session size标签:取出集合的元素个数,不具备输出功能 id: listSize name: list 属性总结: id: 新生成的变量的名称 name: 某个作用域中的某个对象的名称 property: 某个对象的某个属性名称 scope: 某个作用域 第五章 使用Hibernate完成对象持久化 持久化的概念:数据

33、在瞬时状态和持久状态之间转换的过程。 ORM的概念:对象关系映射 Hibernate是一个持久化框架,是一个优秀的ORM框架 使用Hibernate的基本步骤 三个准备 1、导入需要的Jar文件 2、准备Hibernate的配置文件 a、dialect确定使用那种数据库 b、数据库的连接信息Driver、Url、userName、password c、一些Hibernate的特殊配置show_sql d、mapping标签,resource属性:指定映射文件的位置 3、创建实体类和映射文件 a、实体类就是简单的POJO类: b、映射文件: 根元素:hibernate-mapping class

34、标签: name:实体类的完全限定名(org.owl.entity.User) table:与之对应的表名(Users) id标签: name:实体类中的属性名(id) type:类型(java.lang.Integer) column:表中的主键列的列名(UserId) generator子标签 class:native,assgined property标签: name:(name) type:(java.lang.String) column:(UserName) 七个步骤 1、Configuration Configuration conf = Configuration.config

35、ure; 2、SessionFactory SessionFactory sf conf.buildSessionFactory; 3、Session Session s = sf.openSession; 4、beginTransaction Transaction tx = s.beginTransaction; 5、save/update/delete/get s.save(obj); 6、commit mit; 7、Session.close s.close; 第六章 Hibernate的关联映射 单向的多对一 配置在多的一方 单向的一对多 配置在一的一方 双向的一对多 Clazz表

36、Student 一的一方 多的一方 实体类 Clazz Student,将外键列的属性去掉 要存储多的一方对象的集合 要存储一的一方的一个对象作为自己的属性 Set stus = new HashSet; Clazz clazz; 映射文件 Clazz.hbm.xml Student.hbm.xml 配置Set 配置many-to-one Set标签的属性 many-to-one属性: name:储存对方对象 name:存储对方对象的属性名 集合属性的名 column:外键列的名称 称 class:对方的类名 key子标签: column:外键列名 是Student表的字 段 one-to-m

37、any子标签: class:表示你存储 的对方对象类的完 全限定名(org.owl. Student) 双向的多对多 Teacher(tId,tName) new = Student(sId,sName) TS(ts_tId,ts_sId) 多的一方 多的另一方 实体类 Teacher Student 存储另一方的对象集合 存储一方的对象集合 Set stus = new HashSet; Set teas = new HashSet; 映射文件 Teacher.hbm.xml Student.hbm.xml Set标签 Set标签 name:存储另一方对象集 name:(teas) 合属性的

38、属性名 table:(TS) key子标签: table:中间表表名 column: key子标签: many-to-many子标签 column:中间表中 class: 与当前表对应的外键 column: 列列名 many-to-many子标签: class:另一方的类名 column:中间表用与另 一方表相关联的外键列 列名 select * from student where sId in( select ts_sId from Teacher,TS where tId = ts_tId and tId = 1) cascade: 级联的意思默认是none。 inverse: 反转:

39、第七章 Hibernate查询 HQL查询 Session session = super.getSession; String hql = from Student; Query query = session.createQuery(hql); List list = query.list; hql语句和SQL语句很相似,只不过表名将有实体类名代替,列名由实体类的属性名代替 所有涉及到类名和属性名的地方均大小写敏感,其他地方大小写不敏感。 如果查询所有字段,会返回一个存储实体类对象集合的List 并且Hql语句不用些Select段语句。 from Student select s from

40、 Student s 如果不是查询所有字段,会返回一个存储了对象数组的集合List 并且Hql语句需要由Select段,最好给实体类起别名例如: Select stu.stuName,stu.stuAge from Student stu 如果是上面的写法将会返回一个集合,集合中存储的元素是对象数组,这个数组有两长度,分别存储stuName和stuAge Hql还可以动态指定参数 在Hql中参数可以用?表示,也可以用:名称表示 然后利用query的setXXX来赋值,XXX是数据类型, 如果用?好站位就给索引位置,索引从0开始 如果用名称站位呢,就给出名称 String hql = from

41、Student where stuName like ?; Query q = session.createQuery(hql); q.setString(0,%a%); String hql = from Student where stuName like :name; Query q = session.createQuery(hql); q.setString(name,%a%); Query有两个方法,一般用于分页 setFirstResult(数字);开始位置的索引 setMaxResults(数字);最大取出条数 uniqueResult方法只取出一个结果。 Criteria查询

42、 Session session = super.getSession; Criteria c = session.createCriteria(Student.class); List list = c.list; c.add(Restrictions.like(stuName,a,MatchMode.ANYWHERE)); like的第一个参数是属性名称,第二个参数是比对的值,第三个参数是比对方式,ANYWHERE代表前后就有任意字符 c.add(Restrictions.ge(stuAge,10); ge的第一个参数是属性名称,第二参数是比对的值 c.addOrder(Order.asc(stuId); 排序 第八章 使用Spring容器管理对象 依赖注入 DI依赖注入 IOC控制反转 依赖:一个类方法的实现会跟据另一个类的方法实现的改变而改变,那么前一个类依赖于后一个类 所以要面向接口编程而不是面向实现编程。 编程时要依赖于抽象,而不是依赖于实现。 依赖注入:实现与使用分离。 Spring实现了依赖注入 注意:applicationContext.xml的配置 property name=address value=白

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号