基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——构建控制层中实现页面跳转的 Action程序类

合集下载

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——对Struts中的Action组件类进行STC单元测试

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——对Struts中的Action组件类进行STC单元测试

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——对Struts中的Action组件类进行STC单元测试1.1.1对控制层中的各个Action类进行测试1、将Strutstest所需要的*.jar包加入到本测试项目中(1)将Strutstest所需要的*.jar包strutstest-2.1.3.jar文件加入到本测试项目中,定位到我们的目标*.jar包的目录下,最后将产生出下面的状态。

(2)将J2EE Web技术中所需要的Servlet和JSP的*.jar包加入当然也可以直接使用在Tomcat中带有的servlet-api.jar和jsp-api.jar文件。

(3)再添加commons-collections.jar包文件2、添加log4J的属性配置文件和对应的Jar包文件(1)添加log4J的属性配置文件(2)添加log4j的jar包文件3、在测试的Java项目中添加一个针对UserManagerAction类的TestCase类(1)TestCase类为MockStrutsTestUserManagerAction(2)类名称为MockStrutsTestUserManagerAction,包名称为com.px1987.webbbs.actiontest,基类选择为servletunit.struts.MockStrutsTestCase,被测试的类为erManagerAction(3)然后选择被测试的方法(4)最后产生出下面的状态package com.px1987.webbbs.actiontest;import servletunit.struts.MockStrutsTestCase;public class MockStrutsTestUserManagerAction extends MockStrutsTestCase { public MockStrutsTestUserManagerAction(String arg0) {super(arg0);}protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testGoUpdateAdminInfo() {fail("尚未实现");}public void testGoUpdateUserInfo() {fail("尚未实现");}public void testGoLoginOrGetPassWord() {fail("尚未实现");}public void testGoUserLogin() {fail("尚未实现");}public void testGoGetPassWord() {fail("尚未实现");}public void testGoUserRegister() {fail("尚未实现");}}(5)编程MockStrutsTestUserManagerAction程序类中的相关方法的功能实现package com.px1987.webbbs.actiontest;import servletunit.struts.MockStrutsTestCase;import junit.framework.*;import java.io.*;public class MockStrutsTestUserManagerAction extends MockStrutsTestCase { public MockStrutsTestUserManagerAction(String arg0) {super(arg0);}protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testGoUserLogin() {// 下面的目录路径根据实际的状态,修改为对应的内容setContextDirectory(new File("D:/aaa/StrutsWebBBS+Spring/WebBBS/WebRoot"));setConfigFile("/WEB-INF/struts-config_userManage.xml");setRequestPathInfo("/userManagerAction");addRequestParameter("formType","1");addRequestParameter("login_GetPassWord_ActionType","1");addRequestParameter("type_User_Admin","1");addRequestParameter("userName","admin");addRequestParameter("userPassword","admin");actionPerform();verifyForward("showAllBBSClassInfo");verifyNoActionErrors();}}4、由于erInfoActionForm类为DynaActionForm类并且对其进行validate需要在struts-config_userManage.xml文件中添加userName和userPassWord的初始值,否则validate不能通过。

J2EE Struts框架课程设计实训项目《BBS论坛系统》——在项目中应用Hibernate中的监听器和拦截器等组件技术

J2EE Struts框架课程设计实训项目《BBS论坛系统》——在项目中应用Hibernate中的监听器和拦截器等组件技术

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——在项目中应用Hibernate中的监听器和拦截器等组件技术1.1.1应用Hibernate中的监听器(事件)1、Hibernate中的监听器(1)主要的作用该事件系统可以用来替代拦截器,也可以作为拦截器的补充来使用;而且Session接口的每个方法都有相对应的事件。

比如 LoadEvent,FlushEvent等等(可以查阅XML配置文件的DTD,以及org.hibernate.event包来获得所有已定义的事件的列表)。

因此,可以应用Hibernate中的监听器来生成审计日志,审计主要是对数据库中重要数据的更新历史进行记录。

数据库系统所提供的触发器技术也可以用于生成审计日志,但是它不支持跨数据库平台,所以一般用Hibernate中的监听器。

(2)org.hibernate.event包中所定义的各个事件类(3)事件的产生和激活当某个方法被调用时,Hibernate Session会生成一个相对应的事件并激活所有配置好的事件监听器。

系统预设的监听器实现的处理过程就是被监听的方法要做的(被监听的方法所做的其实仅仅是激活监听器,“实际”的工作是由监听器完成的)。

当然,开发者也可以自由地选择实现一个自己定制的监听器(比如,实现并注册用来处理处理LoadEvent的LoadEventListener接口),来负责处理所有的调用Session的load()方法的请求。

(4)对事件监听器的编程要求事件监听器应该被看作是单例(singleton)对象,也就是说,所有同类型的事件的处理共享同一个事件监听器实例,因此在事件监听器类中不应该保存有任何状态(也就是不应该使用成员变量)。

(5)事件监听器的编程方法1)用户定制的监听器应该实现与所要处理的事件相对应的接口,或者从一个合适的基类继承(甚至是从Hibernate自带的默认事件监听器类继承)。

J2EE Struts框架的课程设计实训项目《BBS论坛系统》——在论坛系统的表示层中应用EL和JSTL等技术的应用示例

J2EE Struts框架的课程设计实训项目《BBS论坛系统》——在论坛系统的表示层中应用EL和JSTL等技术的应用示例

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——在BBS论坛系统项目的表示层中应用EL和JSTL等技术的应用示例1.1.1在BBS论坛系统项目的表示层中应用EL技术1、EL表达式语言(1)主要的优点使用标签(Tag)和EL表达式语言的主要目的就是为了能够避免在JSP页面中出现过多的<% %>的语句,使页面与后台的Java代码相互分离。

应用表达式语言主要有以下几大好处:1)避免直接在页面中应用(MyClassType) request.getAttribute()和myEntityBean.getMyProperty()之类的脚本语句,从而能够使页面更加简洁;2)支持运算符(如+-*/),比普通的标签具有更高的应用自由度和更强的功能;3)简单明了地表达程序代码的逻辑,比直接使用脚本代码更可读与更便于维护。

(2)JSP2.0的一个主要的组件为支持EL的表达式语言因此,EL表达式语言可以直接在JSP页面中应用,而不需要引入任何其它的系统库包文件。

2、EL语言是JSTL输出(输入)一个JA V A表达式的表示形式。

在JSTL中,EL语言只能在属性值中使用;EL语言只能通过建立表达式${exp1}来进行调用。

在属性值中使用表达式有三种方式。

(1)value属性包含一个表达式<c:out value="${requestScope.errorText}" />在这种情况下,表达式值被计算出来并根据类型转换规则赋值给value属性。

