首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一个hibernate登录登记工程

2012-10-09 
一个hibernate登录注册工程项目名称:loginandregister.其目录:loginandregister|----src| -----hibernate.

一个hibernate登录注册工程
项目名称:loginandregister.

其目录:

loginandregister

|----src

    | -----hibernate.yan

        | -----LoginServlet.java

        |-----RegisterServlet.java

        | ---- User.java

        | -----WriterDB.java

        | -----user.hbm.xml

    | -----hibernate.cfg.xml

|----jre sytem library

|---J2EE 1.4 Library

|---Referenced Library

|---WebRoot

    |----Weta-inf

    |----WEB-INF

          |----lib

          |-----web.xml

    |-----login.jsp

    |-----register.jsp

新建web project,命名为loginandregister,右击工程名,Myeclispe—>Add hibernate capabilities

将hibernate的jar包加入,当然也可以通过项目属性—>构建路径,加入。

web.xml内容为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
     <servlet-name>RegisterServlet</servlet-name>
     <servlet-class>hibernate.yan.RegisterServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>RegisterServlet</servlet-name>
     <url-pattern>/RegisterServlet</url-pattern>
  </servlet-mapping>
 
  <servlet>
     <servlet-name>LoginServlet</servlet-name>
     <servlet-class>hibernate.yan.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>LoginServlet</servlet-name>
     <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>
</web-app>
user.hbm.xml内容为:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="hibernate.yan.User" table="user">
   <id name="id">
    <generator />
   </id>
   <property name="name" type="string" >
      <column name="name"></column>
      </property>
   <property name="password" type="string" >
      <column name="password"></column>
      </property>
   <property name="phonetype" type="int" >
      <column name="phonetype"></column>
      </property>
</class>
</hibernate-mapping>

hibernate.cfg.xml为:

<?xml version='1.0' encoding='gbk'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.-->
<hibernate-configuration>

<session-factory>

<!--统一设置成UTF-8编码-->
   <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
   <property name="connection.url">jdbc:mysql://localhost/lrdatabase?useUnicode=true&amp;characterEncoding=UTF-8</property>
   <property name="connection.username">root</property>
   <property name="connection.password">123456</property>
   <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  
  
<!--一些可选性能参数设置--> 

<!-- Enable Hibernate's automatic session context management-->
   <property name="current_session_context_class">
    thread</property>
   <!-- Disable the second-level cache -->
   <property name="cache.provider_class">
    org.hibernate.cache.NoCacheProvider</property>
   <!-- Echo all executed SQL to stdout -->
   <property name="show_sql">true</property>

   <mapping resource="hibernate/yan/user.hbm.xml" />

</session-factory>
</hibernate-configuration>



login.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%request.setCharacterEncoding("GBK"); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录页面</title>
</head>
<body> 
      <form action="<%=request.getContextPath() %>/LoginServlet">
        <table align="center" border=0 width="400" height="100" cellspacing="0">
           <tr align="center"><td>用户登录</td></tr>
           <tr>
              <td><font size="5">username:</font></td>
              <td>
                <input type="text" name="username"/>
              </td>
           </tr>
           <tr>
              <td><font size="5">password:</font></td>
              <td>
                <input type="password" name="password"/>
              </td>
           </tr>
           <tr>
           <td><input type="submit" name="login" value="login"/></td>
           <td><a  href="register.jsp" target="_blank">注 册</a>
           </td>
           </tr>
        </table>
      </form>
</body>
</html>

register.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>注册页面</title>
</head>
<body>
<span >注册</span>
<form id="form1" name="form1" method="post" action="<%=request.getContextPath() %>/RegisterServlet">
   <table align="center" width="571" height="165"border="0" cellspacing="0" >
       <tr>
        <td>请输入名称:</td>
        <td>
          <input name="name" type="text">
        </td>
       </tr>
     
       <tr>
        <td>请输入密码:</td>
        <td>
          <input name="password" type="text">
        </td>
       </tr>
       <tr>
        <td>请选择手机型号:</td>
        <td>
          <select name="phonetype" >
            <option value="1">
              phone1
            </option>
             <option value="2">
              phone2
            </option>
             <option value="3">
              phone3
            </option>
          </select>
        </td>
       </tr>
   </table>
   <div align="center">
  <input name="submit" type="submit" value="submit" />
   </div>
</form>
</body>
</html>

loginServlet.java:

