- 论坛徽章:
- 0
|
hibernate+spring+struts例子
希望对刚开始学习的朋友有点帮助 如有不正确的地方希望大家指出
1.基本DAO所有的DAO继承他
package com.jrnt.common;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
public class BaseDAO extends HibernateDaoSupport {
}
2.BeanFactory
package com.jrnt.common;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.context.ApplicationContext;
public class BeanFactory {
private static ApplicationContext context;
/**
* 在应用程序启动时配置spring框架
*
* @param filePath
*/
public static void init(String filePath) {
if (context == null) {
context = new FileSystemXmlApplicationContext(filePath);
}
}
/**
* 方法用于获取业务对象。
*
* @param beanName
* @return
*/
public static Object getBusinessOjbect(String beanName) {
return context.getBean(beanName);
}
/**
* 方法用于获取数据操作对象即DAO对象。
*
* @param beanName
* @return
*/
public static Object getDAOObject(String beanName) {
return context.getBean(beanName);
}
/**
* 在应用程序关闭时,清空spring框架配置信息。
*/
public static void clear() {
if (context != null) {
context = null;
}
}
}
3.Filter
package com.jrnt.common;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
4.SpringListener
package com.jrnt.common;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SpringListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
String relativePath = sce.getServletContext().getInitParameter(
"springConfig");
String realPath = sce.getServletContext().getRealPath(relativePath);
BeanFactory.init(realPath);
this.configBaseInfos(sce);
}
public void contextDestroyed(ServletContextEvent sce) {
BeanFactory.clear();
}
private void configBaseInfos(ServletContextEvent sce) {
}
}
5.hibernate持久类
package com.jrnt.persistence.userms;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class AppUser implements Serializable {
/** persistent field */
private String bh;
/** persistent field */
private String jh;
/** persistent field */
private String mm;
/** persistent field */
private String zt;
/** persistent field */
private String zgshjb;
/** persistent field */
private String dwdh;
/** persistent field */
private String xm;
/** persistent field */
private String ndshjb;
/** persistent field */
private String ndshqx;
/** persistent field */
private String zgshqx;
/** full constructor */
public AppUser(String bh, String jh, String mm, String zt, String zgshjb,
String dwdh, String xm, String ndshjb, String ndshqx, String zgshqx) {
this.bh = bh;
this.jh = jh;
this.mm = mm;
this.zt = zt;
this.zgshjb = zgshjb;
this.dwdh = dwdh;
this.xm = xm;
this.ndshjb = ndshjb;
this.ndshqx = ndshqx;
this.zgshqx = zgshqx;
}
/** default constructor */
public AppUser() {
}
public String getBh() {
return this.bh;
}
public void setBh(String bh) {
this.bh = bh;
}
public String getJh() {
return this.jh;
}
public void setJh(String jh) {
this.jh = jh;
}
public String getMm() {
return this.mm;
}
public void setMm(String mm) {
this.mm = mm;
}
public String getZt() {
return this.zt;
}
public void setZt(String zt) {
this.zt = zt;
}
public String getZgshjb() {
return this.zgshjb;
}
public void setZgshjb(String zgshjb) {
this.zgshjb = zgshjb;
}
public String getDwdh() {
return this.dwdh;
}
public void setDwdh(String dwdh) {
this.dwdh = dwdh;
}
public String getXm() {
return this.xm;
}
public void setXm(String xm) {
this.xm = xm;
}
public String getNdshjb() {
return this.ndshjb;
}
public void setNdshjb(String ndshjb) {
this.ndshjb = ndshjb;
}
public String getNdshqx() {
return this.ndshqx;
}
public void setNdshqx(String ndshqx) {
this.ndshqx = ndshqx;
}
public String getZgshqx() {
return this.zgshqx;
}
public void setZgshqx(String zgshqx) {
this.zgshqx = zgshqx;
}
public String toString() {
return new ToStringBuilder(this).toString();
}
}
配置文件
6.Session
接口
package com.jrnt.userms.logic;
import com.jrnt.persistence.userms.AppUser;
public interface UserLoginSession {
public AppUser checkLogin(String username, String userpassword);
public boolean updataPassword(AppUser appUser);
}
实例化类
package com.jrnt.userms.logic.impl;
import com.jrnt.userms.logic.UserLoginSession;
import com.jrnt.persistence.userms.AppUser;
import com.jrnt.common.BeanFactory;
import com.jrnt.userms.dao.AppUserLoginDao;
public class UserLoginSessionImpl extends BeanFactory implements
UserLoginSession {
private AppUserLoginDao appUserLoginDao;
public void setAppUserLoginDao(AppUserLoginDao appUserLoginDao) {
this.appUserLoginDao = appUserLoginDao;
}
public AppUser checkLogin(String username, String userpassword) {
return this.appUserLoginDao.findByCount(username, userpassword);
}
public boolean updataPassword(AppUser appUser) {
return appUserLoginDao.updataPassword(appUser);
}
}
7.DAO
接口
package com.jrnt.userms.dao;
import com.jrnt.persistence.userms.AppUser;
public interface AppUserLoginDao {
public AppUser findByCount(String username, String userpassword);
public boolean updataPassword(AppUser appUser);
}
实例化类
package com.jrnt.userms.dao.impl;
import java.util.List;
import com.jrnt.userms.dao.AppUserLoginDao;
import com.jrnt.common.BaseDAO;
import com.jrnt.persistence.userms.AppUser;
public class AppUserLoginDaoImpl extends BaseDAO implements AppUserLoginDao {
public AppUser findByCount(String username, String userpassword) {
String Sql = "from AppUser as t where t.yhm='" + username
+ "' and t.mm='" + userpassword + "'";
List list = super.getHibernateTemplate().find(Sql);
if (list.size() > 0) {
return (AppUser) list.get(0);
}
return null;
}
public boolean updataPassword(AppUser appUser) {
try {
super.getHibernateTemplate().update(appUser);
return true;
} catch (Exception ex) {
return false;
}
}
}
8.STRUTS
actionform
package com.jrnt.userms.struts.form;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
public class UserloginForm extends ActionForm {
private String username;
private String userpassword;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public String getUserpassword() {
return userpassword;
}
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
return null;
}
public void reset() {
username = null;
userpassword = null;
}
}
action
package com.jrnt.userms.struts.action;
import javax.servlet.http.*;
import com.jrnt.common.BeanFactory;
import com.jrnt.persistence.userms.AppUser;
import com.jrnt.userms.logic.UserLoginSession;
import com.jrnt.userms.struts.form.UserloginForm;
import org.apache.struts.action.*;
public class UserloginAction extends Action {
private AppUser appuser;
private String username;
private String userpassword;
UserLoginSession userloginsession = (UserLoginSession) BeanFactory
.getBusinessOjbect("UserLoginSession");
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserloginForm userloginForm = (UserloginForm) form;
this.username = userloginForm.getUsername();
this.userpassword = userloginForm.getUserpassword();
HttpSession session = request.getSession(true);
session.removeAttribute("USER_ID");
this.appuser = userloginsession.checkLogin(this.username,
this.userpassword);
if (appuser == null) {
session.setAttribute("errMsg", "error!");
userloginForm.reset();
return mapping.findForward("loginagin");
} else {
session.setAttribute("USER_ID", this.username);
return mapping.findForward("index");
}
}
}
配置文件
web.xml
sgms
springConfig
/WEB-INF/springbeans.xml
Set Character Encoding
com.jrnt.common.SetCharacterEncodingFilter
encoding
GBK
Set Character Encoding
/*
com.jrnt.common.SpringListener
action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
2
2
action
*.do
http://java.sun.com/jstl/core
/WEB-INF/c.tld
http://java.sun.com/jstl/core_rt
/WEB-INF/c-rt.tld
http://java.sun.com/jstl/xml
/WEB-INF/x.tld
http://java.sun.com/jstl/xml_rt
/WEB-INF/x-rt.tld
http://java.sun.com/jstl/fmt
/WEB-INF/fmt.tld
http://java.sun.com/jstl/fmt_rt
/WEB-INF/fmt-rt.tld
http://java.sun.com/jstl/sql
/WEB-INF/sql.tld
http://java.sun.com/jstl/sql_rt
/WEB-INF/sql-rt.tld
/WEB-INF/struts-bean.tld
/WEB-INF/struts-bean.tld
/WEB-INF/struts-html.tld
/WEB-INF/struts-html.tld
/WEB-INF/struts-logic.tld
/WEB-INF/struts-logic.tld
/WEB-INF/struts-tiles.tld
/WEB-INF/struts-tiles.tld
/WEB-INF/struts-nested.tld
/WEB-INF/struts-nested.tld
springbeans.xml
java:/SgmsDS
false
true
100
80
com/jrnt/persistence/userms/AppUser.hbm.xml
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly
struts-config.xml
上述代码的业务逻辑有所省略。
配置JBOSS和JNDI(根据自己的实际情况进行配置)
如上述代码有什么问题请联系我 谢谢 QQ284926629 EMAIL
angus1923@sina.com
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19695/showart_156884.html |
|