上面的${requestScope.errorText}就是一个EL,它相当于JSP语句<%=request.getAttribute("errorText")%>。

(2)value属性包含一个或多个属性,这些属性被文本分割或围绕< c:out value="some${expr}${expr}text${expr}"/>在这种情况下,表达式从左到右进行计算,并将结果转换为字符串型(根据类型转换规则),并将结果赋值给value属性(3)value属性仅仅包含文本< c:out value="sometext"/>在这种情况下,字符串型属性value将根据类型转换规则转换为标签所希望的类型。

J2EE课程设计实训项目《BBS论坛系统》——重构基于Hibernate框架数据库连接方式并进行单元测试(第1部分)

J2EE课程设计实训项目《BBS论坛系统》——重构基于Hibernate框架数据库连接方式并进行单元测试(第1部分)

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——重构基于Hibernate框架的数据库连接方式并进行单元测试(第1/2部分)1.1.1Hibernate中的各种数据库连接池的支持类1、org.hibernate.connection.DriverManagerConnectionProvider(1)主要的作用DriverManagerConnectionProvider 类是Hibernate系统中内带的数据库连接池的实现类,并且DriverManagerConnectionProvider类继承了ConnectionProvider接口,主要是使用用户提供的JDBC驱动程序及与数据库有关的各种连接参数来连接数据库,或者使用连接池的方式来连接数据库。

(2)DriverManagerConnectionProvider这个类只是初始化了最基本的连接配置1)hibernate.connection.driver_class(JDBC驱动类)2)hibernate.connection.pool_size(连接池容量的上限数目)3)hibernate.connection.autocommit(允许被缓存的JDBC连接开启自动自动提交)4)hibernate.connection.isolation(设置JDBC事务隔离级别,可查看java.sql.Connection来了解各个值的具体意义,但请注意多数数据库都不支持所有的隔离级别,取值1,2,4,8)。

因此,无论你是使用JDBC还是使用连接池方式,这几个最基本的设置都是要先初始化的。

其中pool_size的默认值为20。

2、org.hibernate.connection.DatasourceConnectionProvider它通过JNDI的方式来查找数据源来获得连接。

3、org.hibernate.connection.C3P0ConnectionProvider对C3P0连接池的支持类。

J2EE Struts框架课程设计实训项目《BBS论坛系统》构建系统数据库连接组件及对应的单元测试用例(第1部分)

J2EE Struts框架课程设计实训项目《BBS论坛系统》构建系统数据库连接组件及对应的单元测试用例(第1部分)

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——构建系统数据库连接组件及对应的单元测试用例(第1/4部分)1.1.1构造基于JDBC技术实现的数据访问层中的数据库连接组件1、编程优化的原则(1)谨用异常,因此应该只用于错误处理,而不应该用于控制程序执行的方向(2)不要重复初始化变量(3)使用合适的数据类型String.intern()-----equal()(4)用final类(5)避免在for语句中使用复杂的表达式(6)try/catch应该在循环外(7)缩短session的超时时间2、依赖管理不良的依赖管理将会导致代码难以改变、易被破坏,而且不可重用。

从另一方面来说,如果依赖经过了良性的管理,代码就可以保持灵活性、健壮性和重用性。

而什么样的设计结果是可依赖管理的呢?(1)类的设计原则1)SRP,单一职责原则,一个类应该有且只有一个改变的理由。

2)OCP,开放封闭原则,你应该能够不用修改原有类就能扩展一个类的行为。

3)LSP,Liskov替换原则,派生类要与其基类自相容。

4)DIP,依赖倒置原则,依赖于抽象而不是实现-----应该让接口稳定性低的模块调用接口稳定性高的模块。

5)ISP,接口隔离原则,客户只要关注它们所需的接口。

3、添加一个属性配置文件 classNameConfig.properties(1)为什么要采用配置文件?作用是什么?----灵活地满足变化!如何对配置文件中的项目进行读写?(2)在项目中添加属性配置文件 classNameConfig.properties(3)目前的内容如下JDBC_DBDriver= com.mysql.jdbc.DriverJDBC_URL = jdbc:mysql://localhost:3306/bbsdatabasedbUserName=rootdbUserPassWord=rootdbcp_maxActive=10dbcp_maxActive=10connectDBBean.className=com.px1987.webbbs.dao.ConnectDBBean注意:也可以采用XML形式的配置文件。

《BBS论坛系统》——应用Spring框架中JDBCTemplate组件简化系统中的各个DAO组件的功能实现代码(第2部分)

