天天看点

struts+hibernate简单实例

工程已上传http://download.csdn.net/source/2195248

 

工程目录

struts+hibernate简单实例

 

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<form action="../login.do" method="post">

<input type="text" name="username" value=""/>

<input type="password" name="password" value=""/>

<input type="submit" value="Login"/>

</form>

</body>

</html> 

web.xml

……

<web-app>

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>2</param-value>

</init-param>

<init-param>

<param-name>detail</param-name>

<param-value>2</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

…… 

struts-config.xml

<?xml version="1.0"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<data-sources>

</data-sources>

<form-beans>

<form-bean name="login" type="Form.LoginForm"/>

</form-beans>

<global-exceptions>

</global-exceptions>

<global-forwards>

</global-forwards>

<action-mappings>

<action path="/login" type="Action.LoginAction" name="login" scope="request">

<forward name="success" path="/jsp/right.jsp"/>

<forward name="failure" path="/jsp/error.jsp"/>

</action>

</action-mappings>

<controller/>

</struts-config>

 

LoginForm.java

package Form;

import org.apache.struts.action.ActionForm;

public class LoginForm extends ActionForm {

private String username;

private String password;

//无参构造函数与Setter Getter方法必须

public LoginForm(){

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

}

 

LoginAction.java

package Action;

import org.apache.struts.action.*;

import Form.LoginForm;

import javax.servlet.http.*;

import Hibernate.hibernate;

import Bean.User;

public class LoginAction extends Action {

public ActionForward execute(ActionMapping mapping,ActionForm form,

HttpServletRequest request ,HttpServletResponse response){

//获得表单映射,取出属性值

LoginForm loginForm = (LoginForm)form;

String username=loginForm.getUsername();

String password = loginForm.getPassword();

//hibernate持久层实现查询业务

hibernate hiber = new hibernate();

User user = hiber.queryUser(username);

//页面映射跳转

if(user==null)

return mapping.findForward("failure");

else if(!user.getPassword().equals(password)){

return mapping.findForward("failure");

}

else

return mapping.findForward("success");

}

}

 

User.java

package Bean;

public class User {

//实现Setter Getter方法,属性名字与User.hbm.xml配置文件内设置名对应

private String username;

private String password;

public User(String username,String password){

this.username=username;

this.password=password;

}

public User(){}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

} 

User.hbm.xml

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

<!DOCTYPE hibernate-mapping PUBLIC

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

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

<hibernate-mapping>

<class

name="Bean.User" table="user">

<id name="username" type="java.lang.String" column="username" >

<generator class="assigned" />

</id>

<property name="password" type="java.lang.String" column="password">

</property>

</class>

</hibernate-mapping> 

hibernate.cfg.xml

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

<!DOCTYPE hibernate-configuration PUBLIC

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

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

<hibernate-configuration>

<session-factory>

<!-- 显示实际操作数据库时的SQL -->

<property name="show_sql">true</property>

<!-- JDBC 驱动程序 -->

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<!-- JDBC URL -->

<property name="connection.url">jdbc:mysql://localhost:3306/Wilford</property>

<!-- 数据库使用者 -->

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

<!-- 数据库密码 -->

<property name="password">root</property>

<!-- SQL 方言,这边设定的是MySQL -->

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- 以下设置对象与数据库表格映像文件 -->

<mapping resource="Bean/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

 

hibernate.java

package Hibernate;

import org.hibernate.*;

import org.hibernate.cfg.Configuration;

import Bean.User;

import java.util.*;

public class hibernate {

//会话工厂,用于创建会话

private static final SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();

//返回指定username的User对象

public User queryUser(String username){

User user;

ArrayList list;

//hibernate会话

Session session=sessionFactory.openSession();

//hiberante事务

Transaction tx=session.beginTransaction();

String hql="from User as user where user.username=?";

list=(ArrayList)session.createQuery(hql).setString(0,username).list();

tx.commit();

session.close();

if(list.size()>0)

user=(User)list.get(0);

else

user=null;

return user;

}

}

 

Â