JavaEE快速开发(成都传智播客提供).ppt
成都传智播客,成都传智播客-助你成为高薪程序员,1、2010年7月,传智播客在成都设立分中心(传智播客成都分中心),EasyJF开源创始人蔡世友老师任首席讲师,7月8日,成都传智播客JavaEE+3G就业班第一期正式开课。2、2010年9月,成都传智播客推出先就业后付款,毕业后没有从事软件开发、月薪未达指定数额,则退还全部学费的优惠政策,广受学员好评。3、2010年11月,第一期学员毕业,在仅一个月的时间里,全部学员顺利就业(工作地为成都),如愿走上软件开发工程师的岗位,月薪平均3000以上,有个别学员甚至拿到4K、K。4、2011年2月,成都传智携手CSDN推出“黑马训练营”课程,并作如下承诺:“不用花一分钱即可入学、不就业不还学费、就业不做软件开发不还学费”,让学员“就业后靠自己的能力逐步偿还学费”。,成都传智播客,JavaEE快速开发,讲师:蔡世友Email:,成都传智播客,第一章 JavaEE快速开发初体验,成都传智播客,JavaEE面临的诸多问题,JavaEE技术选择的困惑后台页面技术:JSP/JSTL/JSP Tag/Struts1 Tag/Struts2 Tag/Velocity/FreeMaker持久层技术:JDBC/JDBC Mapping/iBatis/Hibernate/JPA/Entity Bean其它技术:Luence全文检索、工作流JBPM、Spring容器及各种应用服务器。构架问题:分层太细,比较烦琐。JavaEE面临的问题可选择的太多:标准太多、框架太多、分工太细、配置太多、方案太多,难选择;界面问题:界面太丑、用户体验太差、富客户端技术JavaEE程序员牛人太多菜鸟太多,成都传智播客,EasyJWeb简介,EasyJWeb简介EasyJWeb是基于java技术,用于实现企业级Java Web应用程序快速开发框架。框架由来自国内的EasyJF开源团队维护,是一个完全由来自的中国开源爱好者开发,文档及注释全部为中文的开源框架。官方网址:http:/1.0发布;2008年5月,EasyJWeb 1.2发布;2010年6月,EasyJWeb1.3beta发布;主要开发人员:大峡(传智播客蔡世友)、stef(成都蓝源吴嘉俊)、志在逍遥、天一、船长、WilliamRam、冷雨、netgod、小星星、天意.等等,成都传智播客,开发Struts1.x+Hibernate+Spring应用,1、创建项目easyjweb主目录bineasyjweb project d:/test/ssh1-ssh-extjs、生成添删改查切换到项目d:/test/ssh1目录的bineasyjweb crud myapp.Customer、修改数据库设设置db.properties、启动应用、修改界面并添加功能,成都传智播客,开发Struts2.x+JPA+Spring应用,1、创建项目easyjweb主目录bineasyjweb project d:/test/ssh2-ssh2-extjs、生成添删改查切换到项目d:/test/ssh1目录的bineasyjweb crud myapp.Customer、修改数据库设设置db.properties、启动应用、修改界面并添加功能,成都传智播客,开发EJS的应用(普通HTML页面),1、创建项目easyjweb主目录bineasyjweb project d:/test/ejs-ejs、生成添删改查切换到项目d:/test/ssh1目录的bineasyjweb crud myapp.Customer、修改数据库设设置db.properties、启动应用、修改界面并添加功能,成都传智播客,开发EJS的应用(基于ExtJS界面),1、创建项目easyjweb主目录bineasyjweb project d:/test/ejs-ejs-extjs、生成添删改查切换到项目d:/test/ssh1目录的bineasyjweb crud myapp.Customer、修改数据库设设置db.properties、启动应用、修改界面并添加功能,成都传智播客,新手常见问题,、不能执行命令、不能连接数据库、连接主流数据库的配置、确保具有建表权限,成都传智播客,EasyJWeb框架总体结构,成都传智播客,第二章 EasyJWeb MVC,成都传智播客,EasyJWeb版本的Hello World,1、搭建项目2、引入EasyJWeb包3、开发一个Action4、EasyJWeb版登录程序,成都传智播客,EasyJWeb MVC框架的核心部件,MVC:两种,一种基于请求转发模型,Struts、Spring MVC、EasyJWeb。基于组件事件模型,JSF等。1、ActionServlet2、URL映射3、View技术4、前后台交互,成都传智播客,ActionServlet配置及Action路径映射,web.xml主控Servlet:com.easyjf.web.ActionServlet字符过滤器:com.easyjf.web.CharsetFilter自动扫描(惯例代替配置或零配置)1、web.xml中配置:defaultActionPackagesmyapp,easyjweb.demo扫描所有实现IWebAction的类,并会自动把类的首字母改为小写,把后面的Action去掉,作为映射路径。比如:HelloAction对应的映射路径为/hello.ejf2、在easyjf-web.xml中也可配置:myapp,easyjweb.demo,com.easyjf.demo,com.lanyotech.pps,成都传智播客,ActionServlet配置及Action路径映射,注解Action标签来指定一个Action,标签中的path属性指定映射路径。easyjf-web.xml文件配置,成都传智播客,WebForm详解,读取客户端传输的数据:form.get方法,获取字符串、字符串数组及文件等类型数据;form.toPo()方法,把视图中的对象封装到指定的对象中。把数据传输给视图:form.addResult(name,value),把指定value的对象以指定的名称传输给前端。addPo(object),把指定对象分解后传输到视图中。,成都传智播客,视图Page,在EasyJWeb的Action中,要求控制器返回一个Page对象,这个对象表示视图。示例:public Page doLogin(WebForm form,Module module)return module.findPage(login);/return new Page(/login.html);/return page(login);EasyJWeb默认的视图为Velocity模板引擎。位置存放在/WEB-INF/views/目录下。,成都传智播客,Velocity模板语法,显示数据:$var,$var,$!var均用于显示变量var的内容,有叹号(!)表示如果变量不存在或者为null,则什么都不显示。条件判断:#if($var)#elseif()#else#end循环:#foreach($info in$list)循环体可以用$velocityCount来获得表达式的值。#end设置变量:#set($var=1)包含文件:#include()或者#parse()宏(包含)宏定义:#macro(orderPic$type)#end使用宏:#orderPic($!field.name),成都传智播客,使用其它视图技术,在EasyJWeb中,除了支持Velocity技术以外,还支持JSP等视图技术,同时用户还可以扩展支持其它视图技术。在Page类中,通过type属性来指定的不同的视图。Page类的构造函数:public Page(String name,String url,PageType type)public Page(String name,String url,String type)PageType的类型的值如下:HTML-跳转,也就是一个HTML连接;TEMPLATE-模板引擎;FORWARD-JSP视图;ACTION-输出到另外一个Action;nullPage-无输出;STRING-动态模板视图;,成都传智播客,第三章 高级特性及EJS构架,成都传智播客,模块化编程:使用AbstractCmdAction,概念:模块化编程的思想是把相关连的功能封装到一个模块中,从而避免系统中出现过多的Action,用户的Action继承AbstractCmdAction后,即可实现模块化编程。示例:public class ClientAction extends AbstractCmdAction public Page doIndex(WebForm f,Module m)return new Page(client/index.html);public Page doList(WebForm form).return new Page(client/list.html);public Page doRemove(WebForm form).return go(list);访问上面的Action,直接使用下面的url:client.ejf?cmd=indexclient.ejf?cmd=listclient.ejf?cmd=remove,成都传智播客,惯例编程:使用AbstractPageCmdAction,概念:EasyJWeb框架中很多地方都充分考虑了惯例代替配置的原则(约定代替配置),比如针对一个action,视图文件应该在什么位置,这些都可以按一定的规则来进行。示例:public class ClientAction extends AbstractPageCmdAction public Page doIndex(WebForm f,Module m)return page(index);public Page doList(WebForm form).return page(list);public Page doRemove(WebForm form).return go(list);访问上面的Action,直接使用下面的url:client.ejf?cmd=index,并且会自动查找WEB-INF/views/client/index.html文件来作为视图client.ejf?cmd=list,会自动查找WEB-INF/views/client/list.html文件来作为视图client.ejf?cmd=remove,成都传智播客,EasyJWeb中IOC体验,使用xml文件实现依赖注入;使用Bean、Action注解标签现依赖注入Beanpublic class UserServiceImpl implements UserService public class UserAction extends AbstractPageCmdAction Injectprivate UserService service;,成都传智播客,与Spring集成,要集成Spring,直接在easyjf-web.xml中配置如下的SpringBean及EasyJWeb内部容器即可。当然,也可以直接引入com/easyjf/core/spring-container.xml文件即可。WEB-INF/classes/application.xml,成都传智播客,泛型DAO支持,EasyJWeb提供了泛型DAO实现,DAO接口只需要继承GenericDAO即可。public interface IClientDAO extends GenericDAO 对应该DAO的配置文件:com.lanyotech.pps.dao.IClientDAO com.lanyotech.pps.domain.Client,成都传智播客,POLoad详解,对于关联属性,前端只传入一个ID值,此时可以通过在属性上加一个POLoad标签,使得WebForm的toPo方法可以加载关联属性。示例:public class Employee implements IJsonObjectIdGeneratedValue(strategy=GenerationType.TABLE)private Long id;ManyToOne(fetch=FetchType.LAZY)POLoadprivate Department dept;.当在Action中调用toPo的时候,会把dept这个值转换成后台对应的持久化对象。,成都传智播客,分页引擎IPageList简介,public interface IPageList extends Serializable/得到查询结果集public List getResult();/返回总页数public int getPages();/返回查询总记录数public int getRowCount();/返回有效的当前页public int getCurrentPage();/返回下一页public int getNextPage();/返回上一页public int getPreviousPage();,成都传智播客,QueryObject简介,QueryObject类用来表示具有分页功能的查询对象。可以使用addQuery方法来添加各种查询组合条件。示例:public Page doList(WebForm form)QueryObject qo=form.toPo(QueryObject.class);String searckKey=CommUtil.null2String(form.get(searchKey);if(!.equals(searckKey)qo.addQuery(obj.sn like?or obj.name like?),new Object%+searckKey+%,%+searckKey+%);IPageList pageList=service.getProductBy(qo);form.jsonResult(pageList);return Page.JSONPage;,成都传智播客,EasyJWeb中Ajax简介,AjaxUtil,简化普通Ajax应用JSON生成器,把后台Java对象转换成JSONWeb远程脚本调用(DWR),成都传智播客,EasyJWeb中RichComponent,可以在后台轻松实现创建富客户端编程组件。public Page doGrid()ViewPort view=new ViewPort();GridPanel grid=new GridPanel(grid,数据表格,500,100);grid.setColumns(new Stringid,姓名,出生日期,email);view.add(grid);this.addComponent(view);return componentPage;public Page doTree()ViewPort view=new ViewPort();TreePanel tree=new TreePanel(tree,简单的树,200);TreeNode root=new TreeNode(root,根);root.add(new TreeNode(c1,孩子1);root.add(new TreeNode(c2,孩子2);root.getChildNodes().get(1).add(new TreeNode(c3,孙子);tree.setRoot(root);view.add(tree);this.addComponent(view);return componentPage;,成都传智播客,ExtJS框架支持,AjaxUtil,简化普通Ajax应用JSON生成器,把后台Java对象转换成JSONWeb远程脚本调用,成都传智播客,代码生成,执行代码生成easyjweb project 命令用于创建项目;easyjweb crud 命令用于创建CRUD模块;代码生成模板template简介,成都传智播客,结束语,热烈欢迎大家到成都传智播客免费领取Java学习视频光盘;热烈欢迎大家到成都传智播客教学现场免费试听Java及3G课程!热烈欢迎各软件公司到成都传智播客预定和招聘软件开发人才!,成都传智播客,成都传智播客-助你成为高薪程序员,1、2010年7月,传智播客在成都设立分中心(传智播客成都分中心),EasyJF开源创始人蔡世友老师任首席讲师,7月8日,成都传智播客JavaEE+3G就业班第一期正式开课。2、2010年9月,成都传智播客推出先就业后付款,毕业后没有从事软件开发、月薪未达指定数额,则退还全部学费的优惠政策,广受学员好评。3、2010年11月,第一期学员毕业,在仅一个月的时间里,全部学员顺利就业(工作地为成都),如愿走上软件开发工程师的岗位,月薪平均3000以上,有个别学员甚至拿到4K、K。4、2011年2月,成都传智携手CSDN推出“黑马训练营”课程,并作如下承诺:“不用花一分钱即可入学、不就业不还学费、就业不做软件开发不还学费”,让学员“就业后靠自己的能力逐步偿还学费”。,成都传智播客,2010年7月8日,传智播客成都隆重开班!,成都传智播客开班现场,成都传智播客,2010年7月8日,传智播客成都隆重开班!,张孝祥老师在成都传智上课,成都传智播客,成都传智播客教学现场!,张孝祥老师在成都传智播客上课,成都传智播客,成都传智播客教学现场!,传智播客学员正在听课,成都传智播客,成都传智播客教学现场!,成都传智主讲教师蔡世友老师在上课,成都传智播客,成都传智播客教学现场!,蔡世友老师在andorid课堂上指导学生实战,成都传智播客,成都传智播客师资团队!,成都传智播客,成都传智播客师资团队!,成都传智播客,成都传智播客观摩及出师项目展示!,成都传智播客观摩及出师项目展示!,成都传智播客,