spring2.0+hibernate3.1+struts1.2 ssh开发的简单的应用1

这个简单的应用是入门级别的 ,方便大家入门
1,类似与springside([url]http://www.springside.org.cn/[/url])中的例子helloworld具有的功能,
2,没有了springside中的将网页中的表单输出xls中的功能,
3,将那个helloworld例子中的分页功能简单化了
4,增加了添加用户或修改用户时的,javaMail通知的功能,
5,还有原来的对数据的增删改查

tomcat6.0作为服务器,mysql作为数据库

包结构:
com.hello.model 存放应用的pojo类
com.hello.dao,com.hello.dao.impl 数据层,使用hibernate封装
com.hello.service,com.hello.service.impl 业务逻辑层,将页面表现同数据分离
com.hello.web 存放分页的类和资源文件
com.hello.web.action 表现层,存放struts的action文件
基本配置:
数据库文件,数据库中的数据自己添加
helloworld.sql

create database helloworld;
use helloworld;
create table `helloworld`.`user`(
`id` int unsigned not null auto_increment,
`name` varchar(45) default '' not null,
`email` varchar(45),
`descn` varchar(45),
primary key (`id`)
);


web.xml
注意过滤器的字符设置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 对表单传递的数据强制转换 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<!-- 设置的是gbk,因为我的mysql数据库的字符设置是gbk,
最好同你的数据库的字符设置相同,否则容易乱码-->
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置spring文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 配置struts文件 -->
<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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/helloworld">
</property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/hello/model/User.hbm.xml</value>
</list>
</property>
</bean>

<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.163.com" />
<property name="port" value="25" />
<property name="username" value="你的用户名" />
<property name="password" value="你的密码" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="userDAO" class="com.hello.dao.impl.UserDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="mailAdvice" class="com.hello.service.impl.SendMail">
<property name="mailSender" ref="mailSender"></property>
</bean>
<!-- aop代理对象包含advisor和advice的拦截链,advice表示对方法的增强(切面)
而pointcut表示一个切入点 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="List" read-only="true" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>

<!-- advisor 必须的有一个advice增强+一个切入点,才能实现增强方法的功能-->
<aop:config>
<!-- 增强事务功能 -->
<aop:advisor
pointcut="execution(* com.hello.service.UserService.*(..))"
advice-ref="txAdvice" />
<!--添加或修改用户时发送email -->
<aop:advisor
pointcut="execution(* com.hello.service.UserService.save(*..User))"
advice-ref="mailAdvice" />
</aop:config>

<bean id="userService"
class="com.hello.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
</beans>

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<form-beans>
<form-bean name="userForm"
type="org.apache.struts.validator.LazyValidatorForm" />
</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings>
<action attribute="userForm" input="/index.jsp" name="userForm"
validate="false" path="/user" parameter="method" scope="request">
<forward name="list" path="/pages/list.jsp" />
<forward name="edit" path="/pages/edit.jsp" />
</action>
</action-mappings>
<!-- 由spring代理页面的跳转 -->
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
<message-resources
parameter="com.hello.web.struts.ApplicationResources" />

<!-- spring 代理action的插件 -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/action-servlet.xml" />
</plug-in>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml" />
</plug-in>

</struts-config>

action-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="/user" class="com.hello.web.action.UserAction">
<property name="userService" ref="userService"></property>
</bean>
</beans>

源代码文件:
前面没有添加jta.jar,出现java.lang.NoClassDefFoundError: javax/transaction/TransactionManager。现已改正,在tomcat5.5上还暂时未通过
http://cid-741baba43d6d4c42.skydrive.live.com/self.aspx/Public/helloworld2.7z
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值