java s2sh_s2sh整合

package com.s2sh.mobel;

import java.io.Serializable;

public class User implements Serializable{

private static final long serialVersionUID = -2974230401163436730L;

private Integer id;

private String name;

private String password;

private String firstname;

private String lastname;

private Integer age;

private User(){}

private User(Integer id , String firstname , String lastname , Integer age,String name,String password){

this.id = id;

this.firstname = firstname;

this.lastname = lastname;

this.age = age;

this.name=name;

this.password=password;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getFirstname() {

return firstname;

}

public void setFirstname(String firstname) {

this.firstname = firstname;

}

public String getLastname() {

return lastname;

}

public void setLastname(String lastname) {

this.lastname = lastname;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public void setPassword(String password) {

this.password = password;

}

public String getPassword() {

return password;

}

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

}

将User.xml放在同一包下,模版与数据库映射。

/p>

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

提供hibernate配置文件

hibernate.cfg.xml

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

在spring中,本身没有提供ORM的实现,但是提供了一些帮助类他们会提供ORM工具的支持,例如Hibernate、Ojdbc、iBatis等。

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

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

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

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/s2sh

root

wj

注意:bean的id 可以随便写,sessionfactory依赖数据源,所以要注射进来bean id=“”,接下来要设置成数据源,

工厂:

com/s2sh/mobel/User.hbm.xml

org.hibernate.dialect.MySQLDialect

true

还有一个,mvc三层架构,dao实现类注入,Servce业务逻辑注入,action注入

简单的用户登录填写:

注意,url请求找web.xml,通过拦截器和监听器进行操作,然后寻找struts.xml,然后struts class=“”会告诉继续找spring,spring的class=“”,会告诉具体找那个struts的action类,找到之后 获取rquest 参数,然后调用业务逻辑,把记过放进作用于,返回。在这里,我采用action注入servce,action注入user对象,servce类中注入dao,dao类中注入hibernateTemplate。

2.可以使用spring中的HibernateDaoSupport和HibernateTemplate类简化HibernateDao的实现类的编写。

public void delete(User id){

//获得hibernate事务

template =getHiberanteTemplate();

//获得对象

user =(User)template.get(User.class,id);

//spring事务会进行操作删除对象

template.delete(user);

}

注意:因为dao继承HibernateDaoSupper 所以要重写delete(),然后获取hibernateTemplate,HibernateTemplate封装了session的操作,user =(User)template.get(User.class,id);查找User对象,查找后在通过template在把这个对象删除掉。现在不用管session,因为我们用到spring,我们注射进来了,所以session关闭交给spring。

3.修改web.xml文件

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">

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

注意:url请求过来首先找web.xml,通过过滤器进行拦截,找对应的action。

4.接着编写web.xml

org.springframework.web.context.ContextLoaderListener

注意:监听器是spring,其实就是struts不管事务了,交给spring进行管理,对象交给spring进行管理。

5.web.xml架构

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">

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

org.springframework.web.context.ContextLoaderListener

编写struts.xml文件

/p>

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

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

/list.jsp

/error.jsp

注意name可以随便写,真正的寻找action类交给了spring,所以class=“”是spring的id=“”。他会继续到spring中找。

applicationContext.xml

注意:spring的id一定是struts的class =“”,然后spring的class=“”会告诉这个action类在哪里?jurisdiction 另外说名action要调业务逻辑,所以要注入业务逻辑类。

action编写:

package com.s2sh.action.user;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

import com.s2sh.mobel.User;

import com.s2sh.service.UserService;

public class UserAction extends ActionSupport {

private static final long serialVersionUID = -7467352669343037994L;

private User user;

private UserService userService;

public static long getSerialversionuid() {

return serialVersionUID;

}

public UserService getUserService() {

return userService;

}

private String name;

private String password;

public void setUserService(UserService userService) {

this.userService = userService;

}

public User getUser() {

return user;

}

public void setName(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setPassword(String password) {

this.password = password;

}

public String getPassword() {

return password;

}

public void setUser(User user) {

this.user = user;

}

public String login()throws Exception{

System.out.println(user.getName());

if(null!=this.userService.findUser(user)){

return SUCCESS;

}else {

return ERROR;

}

}

dao接口编写

package com.s2sh.dao;

import java.util.List;

import com.s2sh.mobel.User;

public interface UserDao {

//根据用户用户来登录,不过你可以根据自己需求来写

public User findUser(User user);

}

dao接口实现类

package com.s2sh.dao.impl;

import java.util.List;

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

import com.s2sh.dao.UserDao;

import com.s2sh.mobel.User;

public class UserDaoImpl extends HibernateDaoSupport implements UserDao{

//用户登录

public User findUser(User user) {

try{

String hql="from User where name=? and password=?";

List list = (List) this.getHibernateTemplate().find(hql,new String[]{user.getName(),user.getPassword()});

if(list.size()>=1){

return (User)list.get(0);

}else {

return null;

}

}catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

编写servce接口

package com.s2sh.service;

import java.util.List;

import com.s2sh.mobel.User;

public interface UserService {

//根据user登录

public User findUser(User user);

}

编写servce实现类

package com.s2sh.service.impl;

import java.util.List;

import com.s2sh.dao.UserDao;

import com.s2sh.mobel.User;

import com.s2sh.service.UserService;

public class UserServiceImpl implements UserService{

private UserDao userDao;

//注入

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

//用户登录

public User findUser(User user){

return (User)this.userDao.findUser(user);

}

}

编写jsp名为login.jsp

pageEncoding="utf-8"%>

用户登录

function longin(){

var name = document.getElementById("UserName").value;

var password = document.getElementById("UserPassword").value;

if(name.length==""){

alert("用户名不能为空");

return false;

}else if(password.length<6){

alert("密码长度不能小于6位");

return false;

}else if(password.length>6){

alert("密码长度不能大于6位");

}

return login.submit();

}

用户名:

密码:  

失败页面 error.jsp

pageEncoding="utf-8"%>

Insert title here

------------------>程序失败

注意:如果有什么需要帮助的可以加我QQ503229799 备注:s2sh寻求帮助,我会同意添加好友,另外我有QQ开发群,看我的首页,在群里喊我也行!这只是简单的登录,如果想要整个模块的增删改查的代码,请在本片评价上留言!我会给你们整合一个完整的代码,包括jar包上传····数据库设计····另外加注释·····

接下来咱们开始演示吧~~~~

url输入地址:http://localhost:8088/s2sh/login.jsp

cf201073d3f8c8816901f8cb477bb393.png

大小: 55.7 KB

b9093835e05b4495f0527f12c64323a3.png

大小: 56.4 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-09-20 22:11

浏览 2635

评论

6 楼

高级java工程师

2015-05-25

文思涌动 写道

楼主新年好。可否再传一遍给我,我没有收到, 不清楚您的邮箱地址是哪个。

最近比较忙,很久没弄博客了,刚看到

5 楼

文思涌动

2015-02-19

楼主新年好。可否再传一遍给我,我没有收到, 不清楚您的邮箱地址是哪个。

4 楼

高级java工程师

2014-02-26

文思涌动 写道

楼主传我一个w.ang-chao08@163.com

已给你发到你邮箱

3 楼

文思涌动

2014-02-25

楼主传我一个w.ang-chao08@163.com

2 楼

EyeJava6688

2012-08-31

非常不错的例子,希望大家多多关注。

1 楼

DYF123CXL123

2012-05-30

版主给一个增删改查的全代码!邮箱zzu_dyf@163.com 谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值