1.首先项目的目论结构
2.jsp页面
<div id="login_input">
<form action="${pageContext.request.contextPath}/proscenium/loginAction!login.action" method="post">
<%--enctype="multipart/form-data"--%>
<div class="input">账号: <input type="text" name="users.account" /></div>
<div class="input">密码: <input type="password" name="users.password" /></div>
<div align="center"><input type="submit" id="submit" />
<a href="#"><img src="img/zhuce.gif" /></a>
</div>
</form>
</div>
${pageContext.request.contextPath}为上下文。
3.java文件
3.1Users实体类 即属性,get set方法,toString方法(省)
3.2LoginAction.java
package com.whpu.k16035.action;
import com.whpu.k16035.entity.Users;
import com.whpu.k16035.service.LoginService;
import org.apache.struts2.ServletActionContext;
import javax.servlet.http.HttpSession;
import java.util.List;
public class LoginAction {
private Users users;
private LoginService loginService;
private List user;
public String login() {
System.out.println(" ing");
System.out.println(“user”+user);
Users users = loginService.login(this.users);
System.out.println(“user”+users);
if (users == null) {
return “error”;
} else {
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute(“user”, users);
System.out.println(“user已拿到” + users);
return “login”;
}
}
// -----------------------get set方法省略
3.3Dao
3.3.1 LoginDao接口
public interface LoginDao {
Users login(Users users);
}
3.3.2 LoginDaoImpl实现类
import com.whpu.k16035.dao.LoginDao;
import com.whpu.k16035.entity.Users;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
public class LoginDaoImpl extends HibernateDaoSupport implements LoginDao{
@Override
public Users login(Users users){
return (Users)this.getHibernateTemplate().findByNamedParam(
“from Users u where u.account=:account and u.password=:password”,
new String[]{“account”,“password”},
new Object[]{users.getAccount(),users.getPassword()}).get(0);
}
}
3.4Service
3.4.1LoginService接口
public interface LoginService{
Users login(Users users);
}
3.4.2LoginServiceImpl实现类
import com.whpu.k16035.dao.LoginDao;
import com.whpu.k16035.entity.Users;
import com.whpu.k16035.service.LoginService;
import java.util.List;
public class LoginServiceImpl implements LoginService {
private LoginDao loginDao;
@Override
public Users login(Users users) {
return loginDao.login(users);
}
// --------------------------------
public LoginDao getLoginDao() {
return loginDao;
}
public void setLoginDao(LoginDao loginDao) {
this.loginDao = loginDao;
}
}
4.一些配置文件
4.1mapper下的Users.hbm.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
<class name="Users" table="users">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native"></generator>
</id>
<property name="account" column="account" type="java.lang.String"></property>
<property name="password" column="password" type="java.lang.String"></property>
<property name="name" column="name" type="java.lang.String"></property>
<property name="gender" column="gender" type="java.lang.String"></property>
<property name="birthday" column="birthday" type="java.lang.String"></property>
<property name="IDCard" column="IDCard" type="java.lang.String"></property>
<property name="address" column="address" type="java.lang.String"></property>
<property name="tel" column="tel" type="java.lang.String"></property>
<property name="email" column="email" type="java.lang.String"></property>
<property name="postCode" column="postCode" type="java.lang.String"></property>
<property name="type" column="type" type="java.lang.String"></property>
</class>
4.2struts.xml中设置action
<?xml version="1.0" encoding="UTF-8" ?>
<package name="proscenium" namespace="/proscenium" extends="struts-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="dishesAction" class="com.whpu.k16035.action.DishesAction" >
<!--转发到显示全部页面-->
<result name="index">/proscenium/index.jsp</result>
<!--<result name="login">/proscenium/order.jsp</result>-->
<!--重定向-->
<!--<result name="requert" type="redirect">empAction!findEmpAll.action</result>-->
</action>
<action name="loginAction" class="com.whpu.k16035.action.LoginAction">
<result name="login">/proscenium/order.jsp</result>
<!--重定向-->
<!--<result name="error" type="redirect">/proscenium/index.jsp</result>-->
</action>
</package>
4.3applicationContext.xml <?xml version="1.0" encoding="UTF-8"?>
<!--1.加载连库四要素-->
<context:property-placeholder location="classpath:dbconfig/dbmysql.properties" />
<!--2.创建数据库连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--创建sessionFactroy-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<!--数据源-->
<property name="dataSource" ref="dataSource"/>
<!--加载hibernate主配置文件-->
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
<!--加载实体类映射文件-->
<property name="mappingLocations" value="classpath*:mapper/*.hbm.xml"/>
<!--hibernate的其他配置-->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="show_sql">true</prop>
<prop key="format_sql">true</prop>
<prop key="hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<!--事物管理-->
<!--事物管理器-->
<bean id="txManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--事物传播特性-->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*"/>
<!--select* 方法设置只-->
<tx:method name="select*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!--事物切面-->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* com.whpu.k16035.service.impl.*.*(..))"></aop:pointcut>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
<!--dao层-->
<bean id="dishesDao" class="com.whpu.k16035.dao.impl.DishesDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!--服务层-->
<bean id="dishesService" class="com.whpu.k16035.service.impl.DishesServiceImpl">
<property name="dishesDao" ref="dishesDao"/>
</bean>
<!--控制器-->
<bean id="dishesAction" class="com.whpu.k16035.action.DishesAction" scope="prototype">
<property name="dishesService" ref="dishesService"/>
</bean>
<!-- User的配置 ===========================-->
<bean id="loginDao" class="com.whpu.k16035.dao.impl.LoginDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!--<!–服务层–>-->
<bean id="loginService" class="com.whpu.k16035.service.impl.LoginServiceImpl">
<property name="loginDao" ref="loginDao"></property>
</bean>
<!--控制器-->
<bean id="loginAction" class="com.whpu.k16035.action.LoginAction" scope="prototype">
<property name="loginService" ref="loginService"></property>
</bean>
4.4applicationContext-user.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
</beans>
5.导入依赖
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.whpu.k16035
K16035_11
1.0-SNAPSHOT
war
K16035_11 Maven Webapp
http://www.example.com
junit junit 4.11 test org.apache.struts struts2-core 2.5.16 org.hibernate hibernate-core 5.3.7.Final org.springframework spring-beans 4.3.21.RELEASE org.springframework spring-core 4.3.21.RELEASE org.springframework spring-context 4.3.21.RELEASE org.springframework spring-context-support 4.3.21.RELEASE org.springframework spring-expression 4.3.21.RELEASE org.springframework spring-aop 4.3.21.RELEASE org.springframework spring-aspects 4.3.21.RELEASE aopalliance aopalliance 1.0 org.aspectj aspectjweaver 1.9.2 org.springframework spring-tx 4.3.21.RELEASE org.springframework spring-web 4.3.21.RELEASE<!--struts2整合spring-->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.5.16</version>
</dependency>
<!--spring整合hibernate-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<!--jstl-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--c3p0-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>