一个能跑起来的ssh小项目

package cn.itcast.shop.index.action;

import com.opensymphony.xwork2.ActionSupport;

/**
* @author 作者 E-mail:
* @version 创建时间:2017年7月17日 上午8:57:54
* 首页访问的Action
*/
public class IndexAction extends ActionSupport {

    //执行的首页的方法
    public String execute() {

        return "index";
    }
}
package cn.itcast.shop.user.action;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.springframework.http.client.support.HttpAccessor;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import cn.itcast.shop.user.service.UserService;
import cn.itcast.shop.user.vo.User;

/**
* @author 作者 E-mail:
* @version 创建时间:2017年7月17日 上午9:49:32
* 用户模块的action类
*/
public class UserAction extends ActionSupport implements ModelDriven<User>{
    //模型驱动使用的对象
    private User user=new User();


    public User getModel() {

        return user;
    };

    //注入UserService
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;/**我曾经在这个地方少写了一个this,找这个bug花了3个小时!!!!!!!!!!!!**/
    }

    //跳转到注册页面的执行方法、
    public String registPage() {

        return "registPage";
    }
    //AJAX异步校验用户名的执行方法
    public String findByName() throws IOException {
        // 调用Service进行查询:
        User existUser = userService.findByUsername(user.getUsername());
        // 获得response对象,向页面输出:
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/html;charset=UTF-8");
        // 判断
        if (existUser != null) {
            // 查询到该用户:用户名已经存在
            response.getWriter().println("<font color='red'>用户名已经存在</font>");
        } else {
            // 没查询到该用户:用户名可以使用
            response.getWriter().println("<font color='green'>用户名可以使用</font>");
        }
        return NONE;
    }
}
package cn.itcast.shop.user.dao;

import java.util.List;


import org.springframework.orm.hibernate3.support.HibernateDaoSupport;


import cn.itcast.shop.user.vo.User;

/**
* @author 作者 E-mail:
* @version 创建时间:2017年7月17日 上午10:56:49
*用户模块持久层
*/
public class UserDao extends HibernateDaoSupport{//继承HibernateDaoSupport后可在spring注入sessionFactory

    //按照名称查询是否有该模板
    @SuppressWarnings("unchecked")
    public User findByUsername(String username) {
        String hql="from User where username = ?";

        List<User> list=this.getHibernateTemplate().find(hql,username);
        if(list != null && list.size() > 0) {
            return list.get(0);
        }else {
            return null;
        }
    }
}
package cn.itcast.shop.user.service;
/**
* @author 作者 E-mail:
* @version 创建时间:2017年7月17日 上午10:56:39
* 类说明
*/

import org.springframework.transaction.annotation.Transactional;


import cn.itcast.shop.user.dao.UserDao;
import cn.itcast.shop.user.vo.User;

@Transactional
public class UserService {
    // 注入UserDao
    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    // 按用户名查询用户的方法
    public User findByUsername(String username) {
        return userDao.findByUsername(username);
    }

}
package cn.itcast.shop.user.vo;
/**
* @author 作者 E-mail:
* @version 创建时间:2017年7月17日 上午10:49:22
* 用户模块的实体类
*/

/*!40101 SET character_set_client = utf8 *
CREATE TABLE `user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `addr` varchar(255) DEFAULT NULL,
  `state` int(11) DEFAULT NULL,
  `code` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */
public class User {
    private Integer uid;
    private String username;
    private String password;
    private String name;
    private String email;
    private String phone;
    private String addr;
    private Integer state;
    private String code;
    public Integer getUid() {
        return uid;
    }
    public void setUid(Integer uid) {
        this.uid = uid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getAddr() {
        return addr;
    }
    public void setAddr(String addr) {
        this.addr = addr;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }


}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="cn.itcast.shop.user.vo.User" table="user">
        <id name="uid">
            <generator class="native"/>
        </id>
        <property name="username"/>
        <property name="password"/>
        <property name="name"/>
        <property name="email"/>
        <property name="phone"/>
        <property name="addr"/>
        <property name="state"/>
        <property name="code"/>

    </class>
</hibernate-mapping>
<?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:context="http://www.springframework.org/schema/context"
    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.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">

        <!-- 配置连接池: -->
    <!-- 引入外部属性文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 配置C3P0连接池: -->
    <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.user}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!-- Hibernate的相关信息 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 注入连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Hibernate的其他的属性 -->
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.connection.autocommit">false</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
        <!-- 配置Hibernate的映射文件 -->
        <property name="mappingResources">
            <list>
                <value>cn/itcast/shop/user/vo/User.hbm.xml</value>

            </list>
        </property>
    </bean>

    <!-- 事务管理: -->
    <!-- 事务管理器 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <!-- 开启注解事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>


    <!-- Action的配置 ===========================-->

    <!-- 首页访问的Action -->
    <bean id="indexAction" class="cn.itcast.shop.index.action.IndexAction" scope="prototype"></bean>
    <!--跳转到用户注册页面的action  -->
    <bean id="userAction" class="cn.itcast.shop.user.action.UserAction" scope="prototype">
         <!--注入Service  -->
         <property name="userService" ref="userService"/>   
    </bean>
    <!--Service的配置  -->
    <bean id="userService" class="cn.itcast.shop.user.service.UserService">
        <!-- 注入Dao -->
          <property name="userDao" ref="userDao"/>
    </bean>
    <!--Dao的配置  -->
    <bean id="userDao" class="cn.itcast.shop.user.dao.UserDao">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

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

<struts>

    <constant name="struts.devMode" value="false" />

    <package name="shop" extends="struts-default" namespace="/">

        <!-- 配置首页访问的Action -->
        <!--下面的类名为spring中配置的id  -->
        <action name="index" class="indexAction">
            <result name="index">/WEB-INF/jsp/index.jsp</result>
        </action>
        <!-- 配置用户注册的Action -->
        <!--下面的类名为spring中配置的id  -->
        <action name="user_*" class="userAction" method="{1}">
            <result name="registPage">/WEB-INF/jsp/regist.jsp</result>
        </action>


    </package>
</struts>

这里写图片描述

页面的事件跳转,连接数据库,ajax的用户名检测。java之路更近一步,加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值