struts1.2+hibernate

来源:互联网 发布:双程网络剧 编辑:程序博客网 时间:2024/05/17 08:41
源码位置:http://svn.w18.net/svn/bookma
访问账号:book/book
请下载:  myhibernate.rar文件

准备环境:
安装jdk1.5
安装myeclipse6.0
安装tomcat5.5
安装mysql5.0(推荐)或sql server

1. 在d盘建立目录myjava,该目录下存放自己的java工程

2. 开始建立我的工程,工程名称取为mytest(随意)。在myjava目录下建立工程的同名目录mytest,此目录即为自己的工程目录。

3. 工程目录mytest下建立目录src、web,建立文件 .project、.classpath(注意:只有文件名后缀没有文件名)

4. .project文件内容,注意:其中name属性值填写工程名mytest                                                    <?xml version="1.0" encoding="UTF-8"?>

<projectDescription>

<name>mytest </name>

<comment> </comment>

<projects>

</projects>

<buildSpec>

<buildCommand>

<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder </name>

<arguments>

</arguments>

</buildCommand>

<buildCommand>

<name>org.eclipse.jdt.core.javabuilder </name>

<arguments>

</arguments>

</buildCommand>

<buildCommand>

<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator </name>

<arguments>

</arguments>

</buildCommand>

<buildCommand>

<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator </name>

<arguments>

</arguments>

</buildCommand>

<buildCommand>

<name>com.ibm.etools.validation.validationbuilder </name>

<arguments>

</arguments>

</buildCommand>

<buildCommand>

<name>com.ibm.sse.model.structuredbuilder </name>

<arguments>

</arguments>

</buildCommand>

</buildSpec>

<natures>

<nature>com.genuitec.eclipse.j2eedt.core.webnature </nature>

<nature>org.eclipse.jdt.core.javanature </nature>

</natures>

</projectDescription>

5. .classpath文件内容:其中src属性定义java类所在目录,通常定义为src;con属性定义工程需要的类库;lib属性定义工程的jar包;output属性定义工程java类的编译目录,我们定义为web/WEB-INF/classes。

<?xml version="1.0" encoding="UTF-8"?>

<classpath>

<classpathentry kind="src" path="src"/>

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

<classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/hibernate3.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/mysql-connector-java-5.1.6-bin.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/dom4j-1.6.1.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/jta.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/antlr-2.7.6.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/cglib-nodep-2.1_3.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/commons-beanutils.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/commons-digester.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/jstl.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/standard.jar"/>

<classpathentry kind="lib" path="web/WEB-INF/lib/struts.jar"/>

<classpathentry kind="output" path="web/WEB-INF/classes"/>

</classpath>

6. 把工程导入myeclipse,打开myeclipse工具,选择File/Import/Existing Projects into Workspace命令,点击Next,点击Select root directory右边的Browse按钮,从弹出“浏览文件夹”窗口选择我们的工程目录mytest,然后点击“确定”按钮关闭此弹出窗口,返回Import窗口,点击Finish按钮,完成导入工程。

7. 把工程部署到Tomcat上,在Tomcat安装目录/conf/Catalina/localhost 目录下增加文件mytest.xml文件。注意其中三处mytest值的意义:docBase表示工程发布目录位置,path是从浏览器访问工程的别名,workDir是该工程在Tomcat里的临时工作目录,为了简单我们可都取工程目录mytest,内容如下:

<?xml    version='1.0'    encoding='utf-8'?>   

<Context  docBase="D:/myjava/mytest/web"

path="/mytest" workDir="work/Catalina/localhost/mytest">

</Context>

8. 建立测试工程的jsp文件:在web目录下建立first.jsp文件,显示当前时间,内容:

Now Date: <% out.print(new java.util.Date()); %>

9. 测试工程:启动Tomcat,在IE输入http://localhost:8080/mytest/first.jsp,按回车,如果出现当前时间就恭喜你,成功了!不成功也没关系,到www.nlld.net发个帖子,本人必将回复,人格担保。

