今天可以学习struts+hibernate框架的开发,有点小激动
。
一、建立新的web project----testsh 。
二、搭建框架:右键项目—MyEclipse—Project Facets—install Apache Struts(2.x) Facet / install Hibernate Facet
三、和前面的项目一样,需要建立的 jsp文件:login.jsp、success.jsp、false.jsp 。
项目目录结构:
四、web.xml配置文件(配置struts,搭建框架后自动生成):
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>五、hibernate.cfg.xml配置文件 (搭建框架后自动生成)
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">Admin123</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">mybase</property>
<mapping resource="com/ssh/TUser.hbm.xml" />
</session-factory>六、src目ssh包下的内容(都为搭建框架后自动生成):
TUser.java中核心代码:
package com.ssh;
public class TUser implements java.io.Serializable {
private Integer id;
private String mame;
private String password;
public TUser() {
}
public TUser(String mame, String password) {
this.mame = mame;
this.password = password;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMame() {
return this.mame;
}
public void setMame(String mame) {
this.mame = mame;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}TUser.hbm.xml配置文件:
<hibernate-mapping>
<class name="com.ssh.TUser" table="t_user" catalog="test">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="mame" type="java.lang.String">
<column name="mame" length="20" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" not-null="true" />
</property>
</class>
</hibernate-mapping>HibernateSessionFactory.java中的核心代码:
package com.ssh.entity;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateSessionFactory {
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static org.hibernate.SessionFactory sessionFactory;
private static Configuration configuration = new Configuration();
private static ServiceRegistry serviceRegistry;
static {
try {
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory() {
}
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
public static void rebuildSessionFactory() {
try {
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder() .applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Configuration getConfiguration() {
return configuration;
}
}
核心代码:
package com.action;
import com.service.LoginService;
import com.ssh.TUser;
public class LoginAction {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
LoginService loginser = new LoginService();
TUser u = loginser.login(name, password);
if(u!=null){
return "SUCCESS";
}else{
return "ERROR";
}
}
}
package com.service;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.ssh.TUser;
import com.ssh.entity.HibernateSessionFactory;
public class LoginService {
TUser user = null;
//HibernateSessionFactory hf = null;
public TUser login(String name,String password){
Session session = HibernateSessionFactory.getSession();
Transaction ts = session.beginTransaction();
String hql = "from TUser as u where u.mame=? and u.password=?";
Query query = session.createQuery(hql);
query.setParameter(0, name);
query.setParameter(1, password);
user = (TUser)query.uniqueResult();
ts.commit();
return user;
}
}
八、配置struts.xml文件:
<struts>
<package name="testsh" extends="struts-default">
<action name="loginss" class="com.action.LoginAction">
<result name="SUCCESS">success.jsp</result>
<result name="ERROR">false.jsp</result>
</action>
</package>
</struts> 九、运行结果:
ko~
本文介绍如何基于Struts2.0和Hibernate框架开发一个登录模块。首先创建名为testsh的Web项目,然后通过MyEclipse安装Struts2和Hibernate Facet。接着配置jsp文件如login.jsp、success.jsp和false.jsp。最后,在web.xml中进行Struts配置,并展示了TUser.java中的关键代码。
609

被折叠的 条评论
为什么被折叠?



