SSH调整实例
SSH整合实例SSH的学习已经有一段时间了,今天心血来潮做了个简单的注册页面的整合,下面给大家讲讲我是怎么
SSH整合实例
SSH的学习已经有一段时间了,今天心血来潮做了个简单的注册页面的整合,下面给大家讲讲我是怎么做的吧,有缺点还请大家多多指教啊。
1.新建一个Web Project:

2.为Project增加Struts功能:

这里面需要选择的包有5个,除了图中的包以外还有一个Spring3.0 web Libraries.点击next后,选择spring配置文件的放置地点,我选择把它放到了WEB-INF下。
3.为Project增加Spring功能:


4.为Project增加Hibernate功能:




这边我们只选择一个包,就是hibernate的核心包。?之后选择第二个单选按钮,然后我们不再创建新的Spring配置,而是使用已经存在的Spring配置文件,SessionFactory Id:就是sessionFactory不改了。之后选择数据库时,使用了我事先配置好的mysql数据库。再点击Next,会出现一个Create SessionFactory界面,我们不勾选,直接Finish。
5.切换到Myeclipse Database Exploer界面,使用Hibernate反向工程。



在第一幅图的table2上右击,选择Hibernate的反向工程,然后出现第二幅图的界面,勾选情况如图,下一步后出现第三幅图,我们给ID那个设置为Native,目的是表述向数据库中插入一条记录,数据表主键是从哪里来的,native表示由数据库提供。之后下一步默认就好,点击完成。然后我们把自动生成的com.suda.orm中的Table2.java修改为User.java,同时在Table2.hbm.xml中修改对应的地方。
6.新建一个package,com.suda.dao。在这个里面我们创建一个接口,UserDao,和一个接口的实现类Java代码?
- package?com.suda.dao;??
- ??
- import?com.suda.orm.User;??
- ??
- public?interface?UserDao?{??
- ????public?void?save(User?user);??
- }??
?Java代码?
- package?com.suda.dao;??
- ??
- import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;??
- ??
- import?com.suda.orm.User;??
- ??
- import?com.suda.dao.UserDao;??
- ??
- public?class?UserDaoImpl?extends?HibernateDaoSupport?implements?UserDao{??
- ??
- ????public?void?save(User?user)?{??
- ????????try?{??
- ????????????this.getHibernateTemplate().saveOrUpdate(user);??
- ????????}?catch?(Exception?e)?{??
- ????????????e.printStackTrace();??
- ????????}??
- ??????????
- ????}??
- ??????
- }??
?我们的实现类我们要让他继承HibernateDaoSupport类。
7.创建Action,Form,JSP


我给她命名为registerForm,使用的是Dynamic FormBean。然后创建了两个属性,username,password,JSP页面就使用默认创建在form/register.jsp。下一步也默认。
8.?配置struts-config.xml文件,将Struts交给Spring管理?a) 加入插件 (message-resources标记下)Xml代码?
- <plug-in?className="org.springframework.web.struts.ContextLoaderPlugIn">??
- ??
- ????<set-property?property="contextConfigLocation"???
- ??
- ??????????????value="/WEB-INF/applicationContext.xml"?/>??
- ??
- </plug-in>??
??b) 将Action类移交(message-resources标记上)
Xml代码?
- <controller?processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>??
?9.编写我们的Aciont处理方法:
?
Java代码?
- public?class?RegisterAction?extends?Action?{??
- ????UserDao?userDao;??
- ????User?user=new?User();??
- ????public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,??
- ????????????HttpServletRequest?request,?HttpServletResponse?response)?{??
- ????????DynaActionForm?registerForm?=?(DynaActionForm)?form;//?TODO?Auto-generated?method?stub??
- ????????String?username=registerForm.getString("username");??
- ????????String?password=registerForm.getString("password");??
- ????????ActionMessages?errors=new?ActionMessages();??
- ????????while(true){??
- ????????????if?(username.length()==0||password.length()==0)?{??
- ????????????????errors.add("empty",new?ActionMessage("content_empty"));??
- ????????????????break;??
- ????????????}??
- ????????????if?(username.length()>8)?{??
- ????????????????errors.add("username",new?ActionMessage("username_wrong"));??
- ????????????}??
- ????????????if?(password.length()<6)?{??
- ????????????????errors.add("password",new?ActionMessage("password_wrong"));??
- ????????????}??
- ????????????break;??
- ????????}??
- ????????this.saveErrors(request,?errors);??
- ????????if?(errors.isEmpty())?{??
- ????????????user.setUsername(username);??
- ????????????user.setPassword(password);??
- ????????????userDao.save(user);??
- ????????????return?mapping.findForward("success");??
- ????????}else?{??
- ????????????return?mapping.getInputForward();??
- ????????}??
- ????}??
- ????public?UserDao?getUserDao()?{??
- ????????return?userDao;??
- ????}??
- ????public?void?setUserDao(UserDao?userDao)?{??
- ????????this.userDao?=?userDao;??
- ????}??
- ??
- }??
?
?
?
10.在Struts-config.xml中增加跳转:Xml代码?
- <global-forwards?>??
- ??<forward?name="success"?path="/form/success.jsp"?/>??
- ??</global-forwards>??
?
?
?
11.修改Spring配置文件:注册我们的bean:Xml代码?
- <bean?id="userDaoImpl"?class="com.suda.dao.UserDaoImpl">??
- ????????????<property?name="sessionFactory"?ref="sessionFactory"/>??
- </bean>??
- ??????????
- <bean?name="/register"?class="com.suda.struts.action.RegisterAction">??
- ?????????????<property?name="userDao">??
- ?????????????????<ref?bean="userDaoImpl"/>??
- ?????????????</property>??
- </bean>??
?这个代码的作用我就不多说了,我的那个Spring与Struts整合的日志中有说明。
12.修改web.xml,增加UTF-8过滤器,添加Listener:Java代码?
- <filter>??
- ?????<filter-name>encodingFilter</filter-name>??
- ?????<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>??
- ?????<init-param>??
- ??????????<param-name>encoding</param-name>??
- ??????????<param-value>utf-<span