10. 在web/WEB-INF目录(导入工程时自动构建的,如没有请手工建此目录)下增加lib目录,在lib目录增加必要的jar包(请到snv上下载工程myhibernate.rar压缩包,解压后复制其lib目录下的全部jar包)。

11. 在web/WEB-INF目录增加struts-html.tld、c.tld文件,这是struts需要的标签格式定义文件。此文件获取方法同上。

12. 在web/WEB-INF目录增加struts-config.xml、web.xml文件,这是struts架构最重要的两个文件,其中前者是需要我们经常配置的文件。

  20  修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • gjhrhuua
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2009-05-21 10:31:551楼 得分:013. web.xml文件说明,filter定义字符处理器,用于处理汉字乱码问题。servlet定义struts的控制器,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <filter>

        <filter-name>Set Character Encoding </filter-name>

        <filter-class>filters.SetCharacterEncodingFilter </filter-class>

        <init-param>

            <param-name>encoding </param-name>

            <param-value>GB2312 </param-value>

        </init-param>

  </filter>

  <filter-mapping>

        <filter-name>Set Character Encoding </filter-name>

        <url-pattern>/* </url-pattern>

  </filter-mapping>

  <servlet>

    <servlet-name>action </servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet </servlet-class>

    <init-param>

      <param-name>config </param-name>

      <param-value>/WEB-INF/struts-config.xml </param-value>

    </init-param>

    <init-param>

      <param-name>debug </param-name>

      <param-value>3 </param-value>

    </init-param>

    <init-param>

      <param-name>detail </param-name>

      <param-value>3 </param-value>

    </init-param>

    <load-on-startup>0 </load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>action </servlet-name>

    <url-pattern>*.do </url-pattern>

  </servlet-mapping>

</web-app>

14. struts-config.xml文件说明,这是struts框架的配置文件,用来配置请求路径、Action、Form和jsp的对应关系,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

  <form-beans >

 

  </form-beans>

  <action-mappings >


  </action-mappings>

</struts-config>

15. 建立数据库,数据库名称为book,在mysq命令行窗口输入脚本:

create database book;

16. 配置hibernate数据源,在src目录下建立文件hibernate.cfg.xml(hibernate框架默认在此位置寻找此配置文件)。注意url字串中的数据库名称改成你的数据库book,也要注意访问数据库的用户名、密码改成你自己设置的用户名、密码。内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>


<session-factory>


<property name="show_sql">true </property>

<property name="connection.driver_class">com.mysql.jdbc.Driver </property>

<property name="connection.url">jdbc:mysql://localhost:3306/book </property>

<property name="connection.username">root </property>

<property name="connection.password">root </property>

<property name="dialect">org.hibernate.dialect.MySQLDialect </property>

<property name="connection.autocommit">true </property>


</session-factory>

</hibernate-configuration>

17. 业务需求:开发一个图书维护模块,能向用户展现图书列表,用户能向系统增加、修改、删除、查看图书。要求图书属性有编号、书名、作者、价格、内容描述。

18. 需求分析:这是一个简单的针对一个事物(图书)的增、删、改业务功能,页面展示上就是做一个记录列表页面,页面上有增加按钮,每条记录后面的修改、删除、查看按钮以实现用户的要求。

19. 确实数据模型与建表:针对图书这个事务实体建个物理表,表名为bookifno(随意,一般用英语或拼音),根据用户要求图书属性建立相应字段,建表脚本:(当然要在book数据库下执行此脚本)

create table bookinfo

(

    id                  int                            not null,

    name                varchar(100),

    author              varchar(50),

    price                float,

    ms                  varchar(1000),

    constraint PK_BOOKINFO primary key (id)

);

20. 根据表生成hibernate映射文件,在myeclipse中src目录下建立com目录,com目录下建立obj目录,该目录下专门放置hibernate映射文件(放在这个目录下不是必须的,但要有个规划,易于管理)。在myeclispe的MyEclipse Database Explorer窗口连接上你的mysql数据库,选择你的表bookinfo,右击选择Create Hibernate Mapping命令,Location填写你要放置映射文件的位置:mytest/src/com/obj,然后点击Finish按钮,如有错误直接点击OK忽略即可,然后就会发现在你的obj目录下生成了映射文件。

21. 修改映射文件,myeclipse工具针对一个表会生成三个文件,一个xml配置文件、一个抽象类和一个实现类,本表生成文件即AbstractBookinfo.java、Bookinfo.java和Bookinfo.hbm.xml。一般在应用中直接把Bookinfo.java文件删除,而把AbstractBookinfo.java由抽象类改具体类,即去掉abstract类修饰字,AbstractBookinfo.java类名则改为Bookinfo.java,这样更简单实用。Bookinfo.hbm.xml主键策略通常改为外部维护这种方式,这样不受制于具体数据库,移植性好,即: <generator class="assigned"/> 

Bookinfo.hbm.xml延迟加载策略加上lazy="false",即取消延迟策略策略,即时加载:                               

<class name="Bookinfo" table="bookinfo" lazy="false">

22. 在hibernate.cfg.xml文件增加这个表的配置,即在session-factory元素之间增加:

    <mapping resource="com/obj/Bookinfo.hbm.xml" />

23. 模块目录和文件命名规则:一般和模块对应表同名(复杂的模块与模块功能名称同名),这里模块相关目录就用表名book,模块相关文件名称也包含book字串内容。

24. 建立java类目录和空类。在src/com目录下建立图书模块的目录book。book目录下建立struts目录,struts目录下建立目录action、form、dao,这3个目录下分别建立以下3个类BookAction、BookForm、BookDAO。BookAction是业务处理层,用于处理请求,进行业务处理,它调用数据层组件访问数据库。BookDAO就是数据层,它是通过调用hibernate对象实现对数据库访问的。BookForm是数据模型,用于在jsp页面和Action之间传递数据。

25. 建立jsp目录和空白jsp文件。在web目录下建立图书模块的目录book。book目录下建立booklist.jsp、addbook.jsp、updbook.jsp、viewbook.jsp文件,分别实现展示图书列表、增加图书、修改图书、删除图书和查询图书信息的功能。

26. 配置struts-config.xml文件,增加图书模块配置内容

  form-beans之间增加图书模块的数据模型定义form-bean元素,name属性即在jsp页面引用form对象的别名:

  <form-beans >

    <form-bean name="bookForm" type="com.book.struts.form.BookForm" />

  </form-beans>

 

  action-mappings之间增加图书模块的业务处理层组件定义action元素,name定义关联的form组件别名,input定义出错的默认定位页面(一般和下面的某个forwad属性定义相同),path是此Action的请求路径,type是Action的类路径,forward定义jsp文件的别名(以便于在Action里引用jsp文件):

  <action-mappings >

  <action

      name="bookForm"

      input="/book/booklist.jsp"

      path="/book" parameter="method"

      scope="request"

      type="com.book.struts.action.BookAction"

      validate="false">

      <forward name="booklist" path="/book/booklist.jsp" />

      <forward name="addbook" path="/book/addbook.jsp" />

      <forward name="updbook" path="/book/updbook.jsp" />

      <forward name="viewbook" path="/book/viewbook.jsp" />

  </action>

  </action-mappings>

27. 编写java类代码。参考工程例子myhibernate,先写DAO组件,根据要实现的功能,分别写查询列表、增加、修改、删除、查询记录详细信息的方法。再写Form组件,最后再写Action组件的方法。

28. 编写jsp文件。参考工程例子,做些简单的名称、属性、路径修改就行了。

29. 把filters目录从例子工程复制你的src目录下,用来处理汉字乱码。

30. 测试。在IE中输入http://localhost:8080/mytest/book.do?method=booklist进行测试。
让我们记住本文档的提供者吧:对话Java程序员社区(www.nlld.net),要声明的一点是,本文档不是死的,该社区所有技术文档作者都在世,您花一分钱就可得到回复。