“E-家园”个人网站问题描述个人网站是属于一个人在网络空间中的私有家园,可以在个人网站中书写日记,学习心得,或者是对某些流行话题的理解和讨论等。公司计划开发一个学习型个人网站系统—“E-家园”,要求:1.允许任何人查看网站内资料2.允许任何人按栏目分类查看资料3.允许任何人通过文章类型、标题和作者进行资料查询4.允许浏览站内公告5.用户登录后6.查看自己发表的资料7.进行添加通讯录内信息(访问addressBook项目中的Web服务功能)8.退出登录状态问题分析-1E-家园数据、表的设计数据库名称:ownHome使用者:数据表USERS文章资料:数据表ARTICLE文章类型:数据表TYPE问题分析-2E-家园的实体类用户类:Users.java文章类:Article.java实体类数据库表Users.javaArticle.javaUSERSARTICLE对应关系属性对应字段TYPE问题分析-3E-家园的功能查看站内文章信息搜索文章信息用户注册用户登录验证查看自己的文章信息添加联系人信息注册登录验证查看自己文章信息搜索所有文章信息添加联系人用户查看文章信息搜索文章信息分类查看信息难点分析-1JSTL+EL的使用通用标签set:定义变量和设置变量值条件标签if:条件判断迭代标签forEach:遍历集合内数据难点分析-2JNDI的配置Tomcat下的context.xml的配置工程的web.xml配置代码实现获取数据库连接对象ContextResourcename=jdbc/ownHomeauth=Containertype=javax.sql.DataSourcemaxActive=100maxIdle=30maxWait=10000username=sapassword=120010driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriverurl=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ownHome//Context数据库路径数据库驱动程序resource-refdescriptionE-BooksDataSource/descriptionres-ref-namejdbc/ownHome/res-ref-nameres-typejavax.sql.DataSource/res-typeres-authContainer/res-auth/resource-ref指定数据源名称publicstaticsynchronizedConnectiongetConnectionForJndi()throwsDBAccessException{try{Contextic=newInitialContext();DataSourcesource=(DataSource)ic.lookup(java:comp/env/jdbc/ownHome);conn=source.getConnection();}catch(Exceptione){thrownewDBAccessException(不能取得数据库连接!);}returnconn;}通过数据源获取连接对象难点分析-3数据的查询和显示Servlet获取客户端数据,并调用业务类方法业务类方法访问数据库,得到特定条件的数据集合Servlet把数据集合保存在request或session对象中JSP页面使用JSTL+EL遍历集合,显示数据难点分析-4Web服务的创建和发布添加XFire库和xfire-all-1.2.6.jar包服务接口和接口实现类的建立services.xml的配置web.xml的配置beansxmlns=指定服务名称指定服务接口指定接口实现类servletservlet-nameXFireServlet/servlet-nameservlet-classorg.codehaus.xfire.transport.http.XFireConfigurableServlet/servlet-class/servletservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/servlet/XFireServlet/*/url-pattern/servlet-mappingservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/services/*/url-pattern/servlet-mapping指定Servlet执行类指定Servlet的url难点分析-5Web服务的调用添加XFire库和xfire-all-1.2.6.jar包客户端代码实现ServiceserviceModel=newObjectServiceFactory().create(IProcessCredit.class);XFirexfire=XFireFactory.newInstance().getXFire();XFireProxyFactoryfactory=newXFireProxyFactory(xfire);StringserviceUrl==null;intserviceResponse=0;try{client=(IBookService)factory.create(serviceModel,serviceUrl);serviceResponse=client.addBookService(name);}catch(MalformedURLExceptione){}catch(Exceptione){}获得服务元数据获得服务的代理获得服务接口对象调用服务方法阶段划分-1第一阶段(10分钟)数据库、表的建立第二阶段(15分钟)工程的建立和实体类的创建第三阶段(15分钟)JNDI的配置和获取数据库连接类的方法第四阶段(40分钟)首页的建立和实现显示详细信息第五阶段(45分钟)实现注册功能阶段划分-2第六阶段(30分钟)实现登录功能第七阶段(40分钟)实现搜索功能第八阶段(10分钟)实现分类查询和退出第九阶段(20分钟)Web服务的创建和发布第十阶段(30分钟)Web服务的调用第一阶段第一阶段(10分钟)数据库、表的建立要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第一阶段抽查学员的操作结果教员给出点评第一阶段结果演示第一阶段操作的结果USER表TYPE表ARTICLE表第二阶段第二阶段(15分钟)工程的建立和实体类的创建(Users.java、Article.java)要求学员自己动手编写,教员巡视,解答学员提出的问题阶段检查针对第二阶段抽查学员的编码结果教员给出点评第二阶段标准代码演示用户类:Users.java文章类:Article.java第三阶段第三阶段(15分钟)JNDI的配置创建获取数据库连接对象的方法要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第三阶段标准代码演示数据库连接类DBConnection.java第四阶段第四阶段(40分钟)首页的创建实现显示文章详细信息要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第四阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第四阶段标准代码演示首页效果与首页相关代码index.jspSelectArticleServlet.javaArticleBo.java第五阶段第五阶段(25分钟)实现注册功能要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第五阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第五阶段标准代码演示点击“注册”后,显示register.jsp页面注册相关代码register.jspRegisterServlet.javaUserBo.java第六阶段第六阶段(20分钟)实现登录功能要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第六阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第六阶段标准代码演示登录成功后,index.jsp页面显示效果登录相关代码index.jspLoginServlet.javaUserBo.java第七阶段第七阶段(25分钟)实现搜索功能要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第七阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第七阶段标准代码演示搜索页面效果搜索相关代码index.jspSearchServlet.javaArticleBo.java选择搜索类别、录入标题关键字或作者第八阶段第八阶段(10分钟)实现分类查询和退出要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第八阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第八阶段标准代码演示分类查询页面效果分类查询相关代码index.jspSelectArticleServlet.java点击JAVA超链接第九阶段第九阶段(20分钟)Web服务的创建和发布要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第九阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第九阶段标准代码演示Web服务创建和发布的相关代码services.xmlweb.xml第十阶段第十阶段(30分钟)Web服务的调用要求学员自己动手操作,教员巡视,解答学员提出的问题阶段检查针对第十阶段抽查学员的编码结果抽查学员编写的完整代码,教员给出点评第十阶段标准代码演示添加通讯录信息的addBook.jsp页面Web服务调用的相关代码addBook.jspAddBookServlet.java总结巩固的知识点MVC设计模式为项目分层:JSTL+EL动态显示集合内数据使用JNDI配置获取数据库连接对象Web服务的创建、发布和调用Thankyou