《BBS论坛系统》——应用Spring框架中JDBCTemplate组件简化系统中的各个DAO组件的功能实现代码(第2部分)

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——应用Spring框架中JDBCTemplate组件简化系统中的各个DAO组件的功能实现代码(第2/2部分)1.1.1对基于Spring中JDBCTemplate组件的各个DAO实现类进行单元测试1、设计一个WebBBSSpringDAO.xml(1)新建出该文件(2)设计该文件的内容<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN""/dtd/spring-beans-2.0.dtd"><beans><bean id="bbsTitleInfoManageDAOBean"class="com.px1987.webbbs.springdao.BBSTitleInfoManageDAOSpringDAOImple"><property name="jdbcTemplate"><ref bean="jdbcTemplate"></ref></property></bean><bean id="bbsReplyInfoManageDAOBean"class="com.px1987.webbbs.springdao.BBSReplyInfoManageDAOSpringDAOImple"> <property name="jdbcTemplate"><ref bean="jdbcTemplate"></ref></property></bean><bean id="bbsInfoManageDAOBean"class="com.px1987.webbbs.springdao.BBSInfoManageDAOSpringDAOImple"><property name="jdbcTemplate"><ref bean="jdbcTemplate"></ref></property></bean><bean id="adminUserInfoManageDAOImpleBean"class="com.px1987.webbbs.springdao.AdminUserManageDAOSpringDAOImple"> <property name="jdbcTemplate"><ref bean="jdbcTemplate"></ref></property></bean><bean id="userInfoManageDAOImpleBean"class="erManageDAOSpringDAOImple"><property name="jdbcTemplate"><ref bean="jdbcTemplate"></ref></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"><ref bean="dataSourceTarget"/></property></bean><bean id="dataSourceTarget"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><property name="url"><value>jdbc:mysql://localhost:3306/bbsdatabase</value></property><property name="username"><value>root</value></property><property name="password"><value>root</value></property></bean></beans>2、为UserManageDAOSpringDAOImple类添加测试用例(1)类名称为TestUserManageDAOSpringDAOImple,包名称为com.px1987.webbbs.springdaotest(2)编程该TestUserManageDAOSpringDAOImple类package com.px1987.webbbs.springdaotest;import junit.framework.TestCase;public class TestUserManageDAOSpringDAOImple extends TestCase { protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testBatchDeleteUserInfo() {fail("Not yet implemented");}public void testDeleteOneUserInfo() {fail("Not yet implemented");}public void testDoGetMaxIDUserInfo() {fail("Not yet implemented");public void testInsertOneUserInfo() {fail("Not yet implemented");}public void testSelectAllBaseUserInfo() { fail("Not yet implemented");}public void testSelectAllRegisterUserNameInfo() { fail("Not yet implemented");}public void testSelectAllUserInfo() {fail("Not yet implemented");}public void testSelectOneUserInfo() {fail("Not yet implemented");}public void testSelectOneUserInfoByName() { fail("Not yet implemented");}public void testSelectOneUserInfoData() { fail("Not yet implemented");}public void testSelectSomeBaseUserInfo() { fail("Not yet implemented");}public void testSelectSomeUserInfo() {fail("Not yet implemented");}public void testSelectTotalRegisterUserCounter() { fail("Not yet implemented");public void testSelectUserSomePropertyInfo() {fail("Not yet implemented");}public void testUpdateOneUserInfo() {fail("Not yet implemented");}public void testUpdateOneUserPassWord() {fail("Not yet implemented");}}3、为BBSTitleInfoManageDAOSpringDAOImple类添加测试用例(1)类名称为TestBBSTitleInfoManageDAOSpringDAOImple,包名称为com.px1987.webbbs.springdaotest(2)编程该TestBBSTitleInfoManageDAOSpringDAOImple类package com.px1987.webbbs.springdaotest;import junit.framework.TestCase;public class TestBBSTitleInfoManageDAOSpringDAOImple extends TestCase { protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testDeleteOneBBSTitleInfo() {fail("Not yet implemented");}public void testGetAllBbsTitleInfos() {fail("Not yet implemented");}public void testGetBBSTitleInfoTotalCounter() {fail("Not yet implemented");}public void testGetBBSTitleInfoTotalCounterString() {fail("Not yet implemented");}public void testInsertBBSTitleInfo() {fail("Not yet implemented");}public void testSelectBBSTitleByBBSTitleID() {fail("Not yet implemented");}public void testSelectSomeBBSInfoTitle() {fail("Not yet implemented");}public void testUpdateBBTitleCounterByBbsTitleID() {fail("Not yet implemented");}}4、为BBSReplyInfoManageDAOSpringDAOImple类添加测试用例(1)类名称为TestBBSReplyInfoManageDAOSpringDAOImple,包名称为com.px1987.webbbs.springdaotest(2)编程该TestBBSReplyInfoManageDAOSpringDAOImple类package com.px1987.webbbs.springdaotest;import junit.framework.TestCase;public class TestBBSReplyInfoManageDAOSpringDAOImple extends TestCase { protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testDeleteOneBBSReplyInfo() {fail("Not yet implemented");}public void testGetAllBbsReplyInfosByOneBBS() {fail("Not yet implemented");}public void testInsertBBSReplyInfo() {fail("Not yet implemented");}public void testSelectSomeBBSReplyInfo() {fail("Not yet implemented");}public void testUpdateBBSReplyInfo() {fail("Not yet implemented");}}5、为BBSInfoManageDAOSpringDAOImple类添加测试用例(1)类名称为Test BBSInfoManageDAOSpringDAOImple,包名称为com.px1987.webbbs.springdaotest(2)编程该Test BBSInfoManageDAOSpringDAOImple类package com.px1987.webbbs.springdaotest;import junit.framework.TestCase;public class TestBBSInfoManageDAOSpringDAOImple extends TestCase { protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testDeleteOneBBSInfo() {fail("Not yet implemented");}public void testDeleteOneRoleInfo() {fail("Not yet implemented");}public void testGetBBSInfoCounterBySendTime() {fail("Not yet implemented");}public void testGetBBSInfoTotalCounter() {fail("Not yet implemented");}public void testGetBBSTotalCounterInOneBBSTitle() {fail("Not yet implemented");}public void testGetHotBBSInfoTotalCounter() {}public void testGetTotalBBSInfoCounterByUserID() { fail("Not yet implemented");}public void testInsertBBSInfo() {fail("Not yet implemented");}public void testInsertRoleInfo() {fail("Not yet implemented");}public void testPageSelectDBData() {fail("Not yet implemented");}public void testSelectBBSInfoByBBSAuthor() { fail("Not yet implemented");}public void testSelectBBSInfoByBBSHitsInt() { fail("Not yet implemented");}public void testSelectBBSInfoByBBSHitsIntInt() { fail("Not yet implemented");}public void testSelectBBSInfoByBBSHits() { fail("Not yet implemented");}public void testSelectBBSInfoByBBSID() {fail("Not yet implemented");}public void testSelectBBSInfoByBBSSendInfoTime() {}public void testSelectBBSInfoByBBSTitle() { fail("Not yet implemented");}public void testSelectBBSInfoByBBSTitleID() { fail("Not yet implemented");}public void testSelectBBSInfoByUserID() { fail("Not yet implemented");}public void testSelectPageBBSInfoByLoginUserID() { fail("Not yet implemented");}public void testSelectPageBBSInfoByTitleID() { fail("Not yet implemented");}public void testSelectPageBBSInfoByToday() { fail("Not yet implemented");}public void testSelectSomeBBSInfo() {fail("Not yet implemented");}public void testUpdateBBSInfo() {fail("Not yet implemented");}public void testUpdateBBSInfoHitsByBbsID() { fail("Not yet implemented");}public void testUpdateBBSReplyCounterByBBSID() {}}6、为AdminUserManageDAOSpringDAOImple类添加测试用例(1)类名称为Test AdminUserManageDAOSpringDAOImple,包名称为com.px1987.webbbs.springdaotest(2)编程该TestAdminUserManageDAOSpringDAOImple类package com.px1987.webbbs.springdaotest;import junit.framework.TestCase;public class TestAdminUserManageDAOSpringDAOImple extends TestCase { protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testBatchDeleteAdminUserInfo() {fail("Not yet implemented");public void testDeleteOneAdminUserInfo() { fail("Not yet implemented");}public void testInsertOneAdminUserInfo() { fail("Not yet implemented");}public void testSelectAllAdminUserInfo() { fail("Not yet implemented");}public void testSelectAllAdminUserNameInfo() { fail("Not yet implemented");}public void testSelectOneAdminUserInfo() { fail("Not yet implemented");}public void testSelectOneAdminUserInfoByName() { fail("Not yet implemented");}public void testSelectOneAdminUserInfoData() { fail("Not yet implemented");}public void testSelectSomeAdminUserInfo() { fail("Not yet implemented");}public void testUpdateOneAdminUserInfo() { fail("Not yet implemented");}public void testUpdateOneAdminUserPassWord() { fail("Not yet implemented");}1.1.2采用测试套件来集成各个测试用例1、添加DAO的测试套件名称为AllSpringDAOTest将产生出下面的代码package com.px1987.webbbs.springdaotest;import junit.framework.Test;import junit.framework.TestSuite;public class AllSpringDAOTest {public static Test suite() {TestSuite suite = new TestSuite("Test for com.px1987.webbbs.springdaotest");//$JUnit-BEGIN$suite.addTestSuite(TestBBSTitleInfoManageDAOSpringDAOImple.class);suite.addTestSuite(TestBBSInfoManageDAOSpringDAOImple.class);suite.addTestSuite(TestAdminUserManageDAOSpringDAOImple.class);suite.addTestSuite(TestBBSReplyInfoManageDAOSpringDAOImple.class);suite.addTestSuite(TestUserManageDAOSpringDAOImple.class);//$JUnit-END$return suite;}}将系统中的各个DAO组件有关的测试用例包装起来!2、以套件的方式执行杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料杨教授大学堂,版权所有,盗版必究。

