跑起来,第一个ssh

所使用的工具和环境。
jdk6+myeclipse6.5+tomcat6+mysql5+spring2.0+hibernate3+struts2

好了,开始我们的第一个ssh2之旅吧。

首先先分析一下我们的第一个ssh2项目的需求,简单的说就是有一张表单,让你填写用户名和密码,提交后存入数据库。就这么简单,呵呵。

第一步:。 我们首先新建一张mysql数据表
sql如下
CREATE TABLE mytest.users (
id INT NOT NULL,
username VARCHAR(50),
password VARCHAR(50),
PRIMARY KEY (id)
数据表创建好后结构如下:

当然我已经有几天数据添加进去了



第二步
打开myeclipse,新建一个web项目,命名为ssh2-2, java ee规范我们选择5,如图




第三步 务必小心的一步
导入ssh2的各个jar,步骤如下:
选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳出如图


务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next,去掉specify database……复选框,next,去掉create session……复选框,finish。

再次选中选中当前的项目后,点击菜单烂的myeclipse---project capablities----add spring项,跳出如图



依然务必按照如是选择,jar文件选择如下5个:




点击next,
之后按下选择,务必,


next后finsh即可。
然后导入struts2的jar
如下5个放到lib下

然后放入我们的数据库驱动jar mysql-connector-java-5.0.8-bin.jar 没得话附件中有

至此,包都导入完毕

第四步
配置web.xml 代码如下 注意注释:
Xml代码 复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <web-appversion="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <!--struts2的常规配置-->
  8. <filter>
  9. <filter-name>struts2</filter-name>
  10. <filter-class>
  11. org.apache.struts2.dispatcher.FilterDispatcher
  12. </filter-class>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>struts2</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>
  18. <!--在web应用启动是自动形成一个spring容器-->
  19. <listener>
  20. <listener-class>
  21. org.springframework.web.context.ContextLoaderListener
  22. </listener-class>
  23. </listener>
  24. <welcome-file-list>
  25. <welcome-file>index.jsp</welcome-file>
  26. </welcome-file-list>
  27. </web-app>


第五步:
从视图层入手;在webroot目录下新建一个save.jsp文件
如下代码;
Jsp代码 复制代码
  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
  2. <%@taglibprefix="s"uri="/struts-tags"%>
  3. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  4. <html>
  5. <head>
  6. <title>MyJSP'save.jsp'startingpage</title>
  7. </head>
  8. <body>
  9. <s:formaction='saveUser'>
  10. <s:textfieldname="user.username"label="用名"></s:textfield>
  11. <s:textfieldname="user.password"label="密码"></s:textfield>
  12. <s:submit></s:submit>
  13. </s:form>
  14. </body>
  15. </html>

接下去顺水推舟,自然开发action,及控制层
新建包com.test.action.user
新建一个SaveUserAction.java 代码初步如下:
Java代码 复制代码
  1. packagecom.test.action.user;
  2. importcom.opensymphony.xwork2.ActionSupport;
  3. importcom.test.bean.User;
  4. publicclassSaveUserActionextendsActionSupport{
  5. privateUseruser;
  6. publicUsergetUser(){
  7. returnuser;
  8. }
  9. publicvoidsetUser(Useruser){
  10. this.user=user;
  11. }
  12. @Override
  13. publicStringexecute()throwsException
  14. {
  15. returnSUCCESS;
  16. }
  17. }

于是,自然我们要新建一个bean
新建包com.test.bean 新建User.java
Java代码 复制代码
  1. packagecom.test.bean;
  2. publicclassUser{
  3. privateIntegerid;
  4. privateStringusername;
  5. privateStringpassword;
  6. publicIntegergetId(){
  7. returnid;
  8. }
  9. publicvoidsetId(Integerid){
  10. this.id=id;
  11. }
  12. publicStringgetUsername(){
  13. returnusername;
  14. }
  15. publicvoidsetUsername(Stringusername){
  16. this.username=username;
  17. }
  18. publicStringgetPassword(){
  19. returnpassword;
  20. }
  21. publicvoidsetPassword(Stringpassword){
  22. this.password=password;
  23. }
  24. }


好了,现在我们先把控制层的action放在这里,开发业务层和持久层(DAO)

新建包com.test.dao
建类UserDAO.java
代码如下:
Java代码 复制代码
  1. packagecom.test.dao;
  2. importjava.util.List;
  3. importcom.test.bean.User;
  4. publicinterfaceUserDAO
  5. {
  6. publicvoidsaveUser(Useruser);
  7. publicvoidremoveUser(Useruser);
  8. publicUserfindUserById(Integerid);
  9. publicList<User>findAllUsers();
  10. publicvoidupdateUser(Useruser);
  11. }
这是一个接口
在开发dao的实现类
新建包com.test.dao.impl
建类UserDAOImpl.java
代码:
Java代码 复制代码
  1. packagecom.test.dao.impl;
  2. importjava.util.List;
  3. importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
  4. importcom.test.bean.User;
  5. importcom.test.dao.UserDAO;
  6. /**
  7. *
  8. *@authorAdministrator
  9. *这个dao试用了hibernate的数据库操作语句
  10. */
  11. publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{
  12. /*
  13. *获取所有数据
  14. */
  15. publicList<User>findAllUsers(){
  16. Stringhql="fromUseruserorderbyuser.iddesc";
  17. return(List<User>)this.getHibernateTemplate().find(hql);
  18. }
  19. /*
  20. *获取指定的数据
  21. */
  22. publicUserfindUserById(Integerid){
  23. Useruser=(User)this.getHibernateTemplate().get(User.class,id);
  24. returnuser;
  25. }
  26. publicvoidremoveUser(Useruser){
  27. this.getHibernateTemplate().delete(user);
  28. }
  29. publicvoidsaveUser(Useruser){
  30. this.getHibernateTemplate().save(user);
  31. }
  32. publicvoidupdateUser(Useruser){
  33. this.getHibernateTemplate().update(user);
  34. }
  35. }

好了,数据持久层(dao)开发好了,按顺序,现在应该开发业务层了,
新建包com.test.service
建类UserService.java
代码:
Java代码 复制代码
  1. packagecom.test.service;
  2. importjava.util.List;
  3. importcom.test.bean.User;
  4. publicinterfaceUserService
  5. {
  6. publicList<User>findAll();
  7. publicvoidsave(Useruser);
  8. publicvoiddelete(Useruser);
  9. publicUserfindById(Integerid);
  10. publicvoidupdate(Useruser);
  11. }
这是一个接口类
然后写实现类
新建包
com.test.service.impl
建类
UserServiceImpl.java
Java代码 复制代码
  1. packagecom.test.service.impl;
  2. importjava.util.List;
  3. importcom.test.bean.User;
  4. importcom.test.dao.UserDAO;
  5. importcom.test.service.UserService;
  6. publicclassUserServiceImplimplementsUserService{
  7. privateUserDAOuserDao;
  8. publicUserDAOgetUserDao(){
  9. returnuserDao;
  10. }
  11. publicvoidsetUserDao(UserDAOuserDao){
  12. this.userDao=userDao;
  13. }
  14. //服务层的方法
  15. publicvoiddelete(Useruser)
  16. {
  17. this.userDao.removeUser(user);
  18. }
  19. publicList<User>findAll(){
  20. returnthis.userDao.findAllUsers();
  21. }
  22. publicUserfindById(Integerid){
  23. returnthis.userDao.findUserById(id);
  24. }
  25. publicvoidsave(Useruser)
  26. {
  27. this.userDao.saveUser(user);
  28. }
  29. publicvoidupdate(Useruser)
  30. {
  31. this.userDao.updateUser(user);
  32. }
  33. }


业务和持久层都开发好了,现在我们回到控制层action
修改action的代码如下:
Java代码 复制代码
  1. packagecom.test.action.user;
  2. importcom.opensymphony.xwork2.ActionSupport;
  3. importcom.test.bean.User;
  4. importcom.test.service.*;
  5. publicclassSaveUserActionextendsActionSupport{
  6. privateUseruser;
  7. privateUserServiceservice;
  8. publicUserServicegetService(){
  9. returnservice;
  10. }
  11. publicvoidsetService(UserServiceservice){
  12. this.service=service;
  13. }
  14. publicUsergetUser(){
  15. returnuser;
  16. }
  17. publicvoidsetUser(Useruser){
  18. this.user=user;
  19. }
  20. @Override
  21. publicStringexecute()throwsException
  22. {
  23. this.service.save(this.user);
  24. returnSUCCESS;
  25. }
  26. }

修改struts.xml
如下
Xml代码 复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEstrutsPUBLIC
  3. "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <packagename="user"extends="struts-default">
  7. <actionname="saveUser"class="saveUserAction">
  8. <resultname="success"type="redirect">listUser.action</result>
  9. <resultname="input">/saveUser.jsp</result>
  10. </action>
  11. </package>
  12. </struts>


至此,我们已经开发好了一个典型的mvc项目,现在的任务是将strust2和hibernate都放入spring容器管理,
现在我们的项目结构如下:




然后修改 applicationContext.xml
代码如下 注意注释
Xml代码 复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  6. <!--配置数据源-->
  7. <!--一下分别配置了数据库驱动数据库路径用户名密码等-->
  8. <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource">
  9. <propertyname="driverClassName"value="com.mysql.jdbc.Driver"></property>
  10. <propertyname="url"value="jdbc:mysql://localhost:3306/mytest"></property>
  11. <propertyname="username"value="root"></property>
  12. <propertyname="password"value="123456"></property>
  13. <propertyname="maxActive"value="100"></property>
  14. <propertyname="maxIdle"value="30"></property>
  15. <propertyname="maxWait"value="500"></property>
  16. <propertyname="defaultAutoCommit"value="true"></property>
  17. </bean>
  18. <!--一下配置sessionFactory这个东西曾经是在hibernate中定义的如今交给了spring管理-->
  19. <beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  20. <propertyname="dataSource"ref="dataSource"></property>
  21. <propertyname="hibernateProperties">
  22. <props>
  23. <propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  24. <propkey="hibernate.show_sql">true</prop>
  25. </props>
  26. </property>
  27. <propertyname="mappingResources">
  28. <list>
  29. <value>com/test/bean/User.hbm.xml</value>
  30. </list>
  31. </property>
  32. </bean>
  33. <!--以下使一些用到的类在使用类中均没有实例化这个类,都交给了spring管理-->
  34. <!--DAObean-->
  35. <beanid="userDao"class="com.test.dao.impl.UserDAOImpl"scope="singleton">
  36. <propertyname="sessionFactory"ref="sessionFactory"></property>
  37. </bean>
  38. <!--DAObean-->
  39. <beanid="userService"class="com.test.service.impl.UserServiceImpl">
  40. <propertyname="userDao"ref="userDao"></property>
  41. </bean>
  42. <beanid="saveUserAction"class="com.test.action.user.SaveUserAction">
  43. <propertyname="service"ref="userService"></property>
  44. </bean>
  45. </beans>




好了 到此为止,ssh2的整合已经完成了,发布后开启服务器吧,

不对,服务器开启后有异常


这里是包冲突问题
到项目的lib目录下,


删除选中的jar即可
ok了 可以测试了
http://localhost:8080/ssh2-2/save.jsp

来自http://www.360doc.com/content/09/0817/15/219800_4990487.shtml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值