SSh小整合之用户登录

20 篇文章 0 订阅
11 篇文章 0 订阅

 

1、ssh整合

(1)加载必要的jar包(aop,连接池等)

2)建立POJO,如User:(省略getterhe setter

private int id;

private int age;

private String name;

public User(){}

public User(int id,int age,String name){

this.id = id;

this.age = age;

this.name = name;

}

(3)接口(增删改等),如IUserDao

public interface IUserDao {

public void insert(User user);

public User find(int id);

public int getUserAccount();

public List getAll();

}

(4)接口的实现类:UserDao.java,要注意的是HibernateTemplate 的使用以及SessionFactory 的setter注入。

public class UserDao implements IUserDao  {

private HibernateTemplate hibernateTemplate;

//在spring的配置文件中通过该方法注入SessionFactory 

public void setSessionFactory(SessionFactory sessionFactory){

hibernateTemplate =new HibernateTemplate(sessionFactory);

}

public HibernateTemplate getHibernateTemplate() {

return hibernateTemplate;

}

 public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {

this.hibernateTemplate = hibernateTemplate;

}

public User find(int id) {

// TODO Auto-generated method stub

return (User)hibernateTemplate.get(User.class, id);

}

public void insert(User user) {

// TODO Auto-generated method stub

hibernateTemplate.save(user);

}

}

(5)hibernate的映射文件(如果不想自己建立表的话就留着hibernate.cfg.xml文件,然后用ExportDB.java来创立表)

(6)修改web.xml:要指明Spring的配置文件,配置org.springframework.web.context.ContextLoaderListener,ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息以及配置struts2的过滤器:

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

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

<!-- Sping的配置文件 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<listener>

<!-- ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息 --> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

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

</filter-mapping>

</web-app>

(7)建立Action:,如UserRegistAction ,在这里声明表单组件相对应的属性,如nameage,然后继承了ActionSupport ,并实现了RequestAware,SessionAware,让Struts2自动注入requestsession的实例,代码如下:

public class UserRegistAction extends ActionSupport implements RequestAware,SessionAware{

User user ;

String name,age;

UserDao userDao;

private Map<String ,Object> request;

private Map<String ,Object> session;

@Override

public String execute() throws Exception {

if(request==null){

return "error";

}else{

user = new User();

user.setName(name);

System.out.println(age);

user.setAge(Integer.parseInt(age));

userDao.insert(user);

return SUCCESS;

}

}

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

public User getUser() {

return user;

}

public void setUser(User user) {

this.user = user;

}

public void setRequest(Map<String, Object> arg0) {

// TODO Auto-generated method stub

this.request = arg0;

}

public void setSession(Map<String, Object> arg0) {

// TODO Auto-generated method stub

this.session = arg0;

}

.......省略nameagesettergetter.

}

(8)配置Spring的配置文件:主要是配置dataSourcesessionFactory,然后将sessionFactory注入UserDao,还要将UserDao注入到引用了UserDaoAction中。

<?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:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="http://www.springframework.org/schema/beans

 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost:3306/testspring"/>

<property name="username" value="root"/>

<property name="password" value="shutao"/>

</bean>

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<!-- 通过 mappingDirectoryLocations来设置某个路径下的全部xxx.hbm.xml配置文件-->

<property name="dataSource" ref="dataSource"/>

<property name="mappingDirectoryLocations">

<list>

<value>classpath:/shutao/testSSH</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.MySQLDialect

</prop>

</props>

</property>

</bean>

<bean id="UserDao" class="shutao.testSSH.UserDao">

<property name="sessionFactory" ref="sessionFactory"/>

</bean>

<bean id="userRegistAction" class="shutao.ssh.action.UserRegistAction" scope="prototype">

<property name="userDao" ref="UserDao"/>

</bean>

</beans>

(9)Struts的配置文件:

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

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<constant name="struts.i18n.encoding" value="GBK"/>

<constant name="struts.devModel" value="true"/>

<constant name="struts.objectFactory" value="spring"/>

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

<action name="userReg">

       <result>/regist.jsp</result>

       </action>

<!--★ 引用了Spring容器中的Bean,class的名字必须和Spring中配置的一样,这是Struts和Spring整合的关键之一 -->

<action name="userRegistAction" class="userRegistAction">

<result name="error">

/error.jsp

</result>

<result name="success">

/userRegSuccess.jsp

</result>

</action>

</package>

</struts>

最后看看regist.jsp 

 <form action="user_reg/userRegistAction" method="post">

      用户名:<input type="text" name="name"> <br>

   年龄:<input type="text" name="age"> <br>

   <input type="submit" value="提交">

     <s:debug></s:debug>

  </form>

整个文件结构:

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值