《SSH2框架整合学习指南.doc》由会员分享,可在线阅读,更多相关《SSH2框架整合学习指南.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流SSH2框架整合学习指南.精品文档. SSH2框架整合详细步骤 内部资料2012年7月目的:通过一个简单的注册登录来学ssh框架的整合1 准备工作1.1 工具准备Mysql5.5 , JDK 1.6, Myeclipse 6.5,tomcat6.0等辅助工具1.2 整合类库集Struts-2.3.1.2, Hibernate 3.2,Spring 2.5(后两类库可以在myelcipse中有自带)2 开始搭建平台1启动myeclipse,建一个Web工程,如图所示:图中的需要输入项目名称即可,其余可以没必要选择,除非有需2导入Struts2开
2、发的必备类库说明:(此版本的myeclipse没有需要的struts2类库,所以选择手工导入)需要导入的类库常见8个:导入之后,还别忘了导入一个和spring整合需要的类文件 这些工作之后还需配置web.xml文件,为它配置过滤器,配置文件详细如下:web-app id=WebApp_9 version=2.4 xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation= struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndE
3、xecuteFilter struts2 /* 配置好该处后,还需要在src下面建立一个struts.xml文件,关于该配置文件可以到你下载的struts2文件中,找个项目中,有这样的模版可以拷贝过来一个,这样配置strust2暂时解决了3.导入Hibernate类库文件,选择myeclipse进行导入 单击你选择的项目,点击右键,按如图所示选择hibernate的支持选中点击之后得到如下界面,只需改JAR Library Installation如图所示点击next,得到如下,不需改动,继续点击next即可之后到该界面,因为后续来配置,此处就不选,不勾上,点击next接下来也是把勾去掉,不选
4、择,点击finish即可就这样hibernate的支持也完成了3 。导入对spring的支持,同样采用myeclipse集成已有的操作如加入hibernate支持一样,点击之后,选择一些,得到如下其中类库文件需要选择主要的三个(其实是四个,有一个选择会自动再选一个),三个为:(AOP是选择第三个带进来的)还有就是把库文件选择到web-inf目录下,点击next此处folder要选择到web-inf下即可把第一个勾去掉即可,点击next把勾去掉,点击finish即可,就这样配置spring的支持也完成了,可以进行测试下,将该项目部署到tomcat下,启动tomcat结果发现抛出了异常,说stru
5、ts2的过滤器没有成功启动,如图所示的异常:这是由于没有配置spring的监听器,打开web.xml文件加入如下代码: org.springframework.web.context.ContextLoaderListener重新启动服务器,发现一切正常运行,由于之后要用数据库,所以得把该三个jar文件导入:这三个类库可以在网上下载到做到此处,ssh2的整合已经就成功了,接下来就是具体去怎么实现注册,登录系统了5. 先分析需求,建立数据库,数据表为了简单起见,这里只对该用户进行简单的注册,登录,其中注册只需填用户名和密码,登录界面也只有用户名和密码两项 建立了一个数据库为ssh2_003,在当
6、中建个数据表为:user,包含id,username,password,三个属性 将用户信息进行封装,定义一个User类package com.ssh2_003.bean;public class User private int id;private String username;private String password;public int getId() return id;public void setId(int id) this.id = id;public String getUsername() return username;public void setUserna
7、me(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;下面编写一个register.jsp注册界面,源码如下:String path = request.getContextPath();String basePath = request.getScheme()+:/+request.getServerName()+:+request.get
8、ServerPort()+path+/; base href= My JSP index.jsp starting page 注册界面 接下来就得写Action类文件了 写了个SaveUserAction.java继承ActionSupport,现在该类只是一个没有任何逻辑和处理数据的,需后续工作进行才能解决package com.ssh2_003.action.user;import com.opensymphony.xwork2.ActionSupport;import com.ssh2_003.bean.User;public class SaveUserAction extends A
9、ctionSupport private User user;public User getUser() return user;public void setUser(User user) this.user = user;public String execute() throws Exception return SUCCESS;下面得写具体的类了,首先DAO接口的编写,包含添加和查找方法:package com.ssh2_003.dao;import com.ssh2_003.bean.User;public interface UserDAO public void saveUser
10、(User user);public User findUserByProperty(String propertyname,Object value);然后就是DAO接口的实现类了DAOImplpackage com.ssh2_003.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ssh2_003.bean.User;import com.ssh2_003.dao.UserDAO;public class UserD
11、AOImpl extends HibernateDaoSupport implements UserDAO public void saveUser(User user) this.getHibernateTemplate().save(user);public User findUserByProperty(String propertyname, Object value) String hql = from User as user where user.+propertyname+=?;List list = (List)this.getHibernateTemplate().find
12、(hql, value);if(list!=null&list.size()=1)return list.get(0);elsereturn null;DAO块就完成了,接下来就是Service块了,先写个Service接口,方法跟DAO中差不多,只是还包含了另一个方法,用来验证用户登录的package com.ssh2_003.service;import com.ssh2_003.bean.User;public interface UserService public void save(User user);public User findUserByProperty(String p
13、ropertyname,Object value);public boolean validateUser(String username,String password);接着就是它的实现类ServiceImplpackage com.ssh2_003.service.impl;import com.ssh2_003.bean.User;import com.ssh2_003.dao.UserDAO;import com.ssh2_003.service.UserService;public class UserServiceImpl implements UserService priva
14、te UserDAO userDao;public UserDAO getUserDao() return userDao;public void setUserDao(UserDAO userDao) this.userDao = userDao;public void save(User user) this.userDao.saveUser(user);public User findUserByProperty(String propertyname, Object value) return this.userDao.findUserByProperty(propertyname,
15、value);public boolean validateUser(String username, String password) boolean flag = false;if(username=null|.equals(username)|password=null|.equals(password)flag = false;elseUser u = this.findUserByProperty(username, username);if(u!=null)if(u.getPassword().equals(password)flag = true;elseflag = false
16、;elseflag = false;return flag;别忘了,最主要的操作还是Action中实现,补充先前的SaveUserAction类package com.ssh2_003.action.user;import com.opensymphony.xwork2.ActionSupport;import com.ssh2_003.bean.User;import com.ssh2_003.service.UserService;public class SaveUserAction extends ActionSupport private User user; private Use
17、rService service;public UserService getService() return service;public void setService(UserService service) this.service = service;public User getUser() return user;public void setUser(User user) this.user = user;Overridepublic String execute() throws Exception this.service.save(this.user);return SU
18、CCESS;此时开起服务器,打开注册界面,点击注册,当出现如下信息时:则表示成功,此时你进入数据库可以查看到已经有信息了。好的注册块就完成了。接下来来实现登录模块,此处设计简单,如果验证成功,则跳到success.jsp界面,提示注册成功信息,如果验证失败,则继续停留在登录界面。登录界面源码如下:String path = request.getContextPath();String basePath = request.getScheme()+:/+request.getServerName()+:+request.getServerPort()+path+/; base href= My
19、 JSP enter.jsp starting page 登录界面 下面得写一个CheckUserAction类来出来用户的登录逻辑的实现,源码如下package com.ssh2_003.action.user;import com.opensymphony.xwork2.ActionSupport;import com.ssh2_003.bean.User;import com.ssh2_003.service.UserService;public class CheckUserAction extends ActionSupport private static final long s
20、erialVersionUID = 1L;private User user;private UserService service;public User getUser() return user;public void setUser(User user) this.user = user;public UserService getService() return service;public void setService(UserService service) this.service = service;Overridepublic String execute() throw
21、s Exception String username = this.user.getUsername().trim();String password = this.user.getPassword().trim();System.out.println(*);if(this.service.validateUser(username, password)return SUCCESS;else return INPUT;完成这些操作之后,打开登录界面,输入用户名和密码,当在myelcipse中出现此提示“Hibernate: select user0_.id as id0_, user0_.username as username0_, user0_.password as password0_ from user user0_ where user0_.username=?以及success.jp界面的跳转,则表示登录成功了,你也可以尝试输入错误的用户名和密码,发现界面会继续跳到登录界面。到目前为止,ssh2整合已经基本上实现了,只是没有进一步完善该功能。