JavaWeb项目开发(三):SSH框架

使用SSH框架,完成“用户管理”模块的信息列表展示功能。

1、Struts配置

SSH的所有jar包下载链接: https://pan.baidu.com/s/1c1Rtenu 密码: 4ft6

引入Struts 必须的jar包,放到WEB-INF/lib目录下。如下图所示:


修改WEB-INF下的web.xml文件,增加struts2的配置


  
StrutsPrepareAndExecuteFilter
 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
     StrutsPrepareAndExecuteFilter
     *.action
  
  
  
     StrutsPrepareAndExecuteFilter
     *.jsp
  

添加struts配置文件,新建Struts.xml,并在文件中启动动态方法访问,并且定义包,具体内容如下:


   
   
   
   
   
    
   



2、Hibernate配置

引入Hibernate的jar包,放大WEB-INF/lib目录下。

   创建Hibernate配置文件,在src下新建TdemoDept.hbm.xml作为hibernate连接数据库的配置文件。具体实现内容如下:


   
      
         
         
         
      
      
          
      
      
          
      
      
          
      
      
          
      
      
          
      
      
          
      
      
          
      
      
          
      
      
          
      
   


3、Spring配置

引入Spring的jar包,放大WEB-INF/lib目录下。

   修改web.xml文件,对Spring进行配置,内容如下:


  
      contextConfigLocation
      classpath:applicationContext.xml
  

接着我们在src下创建applicationContext.xml文件,并给这个文件加上Spring的标头:



4、整合SSH

Spring和Sturts的整合其实就是吧Struts的Action类交给Spring来管理。配置web.xml,在文件中创建上下文加载监听器,具体实现内容如下:


  
org.springframework.web.context.ContextLoaderListener
  

Spring对Hibernate的整合,主要是对Hibernate中的session进行管理,包括Session的创建、提交、关闭整个生命周期。我们在applicationContext.xml中配置如下内容:


   
   
   		
       
       
       
       
   
   
   
   
       
       
       
       
       
       
          
             
             
             org.hibernate.dialect.MySQLDialect
             
             true
          
      
      
   
   
   
   
       
       
   
   
   
   
       
       
   

到这里为止SSH框架搭建完成,我们可以启动Tomcat服务器看是否成功启动服务。

控制台反应结果表示我们的SSH框架已经搭建成功,服务器已经成功开启。


5、方法声明和例表展现数据库用户信息。

在实现具体的功能之前,我们首先创建数据库访问公共接口类,该类中声明我们需要实现的全部功能的方法。实现内容如下:

public interface IDaoService {
	/* 查询数据 */
	public List query(String hql) throws Exception;
	/*保存数据*/
	public void save(Object object) throws Exception;
/*修改数据*/
	public void update(Object object) throws Exception;
/*删除数据*/
	public void delete(Object...objects) throws Exception;
}

接着我们需要创建数据库访问公共具体实现类,并在后面的实验步骤中,对实验 要求实现的功能进行逐个实现。

同时我们还需要创建用户管理的业务接口类,在类中同样声明我们需要实现的全部功能的方法,后面会在业务接口类的具体实现类中逐个实现。具体内容如下:

public interface IUserService {
	/*查询所有用户数据*/
	public List query() throws Exception;
/*添加用户信息*/
	public void add(TDemoUser user) throws Exception;
/*删除用户信息*/
	public void delete(int...ids) throws Exception;
/*修改用户信息*/
   public void update(int...ids) throws Exception;
}

在数据库访问公共具体实现类DaoServiceImpl中获取会话Session并创建查询数据的对象等。具体的实现如下:

public List query(String hql) throws Exception {
		// 获得会话Session
		Session session = getSession();
		// 创建查询数据的对象
		Query query = session.createQuery(hql);
		// 查询返回数据集合
		List list = query.list();
		// 关闭session
		session.close();
		return list;
	}

接着在用户管理的业务具体实现类UserServiceImpl中,通过数据访问公共接口,查询用户数据。具体内容如下:

public List query() throws Exception {
				//通过数据访问公共接口,查询用户数据
		List list = (List) 
				  idaoService.query("from TDemoUser "
				  		+ "where isdel=0 order by opertime desc"); //from TDemoUser    HQL语句
		return list;
	}

最后在用户管理的业务控制器类UserAction中指明业务逻辑,具体内容如下