public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  resp.setContentType("text/html;charset=utf-8");
  String name=req.getParameter("username");
  String ssname = new String(name.getBytes("iso-8859-1"),"utf-8");
  System.out.println("ss=:" + ssname);
  String password=req.getParameter("password");
  Transaction tx=null;
  Session session=null;
  PrintWriter out=resp.getWriter();
  String sql="from User where name='"+ssname+"' and password='"+password+"'";
  if(true)
  {
   try{
    Configuration conf=new Configuration().configure();
    SessionFactory sf=conf.buildSessionFactory();
    session=sf.openSession();
    tx=session.beginTransaction();
    System.out.println(sql);
    Query query=session.createQuery(sql);
    List list=(List) query.list();
    tx.commit();
       Iterator it=list.iterator();
       if(it.hasNext())
       {
        User user=(User) it.next();
        System.out.println(user.getName()+" "+user.getPassword()+" "+user.getPhonetype());
        out.println("<html>");
        out.println("<head><title>login</title></title>");
        out.println("<body>");
        out.println("successfully login: name:"+user.getName()+"  password:"+user.getPassword()+" phonetype:"+user.getPhonetype());
        out.println("</body></html>");
        out.close();
       }
       else
       {
        out.println("<html>");
        out.println("<head><title>login</title></title>");
        out.println("<body>");
        out.println("不存在此用户信息");
        out.println("</body></html>");
        out.close();
       }
   }catch(Exception e)
   {
    e.printStackTrace();
   }
  }
  else
  {
  
   out.println("<html>");
      out.println("<head><title>login</title></title>");
      out.println("<body>");
      out.println("请输入信息完整");
      out.println("</body></html>");
      out.close();
  }
}
}
RegisterServlet.java

public class RegisterServlet extends HttpServlet {

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  doPost(req, resp);
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  resp.setContentType("text/html;charset=utf-8");
  String name=req.getParameter("name");
  String password=req.getParameter("password");
  String phonetype=req.getParameter("phonetype");
  String ssname = new String(name.getBytes("iso-8859-1"),"utf-8");
  System.out.println(ssname+"  "+password);
  //int numofphonetype=Integer.getInteger(phonetype).intValue();//这句话导致异常
  int a=Integer.parseInt(phonetype);
  PrintWriter out=resp.getWriter();
  try{
   if(ssname!=""&&password!=""&&phonetype!="")
   {
    WriteDB writer=new WriteDB();
    writer.WriteLogToDB(ssname, password, a);
    out.print("注册成功");
   }
   else
   {
    out.print("请填写完整!");
   }
  }catch(Exception e)
  {
   out.print("Error :"+e.getMessage());
  }
}

public void destroy() {
  // TODO Auto-generated method stub
  super.destroy();
}

public void init() throws ServletException {
  // TODO Auto-generated method stub
  super.init();

}

WriterDB.java

public class WriteDB {
   public static SessionFactory sf;
  
   static {
    try{
  Configuration conf=new Configuration().configure();
  sf=conf.buildSessionFactory();
  System.out.println("sf=conf.buildSessionFactory()");
    }catch(Exception e)
    {
     e.printStackTrace();
    }
   }
   public void WriteLogToDB(String name,String password,int phonetype)
   {
    User user=new User();
    user.setName(name);
    user.setPassword(password);
    user.setPhonetype(phonetype);
    Session sessions=sf.openSession();
    Transaction tran=null;
    try{
     tran=sessions.beginTransaction();
     sessions.save(user);
     tran.commit();//提交
  //   System.out.println("已正常提交数据:"+con.getId()+" ,"+con.getLogcontent()+" ,"+con.getLogdate());
    }catch(Exception e)
    {
     if(tran!=null)
     {
      tran.rollback();
     }
    }finally
    {
     sessions.close();
    }
   
   }
}
User.java

public class User {
private int id;
private String name;
private String password;
private int phonetype;

public User() {

}

public int getId() {
  return id;
}

public void setId(int id) {
  this.id = id;
}

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 int getPhonetype() {
  return phonetype;
}

public void setPhonetype(int phonetype) {
  this.phonetype = phonetype;
}

}


数据库脚本:

/*
MySQL Data Transfer
Source Host: localhost
Source Database: lrdatabase
Target Host: localhost
Target Database: lrdatabase
Date: 2010-4-1 14:51:51
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
  `password` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
  `phonetype` tinyint(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf-8;

热点排行