java web ssh三大框架整合简单入门
来源:互联网 发布:夏普m261n网络扫描 编辑:程序博客网 时间:2024/05/16 09:35
贫道放假第二天了,是时候写一个简单的入门了,ssh三大框架啊的简单整合。
做一个简单的用户登录。创建好一个web工程后,添加为Spring工程添加hibernate工程是会将hibernate.cfg.xml集成到applicationContext中既然是用户登录首先需要一个实体类。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<span style="white-space:pre"></span><!--连接数据库--><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/demo"></property><property name="username" value="root"></property><property name="password" value="123456"></property></bean>
<span style="white-space:pre"></span><!-- 配置会话工厂 <span style="font-family: Arial, Helvetica, sans-serif;">LocalSessionFactoryBean 不能使用注解</span><span style="font-family: Arial, Helvetica, sans-serif;"> --></span><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<span style="white-space:pre"></span><!--将<span style="font-family: Arial, Helvetica, sans-serif;">dataSource注入到sessionFactory中</span>--><property name="dataSource"><ref bean="dataSource" /></property><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></props></property><property name="mappingResources"><list>
<span style="white-space:pre"></span><!--hibernate中的maping映射位置--><value>com/entity/User.hbm.xml</value></list></property></bean>
建立实体类User.java
package com.entity;/** * User entity. @author MyEclipse Persistence Tools */public class User implements java.io.Serializable {// Fields/** * */private static final long serialVersionUID = 4585221013478533506L;private Integer id;private String username;private String password;// Constructors/** default constructor */public User() {}/** full constructor */public User(String username, String password) {this.username = username;this.password = password;}// Property accessorspublic Integer getId() {return this.id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return this.username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return this.password;}public void setPassword(String password) {this.password = password;}}与数据库建立关系映射User.hbm.xml
<hibernate-mapping> <class name="com.entity.User" table="user" catalog="demo"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="username" type="java.lang.String"> <column name="username" length="20" /> </property> <property name="password" type="java.lang.String"> <column name="password" length="20" /> </property> </class></hibernate-mapping>此时,要进行数据CRUD方法建立dao层操作,BaseDao曾为通用操作,为了降低代码的冗余,抽取出来,可以改为两个参数一个传递类类型一个传递对象,BaseDao需要继承HibernateDaoSupport,这个类中提供了链接数据库中所需要的sessionFactory,同时Spring将hibernate中大量的公有操作制作成为了代码模板就是获取session等语句。使用者只用将要使用的方法补全其余的将有Spring来进行管理,所以applicationContext中的数据库方言要配置正确,一个sessionFactory对应于一个数据库实例。
public class BaseDao extends HibernateDaoSupport{
<span style="white-space:pre"></span>//public void addObject(Class<?> clazz,Object o)public void addObject(Object o){getHibernateTemplate().save(o.getClass().getSimpleName().toString(),o);}public void delectObject(Object o){getHibernateTemplate().delete(o.getClass().getSimpleName().toString(),o);}public void updateObject(Object o){getHibernateTemplate().update(o.getClass().getSimpleName().toString(), o);}@SuppressWarnings("rawtypes")public List selectObject(String hql){return getHibernateTemplate().find(hql);}}这时公有操作就写完了。这时用UserDao来继承BaseDao
package com.dao;import java.util.List;import com.entity.User;public class UserDaoImpl extends BaseDao{public UserDaoImpl(){//用于观察启动时,被Spring加载进入IOC容器中System.out.println("UserDaoImpl______________________________________");}public boolean queryById(User u){boolean flags = false;String hql="from User where username='"+u.getUsername()+"' and password='"+u.getPassword()+"'";@SuppressWarnings("unchecked")List<User> list = selectObject(hql);if(list.size()>0)flags = true;return flags;}}这是dao层完毕,需要组成业务逻辑,但是简单登录,没有其他要求,就简单调用一下就好。
public class UserService {private UserDaoImpl userDao;public UserService(){System.out.println("UserService____________________________________");}public boolean register(User u) {return userDao.queryById(u);}public UserDaoImpl getUserDao() {return userDao;}public void setUserDao(UserDaoImpl userDao) {this.userDao = userDao;}}这时需要注入一个UserDaoImpl,才能操作,new操作是在内存的堆上分配内存存储,但是用了spring依赖注入,便不需要进行new,有框架进行管理。
需要用action控制页面了。
public class UserAction {private UserService userService;private User user;public UserAction(){System.out.println("UserAction is running ------------------");}public String register() {boolean flags = userService.register(user);if (flags)return "success";return "false";}public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}}
配置一下spring和struts。applicationContext中后来的配置文件
<bean id="user" class="com.entity.User"></bean><bean id="userDao" class="com.dao.UserDaoImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="userService" class="com.service.UserService"><property name="userDao" ref="userDao"></property></bean>
<span style="white-space:pre"></span><!--<span style="font-family: Arial, Helvetica, sans-serif;">scope="prototype"默认情况下是单例模式,设置后可以为每一次请求创建一个action</span><span style="font-family: Arial, Helvetica, sans-serif;">--></span><span style="font-family: Arial, Helvetica, sans-serif;"></span><bean id="userAction" class="com.action.UserAction" scope="prototype"><property name="userService" ref="userService"></property><property name="user" ref="user" ></property></bean>
配置struts也要集成到Spring中去,一旦不是有spring生成管理则会报空指针异常。
<constant name="struts.action.extension" value="do,action"/><package name="user" namespace="/" extends="struts-default"><!-- name: 与JSP中的form表单中的action属性一致即可 class:要使用spring中的id来映射否则会报空指针 method:此类中的哪一个方法 --><action name="user_*" class="userAction" method="{1}"><result name="success">success.jsp</result><result name="false">index.jsp</result></action></package>
</<span style="font-family: Arial, Helvetica, sans-serif;">constant</span><span style="font-family: Arial, Helvetica, sans-serif;">></span>需要导入struts2-spring-plugin.jar。index.jsp
<div align="center"> <form action="user_register.do" method="get"> 姓名: <input type="text" name="user.username"/><br /> 密码: <input type="password" name="user.password"/><br /> <input type="submit" value="ok"/> </form> </div>这样ssh就简单的集成完了
0 0
- java web ssh三大框架整合简单入门
- SSH三大框架简单整合
- java ssh三大框架搭建整合
- Java Web SSH-Spring Hibernate Struts SSH三大框架整合概述
- SSH三大框架整合
- SSH 三大框架整合
- ssh三大框架整合-整合实例
- ssh三大框架的整合
- 【insigma】SSH三大框架整合步骤
- SSH三大框架整合全程记录
- ssh三大框架整合 getHibernateTemplate
- ssh三大框架整合的配置
- 三大框架整合ssh(前言)
- SSH之三大框架的整合
- SSH三大框架整合步骤
- SSH之三大框架整合配置文件
- SSH三大框架整合原理
- SSH三大框架整合步骤
- android中的广播--BroadcastReceiver
- cat(1) 命令
- windows环境下mosquitto环境搭建与mqtt测试
- EJB理解
- mysql 服务器启用event_scheduler
- java web ssh三大框架整合简单入门
- Android BLE 初学(1)
- 构建高性能ASP.NET站点 第五章—性能调优综述(中篇)
- [Maven] - 安装与Eclipse搭建
- 记录网址
- SELinux对网站目录权限控制的不当的问题
- js 实现定时对函数的调用setInterval()方法
- ListView的优化之复用convertView和利用ViewHolder
- 算法12—动态规划算法之:最长公共子序列 & 最长公共子串(LCS)