J2EE课程设计实训项目《BBS论坛系统》——针对项目中系统管理员信息的数据访问组件及单元测试(第2部分)

J2EE课程设计实训项目《BBS论坛系统》——针对项目中系统管理员信息的数据访问组件及单元测试(第2部分)

基于J2EE Struts框架的课程设计实训项目——《BBS论坛系统》——针对系统后台管理员信息的数据访问组件及对应的单元测试(第2/2部分)1.1.1对AdminUserManageDAOJDBCImple类进行单元测试1、添加测试用例(1)添加测试用例(2)设置类名称为TestAdminUserManageDAOJDBCImple、包名称为com.px1987.webbbs.daotest,并对com.px1987.webbbs.dao.AdminUserManageDAOJDBCImple类进行测试(3)选择各个被测试的方法2、编程该测试用例package com.px1987.webbbs.daotest;import junit.framework.TestCase;import com.px1987.webbbs.config.ClassNameConfig;import com.px1987.webbbs.dao.*;import com.px1987.webbbs.exception.*;import com.px1987.webbbs.util.AdminUserManageDAOFactory; import java.util.*;public class TestAdminUserManageDAOJDBCImple extends TestCase { private AdminUserManageDAOInterface adminUserManageDAOJDBCImple = null;String adminManageDAOJDBCImpleClassName=null;protected void setUp() throws Exception{super.setUp();adminManageDAOJDBCImpleClassName=ClassNameConfig.getProperty("adminManageDAOJDBCImple.className");adminUserManageDAOJDBCImple=new AdminUserManageDAOFactory().newAdminManageDAOBean(adminManageDAOJDBCImpleClassName);}protected void tearDown() throws Exception{adminUserManageDAOJDBCImple = null;super.tearDown();}public void testSelectOneAdminUserInfoData() throws WebBBSException{ String userName="admin";String userPassWord="admin";AdminUserInfoPO returnOneAdminUserInfoPO=adminUserManageDAOJDBCImple.selectOneAdminUserInfoData(userName,userPassWord);//由于所给定的ID是数据库表中存在的一个用户,因此能够返回该对象this.assertNotNull(returnOneAdminUserInfoPO);}public void testSelectAllAdminUserInfo() throws WebBBSException{ ArrayList allAdminUserInfos=adminUserManageDAOJDBCImple.selectAllAdminUserInfo();this.assertNotNull(allAdminUserInfos);Iterator allItem=allAdminUserInfos.iterator();while(allItem.hasNext()){AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allItem.next();this.assertNotNull(oneAdminUserInfoPO);String adminUserName=oneAdminUserInfoPO.getUserName();this.assertNotNull(adminUserName);}}public void testSelectAllAdminUserNameInfo() throws WebBBSException{ String userName="adm";ArrayList returnAllAdminUserNameInfos=adminUserManageDAOJDBCImple.selectAllAdminUserNameInfo(userName);this.assertNotNull(returnAllAdminUserNameInfos);Iterator allAdminNameItem=returnAllAdminUserNameInfos.iterator();while(allAdminNameItem.hasNext()){String oneAdminUserName=(String)allAdminNameItem.next();this.assertNotNull(oneAdminUserName);}}public void testSelectOneAdminUserInfo() throws WebBBSException{ //应该根据数据库表中的实际数据来决定String adminUserID="402880681071d7ed011071d7f20d0001";AdminUserInfoPO returnOneAdminUserInfoPO=adminUserManageDAOJDBCImple.selectOneAdminUserInfo(adminUserID);//由于所给定的ID是数据库表中存在的一个用户,因此能够返回该对象assertNotNull(returnOneAdminUserInfoPO);}public void testSelectOneAdminUserInfoByName() throws WebBBSException{ String userName="admin"; //应该根据数据库表中的实际数据来决定AdminUserInfoPO returnOneAdminUserInfoPO=adminUserManageDAOJDBCImple.selectOneAdminUserInfoByName(userName);//由于所给定的userName是数据库表中存在的一个用户,因此能够返回该对象assertNotNull(returnOneAdminUserInfoPO);}public void testSelectSomeAdminUserInfo() throws WebBBSException{ String HQLQuery="select * from AdminUserInfo";ArrayList allAdminUserInfos=adminUserManageDAOJDBCImple.selectSomeAdminUserInfo(HQLQuery);assertNotNull(allAdminUserInfos);Iterator allIAdminUserInfoPOItem=allAdminUserInfos.iterator();while(allIAdminUserInfoPOItem.hasNext()){AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allIAdminUserInfoPOItem.next();assertNotNull(oneAdminUserInfoPO);String adminUserName=oneAdminUserInfoPO.getUserName();assertNotNull(adminUserName);}}/*public void testBatchDeleteAdminUserInfo() throws WebBBSException{ ArrayList deletedUserIDs=new ArrayList();String userIDOne="-226769039"; //应该根据数据库表中的实际数据来决定String userIDTwo="-212445867";String userIDThree="-212415571";deletedUserIDs.add(userIDOne);deletedUserIDs.add(userIDTwo);deletedUserIDs.add(userIDThree);boolean returnBoolean=adminUserManageDAOJDBCImple.batchDeleteAdminUserInfo(deletedUserIDs);this.assertTrue(returnBoolean);}public void testDeleteOneAdminUserInfo() throws WebBBSException{/**该方法应该只执行一次,下面的adminUserID 应该根据数据库表中的实际数据来决定*/String adminUserID="ff80808113c78be70113c78bea720001";boolean returnBoolean=adminUserManageDAOJDBCImple.deleteOneAdminUserInfo(adminUserID);this.assertTrue(returnBoolean);}public void testInsertOneAdminUserInfo() throws WebBBSException{ AdminUserInfoPO oneAdminUserInfoPO=new AdminUserInfoPO();Date nowDate=new Date();//不需要设置该值,可以由Hibernate自动来实现添加oneAdminUserInfoPO.setId(new Integer((int)nowDate.getTime()).toString());oneAdminUserInfoPO.setUserName("张三");oneAdminUserInfoPO.setUserPassWord("1234");oneAdminUserInfoPO.setUserType(1);oneAdminUserInfoPO.setAliaoName("网上张飞");oneAdminUserInfoPO.setPassWordAsk("Who Are You?");oneAdminUserInfoPO.setUserImage("../webResource/PersonImage/Chang.gif");oneAdminUserInfoPO.setRegisterTime(new java.util.Date().toLocaleString());oneAdminUserInfoPO.setPassWordAnswer("zhang");oneAdminUserInfoPO.setUserMail("trainict@");oneAdminUserInfoPO.setUserSex(1);oneAdminUserInfoPO.setUserBirthDay("2007-01-25");oneAdminUserInfoPO.setUserComeFrom("北京");oneAdminUserInfoPO.setUserResume("我是网络飞人");oneAdminUserInfoPO.setWorkUnit("中科院计算所");oneAdminUserInfoPO.setStudyHistory("大学毕业");oneAdminUserInfoPO.setStudySchool("XXX大学");oneAdminUserInfoPO.setIdCardNo("12345678901234567");boolean actualReturn=adminUserManageDAOJDBCImple.insertOneAdminUserInfo(oneAdminUserInfoPO);this.assertTrue(actualReturn);}public void testUpdateOneAdminUserInfo() throws WebBBSException{ //应该根据数据库表中的实际数据来决定String adminUserID="ff80808110d7c5a00110d7c5a6640002";AdminUserInfoPO oneAdminUserInfoPO=new AdminUserInfoPO();//不需要设置该值,可以由Hibernate自动来实现添加oneAdminUserInfoPO.setId(adminUserID);oneAdminUserInfoPO.setUserName("张三");//本测试项目改变为此数据项目oneAdminUserInfoPO.setUserPassWord("12345678");oneAdminUserInfoPO.setUserType(1);oneAdminUserInfoPO.setAliaoName("网上张飞");oneAdminUserInfoPO.setPassWordAsk("Who Are You?"); oneAdminUserInfoPO.setUserImage("../webResource/PersonImage/Chang.gif");oneAdminUserInfoPO.setRegisterTime(new Date().toLocaleString());oneAdminUserInfoPO.setPassWordAnswer("zhang");oneAdminUserInfoPO.setUserMail("trainict@");oneAdminUserInfoPO.setUserSex(1);oneAdminUserInfoPO.setUserBirthDay("2007-01-25");oneAdminUserInfoPO.setUserComeFrom("北京");oneAdminUserInfoPO.setUserResume("我是网络飞人");oneAdminUserInfoPO.setWorkUnit("中科院计算所");oneAdminUserInfoPO.setStudyHistory("大学毕业");oneAdminUserInfoPO.setStudySchool("XXX大学");oneAdminUserInfoPO.setIdCardNo("12345678901234567");boolean actualReturn=adminUserManageDAOJDBCImple.updateOneAdminUserInfo(oneAdminUserInfoPO);this.assertTrue(actualReturn);}public void testUpdateOneAdminUserPassWord() throws WebBBSException{ String newPassWord="1234";//应该根据数据库表中的实际的数据值来决定String registerUserId="ff80808110d7c5a00110d7c5a6640002";boolean actualReturn=adminUserManageDAOJDBCImple.updateOneAdminUserPassWord(newPassWord, registerUserId);this.assertTrue(actualReturn);}*/}3、执行该测试用例(1)在classNameConfig.properties文件中添加下面的属性adminManageDAOJDBCImple.className=com.px1987.webbbs.dao.AdminUserManageDAOJDBCImple(2)启动测试用例(3)产生出下面的执行结果。

J2EE Web组件技术的课程设计实训项目《BBS论坛系统》——构建系统业务层中的用户信息管理的业务功能组件

J2EE Web组件技术的课程设计实训项目《BBS论坛系统》——构建系统业务层中的用户信息管理的业务功能组件

基于J2EE Web组件技术的课程设计实训项目——《BBS论坛系统》——构建系统业务层中的用户信息管理的业务功能组件1.1.1实现系统业务层与用户信息管理相关的各个业务功能组件1、业务实体UserInfoBaseVO(1)业务实体UserInfoBaseVO,包名称为com.px1987.webbbs.model,并且实现java.io.Serializable接口(2)添加下面的属性private String userName;private String userPassWord;private Integer userType;private String aliaoName;private String passWordAsk;private String userImage;private String passWordAnswer;private String userMail;private String registerTime;private int userID;private String userResume;private Integer type_User_Admin; //该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)(3)并为它们提供get/set方法(4)最后为下面的内容package com.px1987.webbbs.model;import java.io.Serializable;public class UserInfoBaseVO implements Serializable {private String userName;private String userPassWord;private Integer userType;private String aliaoName;private String passWordAsk;private String userImage;private String passWordAnswer;private String userMail;private String registerTime;private int userID;private String userResume;//该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)private Integer type_User_Admin;public UserInfoBaseVO() {}public String getAliaoName() {return aliaoName;}public void setAliaoName(String aliaoName) {this.aliaoName = aliaoName;}public String getPassWordAnswer() {return passWordAnswer;}public void setPassWordAnswer(String passWordAnswer) { this.passWordAnswer = passWordAnswer;}public String getPassWordAsk() {return passWordAsk;}public void setPassWordAsk(String passWordAsk) {this.passWordAsk = passWordAsk;}public String getRegisterTime() {return registerTime;}public void setRegisterTime(String registerTime) { this.registerTime = registerTime;}public Integer getType_User_Admin() {return type_User_Admin;}public void setType_User_Admin(Integer type_User_Admin) { this.type_User_Admin = type_User_Admin;}public int getUserID() {return userID;}public void setUserID(int userID) {erID = userID;}public String getUserImage() {return userImage;}public void setUserImage(String userImage) {erImage = userImage;}public String getUserMail() {return userMail;}public void setUserMail(String userMail) {erMail = userMail;}public String getUserName() {return userName;}public void setUserName(String userName) {erName = userName;}public String getUserPassWord() {return userPassWord;}public void setUserPassWord(String userPassWord) {erPassWord = userPassWord;}public String getUserResume() {return userResume;}public void setUserResume(String userResume) {erResume = userResume;}public Integer getUserType() {return userType;}public void setUserType(Integer userType) {erType = userType;}}2、业务实体UserInfoBaseVO 的子类UserInfoVO(1)业务实体UserInfoVO,包名称为com.px1987.webbbs.model,并且继承UserInfoBaseVO 类,同时也实现java.io.Serializable接口(2)添加下面的属性//下面的属性来自于UserInfoBasePO类private int userSex;private String userBirthDay;private String userComeFrom;// 下面的属性来自于UserInfoPO类private Map contactMethod = new HashMap(); // 下面的属性主要是对注册用户的联系方式进行分离private String userICQCode;private String userMSNCode;private String userQQCode;private String userSign;private int emailVisible;private int acceptAdvise;// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;private int type_User_Admin; //该成员主要是区分用户的类型-----注册用户(=1)还是管理员(=2)// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;(3)并为它们提供get/set方法(4)最后为下面的状态内容package com.px1987.webbbs.model;import java.io.Serializable;import java.util.*;public class UserInfoVO extends UserInfoBaseVO implements Serializable { //下面的属性来自于UserInfoBasePO类private int userSex;private String userBirthDay;private String userComeFrom;// 下面的属性来自于UserInfoPO类private Map contactMethod = new HashMap();// 下面的属性主要是对注册用户的联系方式进行分离private String userICQCode;private String userMSNCode;private String userQQCode;private String userSign;private int emailVisible;private int acceptAdvise;// 下面的属性来自于AdminUserInfoPO类private String workUnit;private String studyHistory;private String studySchool;private String idCardNo;public UserInfoVO(){super();userSex=1;userBirthDay="";userComeFrom="";userSign="";emailVisible=1;acceptAdvise=1;userICQCode="";userMSNCode="";userQQCode="";workUnit="";studyHistory="";studySchool="";idCardNo="";}public int getAcceptAdvise() {return acceptAdvise;}public void setAcceptAdvise(int acceptAdvise) { this.acceptAdvise = acceptAdvise;}public Map getContactMethod() {return contactMethod;}public void setContactMethod(Map contactMethod) { this.contactMethod = contactMethod;}public int getEmailVisible() {return emailVisible;}public void setEmailVisible(int emailVisible) { this.emailVisible = emailVisible;}public String getIdCardNo() {return idCardNo;}public void setIdCardNo(String idCardNo) { this.idCardNo = idCardNo;}public String getStudyHistory() {return studyHistory;}public void setStudyHistory(String studyHistory) { this.studyHistory = studyHistory;}public String getStudySchool() {return studySchool;}public void setStudySchool(String studySchool) { this.studySchool = studySchool;}public String getUserBirthDay() {return userBirthDay;}public void setUserBirthDay(String userBirthDay) { erBirthDay = userBirthDay;}public String getUserComeFrom() {return userComeFrom;}public void setUserComeFrom(String userComeFrom) { erComeFrom = userComeFrom;}public String getUserICQCode() {return (String)contactMethod.get("userICQCode");}/** 下面的各个方法为“帮助方法”*/public void setUserICQCode(String userICQCode) {contactMethod.put("userICQCode", userICQCode);}public String getUserMSNCode() {return (String)contactMethod.get("userMSNCode");}public void setUserMSNCode(String userMSNCode) {contactMethod.put("userMSNCode", userMSNCode);}public String getUserQQCode() {return (String)contactMethod.get("userQQCode");}public void setUserQQCode(String userQQCode) {contactMethod.put("userQQCode", userQQCode);}public void addOneContactMethod(String oneContactMethodKey,String oneContactMethodValue) { //该方法为“帮助方法”contactMethod.put(oneContactMethodKey,oneContactMethodValue);}public String getOneContactMethod(String oneContactMethodKey){return (String)contactMethod.get(oneContactMethodKey);}public int getUserSex() {return userSex;}public void setUserSex(int userSex) {erSex = userSex;}public String getUserSign() {return userSign;}public void setUserSign(String userSign) {erSign = userSign;}public String getWorkUnit() {return workUnit;}public void setWorkUnit(String workUnit) {this.workUnit = workUnit;}}2、添加与用户信息处理相关的业务接口(1)接口UserInfoManageInterface,包名称为com.px1987.webbbs.model(2)设计该接口中的内容package com.px1987.webbbs.model;import com.px1987.webbbs.exception.*;import java.util.*;public interface UserInfoManageInterface{public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws WebBBSException;public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException;public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws WebBBSException;public boolean doCheckUserNameExist(String userName,Integer type_User_Admin) throws WebBBSException;public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws WebBBSException;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public UserInfoVO doGetOneAdminUserInfo(String adminUserID) throws WebBBSException;public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public UserInfoBaseVO doGetOneUserInfo(String userName,String userPassWord, Integer type_User_Admin) throws WebBBSException;public ArrayList doGetAllUserNameInfo(String userName) throws WebBBSException;public boolean doDeleteOneRegisterUserInfo(String registerUserID) throws WebBBSException;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException;public boolean doDeleteOneAdminUserInfo(String adminUserID) throws WebBBSException;public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException;public ArrayList doGetAllRegisterUserInfo() throws WebBBSException;public ArrayList doGetSomeRegisterUserInfo(Map registerUserInfos) throws WebBBSException;public ArrayList doGetAllAdminUserInfo() throws WebBBSException;public ArrayList doGetSomeAdminUserInfo(Map adminUserInfos) throws WebBBSException;}3、添加接口UserInfoManageInterface的实现类(1)接口UserInfoManageInterface的实现类UserInfoManageImple,包名称为com.px1987.webbbs.model(2)编程该业务组件类package com.px1987.webbbs.model;import java.util.*;import com.px1987.webbbs.exception.WebBBSException;import erInfoPO;import com.px1987.webbbs.dao.AdminUserInfoPO;import erManageDAOInterface;import erManageDAOJDBCImple;public class UserInfoManageImple implements UserInfoManageInterface { UserManageDAOInterface oneUserManageDAOJDBCImple=null;public void setOneUserManageDAOJDBCImple(UserManageDAOInterface oneUserManageDAOJDBCImple) {this.oneUserManageDAOJDBCImple = oneUserManageDAOJDBCImple;}public UserInfoManageImple() {}public boolean doCheckUserNameExist(String userName, Integer type_User_Admin) throws WebBBSException {return false;}public boolean doDeleteOneAdminUserInfo(String adminUserID)throws WebBBSException {return false;}public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {return false;}public boolean doDeleteOneRegisterUserInfo(String registerUserID)throws WebBBSException {return false;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {return false;}public ArrayList doGetAllAdminUserInfo() throws WebBBSException { return null;}public ArrayList doGetAllRegisterUserInfo() throws WebBBSException { return null;}public ArrayList doGetAllUserNameInfo(String userName)throws WebBBSException {return null;}public UserInfoVO doGetOneAdminUserInfo(String adminUserID)throws WebBBSException {return null;}public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {return null;}public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws WebBBSException {return null;}public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws WebBBSException {return null;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {return null;}public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws WebBBSException {return null;}public UserInfoVO doGetMaxIDUserInfo() throws WebBBSException{// UserManageDAOInterface oneUserManageDAOJDBCImple=null;UserInfoVO oneUserInfoVO=null;UserInfoPO oneUserInfoPO=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();oneUserInfoPO=oneUserManageDAOJDBCImple.selectMaxIDUserInfo();oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());return oneUserInfoVO;}public UserInfoVO doGetOneUserInfo(String userName, String userPassWord, Integer type_User_Admin) throws WebBBSException {// UserManageDAOInterface oneUserManageDAOJDBCImple=null;UserInfoVO oneUserInfoVO=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();oneUserInfoVO=new UserInfoVO();switch(type_User_Admin.intValue()){case 1:UserInfoPO oneUserInfoPO=oneUserManageDAOJDBCImple.SelectOneUserInfoData(userName, userPassWord);oneUserInfoVO.setUserName(oneUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneUserInfoPO.getId());oneUserInfoVO.setUserResume(oneUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(1));oneUserInfoVO.setUserSex(oneUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneUserInfoPO.getUserComeFrom());oneUserInfoVO.setContactMethod(oneUserInfoPO.getContactMethod());oneUserInfoVO.setUserSign(oneUserInfoPO.getUserSign());oneUserInfoVO.setEmailVisible(oneUserInfoPO.getEmailVisible());oneUserInfoVO.setAcceptAdvise(oneUserInfoPO.getAcceptAdvise());break;case 2:AdminUserInfoPO oneAdminUserInfoPO= oneUserManageDAOJDBCImple.SelectOneAdminUserInfoData(userName, userPassWord);oneUserInfoVO.setUserName(oneAdminUserInfoPO.getUserName());oneUserInfoVO.setUserPassWord(oneAdminUserInfoPO.getUserPassWord());oneUserInfoVO.setUserType(oneAdminUserInfoPO.getUserType());oneUserInfoVO.setAliaoName(oneAdminUserInfoPO.getAliaoName());oneUserInfoVO.setPassWordAsk(oneAdminUserInfoPO.getPassWordAsk());oneUserInfoVO.setUserImage(oneAdminUserInfoPO.getUserImage());oneUserInfoVO.setPassWordAnswer(oneAdminUserInfoPO.getPassWordAnswer());oneUserInfoVO.setUserMail(oneAdminUserInfoPO.getUserMail());oneUserInfoVO.setRegisterTime(oneAdminUserInfoPO.getRegisterTime());oneUserInfoVO.setUserID(oneAdminUserInfoPO.getId());oneUserInfoVO.setUserResume(oneAdminUserInfoPO.getUserResume());oneUserInfoVO.setType_User_Admin(new Integer(2));oneUserInfoVO.setUserSex(oneAdminUserInfoPO.getUserSex());oneUserInfoVO.setUserBirthDay(oneAdminUserInfoPO.getUserBirthDay());oneUserInfoVO.setUserComeFrom(oneAdminUserInfoPO.getUserComeFrom());oneUserInfoVO.setWorkUnit(oneAdminUserInfoPO.getWorkUnit());oneUserInfoVO.setStudyHistory(oneAdminUserInfoPO.getStudyHistory());oneUserInfoVO.setStudySchool(oneAdminUserInfoPO.getStudySchool());oneUserInfoVO.setIdCardNo(oneAdminUserInfoPO.getIdCardNo());break;}return oneUserInfoVO;}public ArrayList doGetSomeAdminUserInfo(Map adminUserInfos)throws WebBBSException {return null;}public ArrayList doGetSomeRegisterUserInfo(Map registerUserInfos) throws WebBBSException {return null;}public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO, String newPassWord) throws WebBBSException {return false;}public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO, String newPassWord) throws WebBBSException {return false;}public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws WebBBSException{// UserManageDAOInterface oneUserManageDAOJDBCImple=null;boolean okOrNot=false;UserInfoPO oneUserInfoPO=null;AdminUserInfoPO oneAdminUserInfoPO=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();switch(oneUserInfoVO.getType_User_Admin().intValue()){case 1: //目前是前台用户在进行修改吗oneUserInfoPO=new UserInfoPO();oneUserInfoPO.setId(oneUserInfoVO.getUserID());oneUserInfoPO.setUserName(oneUserInfoVO.getUserName());oneUserInfoPO.setUserPassWord(oneUserInfoVO.getUserPassWord());oneUserInfoPO.setUserType(oneUserInfoVO.getUserType());oneUserInfoPO.setAliaoName(oneUserInfoVO.getAliaoName());oneUserInfoPO.setPassWordAsk(oneUserInfoVO.getPassWordAsk());oneUserInfoPO.setUserImage(oneUserInfoVO.getUserImage());oneUserInfoPO.setRegisterTime(oneUserInfoVO.getRegisterTime());oneUserInfoPO.setPassWordAnswer(oneUserInfoVO.getPassWordAnswer());oneUserInfoPO.setUserMail(oneUserInfoVO.getUserMail());oneUserInfoPO.setUserSex(oneUserInfoVO.getUserSex());oneUserInfoPO.setUserBirthDay(oneUserInfoVO.getUserBirthDay());oneUserInfoPO.setUserComeFrom(oneUserInfoVO.getUserComeFrom());oneUserInfoPO.setUserResume(oneUserInfoVO.getUserResume());oneUserInfoPO.setUserSign(oneUserInfoVO.getUserSign());oneUserInfoPO.setEmailVisible(oneUserInfoVO.getEmailVisible());oneUserInfoPO.setAcceptAdvise(oneUserInfoVO.getAcceptAdvise());oneUserInfoPO.setContactMethod(oneUserInfoVO.getContactMethod());okOrNot=oneUserManageDAOJDBCImple.updateOneUserInfo(oneUserInfoPO);break;case 2: //目前是后台某种形式的管理员在进行修改吗break;}return okOrNot;}public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws WebBBSException{ String userName=oneUserInfoVO.getUserName();String userPassWord=oneUserInfoVO.getUserPassWord();int type_User_Admin=oneUserInfoVO.getType_User_Admin().intValue();boolean okOrNot=false;// UserManageDAOInterface oneUserManageDAOJDBCImple=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();switch(type_User_Admin){case 1: //目前是前台用户在进行登录UserInfoPO oneUserInfoPO=oneUserManageDAOJDBCImple.SelectOneUserInfoData(userName, userPassWord);if(oneUserInfoPO==null) {okOrNot=false;}else{okOrNot=true;}break;case 2: //目前是后台某种形式的管理员在进行登录AdminUserInfoPO oneAdminUserInfoPO= oneUserManageDAOJDBCImple.SelectOneAdminUserInfoData(userName, userPassWord);if(oneAdminUserInfoPO==null) {okOrNot=false;}else{okOrNot=true;}break;}return okOrNot;}public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws WebBBSException {boolean okOrNot=false;UserInfoPO oneUserInfoPO=null;AdminUserInfoPO oneAdminUserInfoPO=null;// UserManageDAOInterface oneUserManageDAOJDBCImple=null;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();int type_User_Admin=oneUserInfoVO.getType_User_Admin().intValue();switch(type_User_Admin){case 1: //目前是前台用户在进行注册oneUserInfoPO=new UserInfoPO();int userID=(int)new Date().getTime();oneUserInfoPO.setId(userID);oneUserInfoPO.setUserName(oneUserInfoVO.getUserName());oneUserInfoPO.setUserPassWord(oneUserInfoVO.getUserPassWord());oneUserInfoPO.setUserType(oneUserInfoVO.getUserType());oneUserInfoPO.setAliaoName(oneUserInfoVO.getAliaoName());oneUserInfoPO.setPassWordAsk(oneUserInfoVO.getPassWordAsk());oneUserInfoPO.setUserImage(oneUserInfoVO.getUserImage());oneUserInfoPO.setRegisterTime(oneUserInfoVO.getRegisterTime());oneUserInfoPO.setPassWordAnswer(oneUserInfoVO.getPassWordAnswer());oneUserInfoPO.setUserMail(oneUserInfoVO.getUserMail());oneUserInfoPO.setUserSex(oneUserInfoVO.getUserSex());oneUserInfoPO.setUserBirthDay(oneUserInfoVO.getUserBirthDay());oneUserInfoPO.setUserComeFrom(oneUserInfoVO.getUserComeFrom());oneUserInfoPO.setUserResume(oneUserInfoVO.getUserResume());oneUserInfoPO.setUserSign(oneUserInfoVO.getUserSign());oneUserInfoPO.setEmailVisible(oneUserInfoVO.getEmailVisible());oneUserInfoPO.setAcceptAdvise(oneUserInfoVO.getAcceptAdvise());oneUserInfoPO.setContactMethod(oneUserInfoVO.getContactMethod());okOrNot=oneUserManageDAOJDBCImple.insertOneUserInfo(oneUserInfoPO);break;case 2: //目前是后台某种形式的管理员在进行注册oneAdminUserInfoPO=new AdminUserInfoPO();okOrNot=oneUserManageDAOJDBCImple.insertOneAdminUserInfo(oneAdminUserInfoPO);break;}return okOrNot;}public int doGetTotalRegisterUserCounter() throws WebBBSException{// UserManageDAOInterface oneUserManageDAOJDBCImple=null;int totalRegisterUserCounter=0;// oneUserManageDAOJDBCImple=new UserManageDAOJDBCImple();totalRegisterUserCounter=oneUserManageDAOJDBCImple.selectTotalRegisterUserCounter();return totalRegisterUserCounter;}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<forward name="showUpdateAdminUserInfo" path="goShowUpdateAdminUserInfo" /> <forward name="showOnLineUserInfo" path="goShowOnLineUserInfo" /> <forward name="doGetUserPassWord" path="goGetUserPassWord" /> <forward name="doSendBBSInfo" path="goSendBBSInfo" /> <forward name="doReplyBBSInfo" path="goReplyBBSInfo" /> <forward name="showAllHotBBSInfo" path="goShowAllHotBBSInfo" /> <forward name="showAllBBSInClass" path="goShowAllBBSInClass" /> <forward name="showOneBBSInfo" path="goShowOneBBSInfo" />
<forward name="showLoginUserAllBBSInfo" path="goShowLoginUserAllBBSInfo" /> <forward name="showAllBBSInfoByReplyUserInfo"
path="goShowAllBBSInfoByReplyUserInfo" /> <forward name="showNewBBSInfo" path="goShowNewBBSInfo" /> <forward name="showPrevelInfo" path="goShowPrevelInfo" /> <forward name="showTitleLeaderInfo" path="goShowTitleLeaderInfo" /> </action> 2、编程该 Action 类
<action parameter="action" path="/pageForwordAction" type="com.px1987.webbbs.action.PageForwordAction" > <forward name="showRegisterForm" path="goShowRegisterForm" /> <!-- 直接
(2)并在 parameter 中输入 action
杨教授大学堂,版权所有,版必究。
1/29 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(3)并为它添加各个 Forward 目标
(4)也就是下面的状态
杨教授大学堂,版权所有,盗版必究。
2/29 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
基于 J2EE Struts 框架的课程设计实训项目——《BBS 论坛系统》—— 构建控制层中实现页面跳转的 Action 程序类
1.1.1 页面跳转的 Action 程序类 PageForwordAction 1、添加一个实现页面跳转的 Action 类 PageForwordAction (1)新建一个 Action 类
杨教授大学堂,版权所有,盗版必究。 3/29 页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
package com.px1987.webbbs.action; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.apache.struts.validator.DynaValidatorForm; import com.px1987.webbbs.constant.WebBankAllConstants; import com.px1987.webbbs.exception.WebBBSException; import com.px1987.webbbs.model.BBSInfoManageInterface; import com.px1987.webbbs.model.BBSInfoVO; import com.px1987.webbbs.model.BBSTitleVO; import erInfoManageInterface; import erInfoVO; public class PageForwordAction extends DispatchAction {
1) Path 为/pageForwordAction 2) 基类:org.apache.struts.actions.DispatchAction 3) 类型:com.px1987.webbbs.action.PageForwordAction 4) /WebBBS/WebRoot/WEB-INF/struts-config_pageForward.xml
采用 Tiles 中的定义名称作为 path 的目标 --> <forward name="showWebAppError" path="goShowWebAppError" /> <forward name="doSystemManage" path="goSystemManage" /> <forward name="showAllBBSClassInfo" path="goShowAllBBSClassInfo" /> <forward name="showIndexContent" path="goWebBBSIndex" /> <forward name="showUpdateUserInfo" path="goShowUpdateUserInfo" />
相关文档
最新文档