java+struts+spring验证用户名是否存在

来源:互联网 发布:idea查看源码 编辑:程序博客网 时间:2024/06/06 01:13

        最近学习了java语言,搭了一下struts框架,现在用一个验证用户名的小例子总结下:

首先先编写下显示界面(具体代码就先不在这写啦),


效果图如下:




编写验证用户名是否存在的方法:

<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.itcast.shop.user.action;import java.io.IOException;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import cn.itcast.shop.user.service.UserService;import cn.itcast.shop.user.vo.User;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.sun.mail.iap.Response;import com.sun.org.apache.bcel.internal.generic.NEW;public class UserAction extends ActionSupport implements ModelDriven<User> {// 注入UserServiceprivate UserService userService;// 模型驱动使用的对象private User user = new User();public User getModel() {// TODO Auto-generated method stubreturn user;}/** * 跳转注册页面的执行方法 */public String registPage() {return "registPage";}/*** * AjAX进行异步校验用户名的执行方法 *  * @throws IOException *  */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 null;}private void getResponse() {// TODO Auto-generated method stub}/** * 用户注册的方法 */public String regist() {return NONE;}public void setUserService(UserService userService) {this.userService = userService;}}</span>


用户模块业务层代码
<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.itcast.shop.user.service;import javax.mail.MessagingException;import org.springframework.transaction.annotation.Transactional;import cn.itcast.shop.user.dao.UserDao;import cn.itcast.shop.user.vo.User;import cn.itcast.shop.utils.MailUitls;import cn.itcast.shop.utils.UUIDUtils;/*** * 用户模块业务层代码 *  * @author X *  */@Transactionalpublic class UserService {// 注入UserDaoprivate UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao = userDao;}// 用户名查询用户的方法public User findByUsername(String username) {return userDao.findByUserName(username);}//业务层完成用户注册代码public void save(User user){user.setState(0);//0String code=UUIDUtils.getUUID()+UUIDUtils.getUUID();user.setCode(code);userDao.save(user);//发送激活邮件try {MailUitls.sendMail(user.getEmail(), code);} catch (MessagingException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"></span>
用户模块持久层代码

<span style="font-family:KaiTi_GB2312;font-size:18px;">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 X *  */public class UserDao extends HibernateDaoSupport {// 按照名次查询是否有该用户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);}return null;}//注册用户存入数据库public void save(User user) {this.getHibernateTemplate().save(user);}}</span>



这两个代码写好之后,开始进行配置:


首先是struts文件:


<span style="font-family:KaiTi_GB2312;font-size:18px;"><?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="SSH-shop" extends="struts-default" namespace="/WebRoot"> --></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;">       //package的名称是你项目中的名称,这里namespace的路径要写对,注意相对路径的<package name="SSH-shop" extends="struts-default" namespace="/"><!-- 配置首页访问的Action --><action name="index" class="indexAction"><result name="index">/WEB-INF/jsppackage/index.jsp</result></action><!-- 用户模块的Action --><action name="user_*" class="userAction" method="{1}"><result name="registPage">/WEB-INF/jsppackage/regist.jsp</result></action><!-- 验证码Action --><action name="checkImg" class="checkImgAction"></action></package></struts></span>



配置spring文件:


<span style="font-family:KaiTi_GB2312;font-size:18px;"><?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.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://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"><property name="userDao" ref="userDao" /></bean><!-- Dao的配置=========================================================== --><bean id="userDao" class="cn.itcast.shop.user.dao.UserDao"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 配置验证码Action --><bean id="checkImgAction" class="cn.itcast.shop.user.action.CheckImgAction"scope="prototype"></bean></beans></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"></span>
<span style="font-family:KaiTi_GB2312;font-size:24px;color:#3366ff;"></span>
效果图:






         整个流程就完成了,初步学习,具体的东西还理得不是很清楚,有错误请指出。


0 0