public String list() {
		try {
			//查询获得所有用户数据
			List list = iuserService.query();
			//数据添加Dao请求范围,数据转发给下一个视图页面
	ActionContext.getContext().getContextMap().put("list", list);
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ERROR;
	}

此时查看navicat中数据库用户信息如下图所示:


我们通过利用刚才实现的功能,通过页面来访问数据库信息。点击“用户管理”便可出现数据库中的用户信息。


6、“用户管理/添加”功能实现

在数据库访问公共具体实现类DaoServiceImpl中实现sava()方法,实现对象与Session的绑定等。具体的实现如下:

public void save(Object object) throws Exception {Session session = getSession();// 开启事务Transaction tx = session.beginTransaction();// 对象与Session绑定session.save(object);// 提交事务tx.commit();// 关闭sessionsession.close();} 
  
 
  

 
  

接着在用户管理的业务具体实现类UserServiceImpl中,实现add()方法,封装通用字段的数据,并访问数据库,保存新用户数据。具体内容如下:

public void add(TDemoUser user) throws Exception {
		//封装通用字段的数据
		user.setIsdel("0");
		user.setOpertime(new Timestamp(System.currentTimeMillis()));
		//访问数据库,保存新用户数据
		idaoService.save(user);
	}

最后在用户管理的业务控制器类UserAction中指明业务逻辑,通过业务接口,添加新用户。具体内容如下:

public String add() {
		//通过业务接口,添加新用户
		try {
			iuserService.add(user);
			return list();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ERROR;
	}

此时点击“用户管理”页面的“添加”按键。



在出现的“添加用户信息”页面中,输入新用户的信息,具体内容如下:


点击确定之后,页面返回“用户管理”,可以在用户列表中看到我们刚添加的用户,具体信息如下:


同时,我们回到navicat可视化工具,查看数据库的数据存储情况,可以看到数据库中也相应的添加了新建用户的相关信息。具体情况如下:



7、“用户管理/删除”功能实现

在数据库访问公共具体实现类DaoServiceImpl中实现delete()方法,对Id数据进行便利,循环绑定要删除的对象,选择对象之后进行数据的逻辑删除。具体的实现如下:

public void delete(Object... objects) throws Exception {
		Session session = getSession();
		Transaction tx = session.beginTransaction();
		// 遍历id数组,循环绑定要删除的对象
		for (Object object : objects) { 			    session.update(object); // 虚拟删除、逻辑删除
		}
		tx.commit();
		session.close();
	}

接着在用户管理的业务具体实现类UserServiceImpl中,实现delete()方法,遍历数组,查询获得用户的集合,通过修改isdel属性来实现逻辑删除,确保数据库一定的安全性等。具体内容如下:

public void delete(int... ids) throws Exception {
		//定义查询所有选中用户的HQL语句
		String hql = "from TDemoUser where userId in(";
		//遍历数组
		for(int i=0; i list = (List) idaoService.query(hql);
		//遍历集合,修改isdel(是否删除)属性
		for(TDemoUser user: list) {
			user.setIsdel("1");
		}
		//获得用户的数组
		Object[] objects = list.toArray();
		//访问数据库删除用户
		idaoService.delete(objects);
	}

最后在用户管理的业务控制器类UserAction中指明业务逻辑。具体内容如下:

public String delete() {
		try {
			iuserService.delete(ids);
			return list();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ERROR;
	}

此时,我们再回到才优备内部系统的“用户管理”页面中,选中我们刚才新建的用户,点击“删除”按钮。


确认删除之后,页面自动刷新,再次出现的“用户管理”页面中,没有了我们刚才新建的用户信息。


此时,我们再回到navicate可视化工具页面查看数据库中信息的存储情况,可以看到的是,新建用户的信息仍然存在,只是isdel属性被设置为了1,实现了用户数据的逻辑删除。具体情况如下:



8、“用户管理/修改”功能实现

 再WEB-INF/admin/user路径下创建userupdate.jsp文件,具体实现内容和useradd.jsp文件类似不同的是相应路径。具体内容如下:

修改userlist.jsp文件如下:

function update() {
		//获得选中记录的数量
		var count = $("input[name=ids]:checked").size();
		//判断是否选中一行记录,修改操作只能选中一行记录
		if (count != 1) {
			alert("请选中一条要修改的记录!");
			return;
		}
		//获得表单对象
		var form = $("#form2").get(0);
		//设置提交路径
		form.action = "admin/user/userupdate.jsp";
		//提交表单
		form.submit();
	}

修改用户管理的业务控制器UserAction类内容如下:

public String update() {
		try {
			iuserService.delete(ids);
			iuserService.add(user);
			return list();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return SUCCESS;
	}

回到“用户管理”页面,选择要进行修改的用户信息,点击确定。



在出现的“修改用户信息”页面中,输入最新的用户信息,具体内容如下:


点击确定保存更改信息,并再次返回用户例表。可以看到修改成功。


查看navicat页面,也可看到相应的修改内容已经得到了保存。





你可能感兴趣的:(JavaWeb)