`

登录系统-基于servlet+hibernate

阅读更多



 

 1.
新建一个java web项目,在步骤4中选择Hibernate3.2.5选项(如果没有建好数据库连接,可以在此建立连接):



 

 

这时netbeans自动生成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>

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

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

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

    <property name="hibernate.connection.username">root</property>

    <property name="hibernate.connection.password">123456</property>

  </session-factory>

</hibernate-configuration>

这个文件在系统中添加了连接数据库的驱动程序以及所连接的数据库、用户名和密码。

2. 使用Hibernate逆向工程向导生成hibernate.reveng.xml文件,如图所示添加选中的数据表。

 

 

 

自动生成的文件:hibernate.reveng.xml

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

<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN"

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

<hibernate-reverse-engineering>

  <schema-selection match-catalog="book"/>

  <table-filter match-name="admin"/>

</hibernate-reverse-engineering>

这个文件在系统中注册了数据库“book”和数据表“admin”。

3. 使用Hibernate向导生成Hibernate映射文件和POJOPlain Ordinary Java Object)文件:

 

 


 
 

生成的POJO文件是:

 

Admin.java

package javahibernate;

// Generated 2011-11-19 10:57:36 by Hibernate Tools 3.2.1.GA

 

/**

 * Admin generated by hbm2java

 */

public class Admin  implements java.io.Serializable {

     private int UId;

     private String UName;

     private String UPass;

   

public Admin() {

    }

    public Admin(int UId) {

        this.UId = UId;

    }

    public Admin(int UId, String UName, String UPass) {

       this.UId = UId;

       this.UName = UName;

       this.UPass = UPass;

    }

  

    public int getUId() {

        return this.UId;

    }

   

    public void setUId(int UId) {

        this.UId = UId;

    }

    public String getUName() {

        return this.UName;

    }

   

    public void setUName(String UName) {

        this.UName = UName;

    }

    public String getUPass() {

        return this.UPass;

    }

   

    public void setUPass(String UPass) {

        this.UPass = UPass;

    }

}

生成的Hibernate映射文件是:

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

<!-- Generated 2011-11-19 10:57:36 by Hibernate Tools 3.2.1.GA -->

<hibernate-mapping>

    <class name="javahibernate.Admin" table="admin" catalog="book">

        <id name="UId" type="int">

            <column name="u_id" />

            <generator class="assigned" />

        </id>

        <property name="UName" type="string">

            <column name="u_Name" length="20" />

        </property>

        <property name="UPass" type="string">

            <column name="u_Pass" length="20" />

        </property>

    </class>

</hibernate-mapping>

 

此时Hibernate配置文件hibernate.cfg.xml中,在<session-factory>标记内增加了映射信息:

<mapping resource="javahibernate/Admin.hbm.xml"/>

这两个文件构成了hibernate框架的核心基础:关系数据库到对象的映射,通过映射我们可以在项目中使用面向对象的编程技术。

到此为止,基于Hibernate的持久化工作已准备就绪。所有的工作基本上是自动完成的。

4.添加一个servlet类:LoginServlet,在步骤3中选中“将信息添加到部署描述符”选项。如图:



 

LoginServlet.java文件加入如下代码:

package hibernate;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import org.hibernate.Criteria;

import org.hibernate.criterion.Expression;

import java.util.List;

 

public class LoginServlet extends HttpServlet {

 

    /**

     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");

        // 获取提交的用户名:

       String UserName = request.getParameter("logname");

       // 获取提交的密码:

       String Password = request.getParameter("logpwd");         

 

              //核对用户名和密码,决定是否通过登陆验证

       Configuration cfg=new Configuration().configure();

        SessionFactory sessionFactory=cfg.buildSessionFactory();

        Admin user=new Admin();       

        Session session1=sessionFactory.openSession();

        Criteria criteria=session1.createCriteria(Admin.class);

        criteria.add(Expression.eq("UName",UserName));

        criteria.add(Expression.eq("UPass",Password));

        List list=criteria.list();       

        session1.close();

        sessionFactory.close();

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

            // 登录成功时,strUserName设成session变量UserName

            request.getSession(true).setAttribute("username", UserName);

            try {

                request.getRequestDispatcher("accesspage.jsp").forward(request,response);

            }catch (Throwable t) {

              getServletContext().log(t.getMessage());

            }

       } else {

            // 否则(记录集为空),表明失败:

            request.setAttribute("error", "用户名与密码不匹配,登录失败,请重试!");

            try {

              request.getRequestDispatcher("Login.jsp").forward(request, response);

            }

            catch (Throwable t) {

                getServletContext().log(t.getMessage());

            }

       }

   }

 

 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**

     * Handles the HTTP <code>GET</code> method.

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    /**

     * Handles the HTTP <code>POST</code> method.

     * @param request servlet request

     * @param response servlet response

     * @throws ServletException if a servlet-specific error occurs

     * @throws IOException if an I/O error occurs

     */

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        processRequest(request, response);

    }

 

    /**

     * Returns a short description of the servlet.

     * @return a String containing servlet description

     */

    @Override

    public String getServletInfo() {

        return "Short description";

    }// </editor-fold>

}

 

打开web.xml文件,可以看到如下关于servlet的部署设置:

<servlet>

        <servlet-name>LogServlet</servlet-name>

        <servlet-class>hibernate.LoginServlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>LogServlet</servlet-name>

        <url-pattern>/LoginServlet</url-pattern>

    </servlet-mapping>

 

5.创建如下两个页面:

login.jsp

<%@ page pageEncoding="UTF-8" %>

<%@ page contentType="text/html; charset=gb2312" %>

<% request.setCharacterEncoding("gb2312"); %>

<%@ page language="java" %>

<html>  

         <head><title>登录网页</title></head>

       <body>

       <form method="POST" action="./LoginServlet">

 

       <table  >

           <tr>

             <td width="890" align="left" colspan="2">

              <b><font size="5">系统登录</font></b>

               <hr>

             </td>

           </tr>

            <% if (request.getAttribute("error") != null){ %>

       <tr>

              <td width=100% align=center colspan=4 height=36>

                   <font color=red><b><%=request.getAttribute("error")%></b></font>

              </td>

       </tr>

       <%

     }

       %>

           <tr>

             <td width="75" align="center">

               <p align="right">账号:</p>

             </td>

             <td width="809" align="center">

               <p align="left">

                <input type="text" name="logname" size="20"></td>

           </tr>

           <tr>

             <td width="75" align="center">

               <p align="right">密码:</p>

             </td>

             <td width="809" align="center">

               <p align="left">

               <input type="password" name="logpwd" size="20">

               <input type="submit" value="登录" name="loginButton"></td>

           </tr>

         </table>

       </form>

       </body>

       </html>

accesspage.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>登录成功</title>

    </head>

    <body>

        <h1>Hello

            <% if (request.getAttribute("username") != null){ %>       

              <font color=red>

                     <b>

                         <%=request.getAttribute("username")%>

                     </b>

                </font>  

            <%

                }

            %>

         !</h1>

    </body>

</html>

6.生成项目,并运行http://localhost:8080/login/login.jsp

  • 大小: 125.8 KB
  • 大小: 21.8 KB
  • 大小: 21.6 KB
  • 大小: 32.9 KB
1
1
分享到:
评论

相关推荐

    基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统.zip

    基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统 基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统 基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统 基于Servlet+JSP+Struts2+Hibernate4开发的...

    jsp+servlet++hibernate+购物车系统

    【标题】"jsp+servlet+hibernate+购物车系统"是一个基于Web的电商应用程序,它结合了三种核心技术:JavaServer Pages(JSP)、Servlet和Hibernate。这个系统旨在实现一个完整的购物过程,包括商品浏览、选择商品加入...

    Java项目案例--基于Struts+hibernate网上书城系统

    **Java项目案例--基于Struts+Hibernate网上书城系统** 这个项目案例是使用Java技术栈构建的一个典型的企业级应用,主要采用了Struts作为MVC框架,Hibernate作为对象关系映射(ORM)工具,来实现一个功能完备的网上...

    java web 实战宝典_JSP+Servlet+Struts_2+Hibernate+Spring+Ajax

    综合以上所述,这本“java web 实战宝典_JSP+Servlet+Struts_2+Hibernate+Spring+Ajax”涵盖了JSP和Servlet作为Web基础技术的知识,以及Struts 2、Spring、Hibernate三个主流的SSH框架,并且提供了Ajax技术的应用...

    电子商店管理系统 jsp+servlet+hibernate+数据库

    《电子商店管理系统:基于jsp、servlet和hibernate的实现》 电子商店管理系统是现代商业活动中不可或缺的一部分,它能够高效地处理商品信息、订单管理、用户交互等业务流程。本系统采用jsp(JavaServer Pages)、...

    J2EE--Eclipse+Struts+Hibernate+Spring

    在"J2EE--Eclipse+Struts+Hibernate+Spring"的环境下,开发者通常会按照以下步骤进行开发: 1. **环境搭建**:首先安装Eclipse,然后通过插件如Spring Tool Suite(STS)来增强对Spring的支持。接着,配置JDK和J2EE...

    基于JSP+Spring+Hibernate+Struts2+mysql的毕业生离校管理系统设计与实现(源码+文档).zip

    资源名字:基于JSP+Spring+Hibernate+Struts2+mysql的毕业生离校管理系统设计与实现(源码+文档).zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 包含模块: ...

    JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发(第3版)

    - **Hibernate简介**:Hibernate是一个开源的对象关系映射(ORM)框架,它可以将对象模型映射到基于SQL的关系数据库中。通过Hibernate,开发者可以使用面向对象的方式来操作数据库。 - **Hibernate核心概念**: - *...

    零基础学Java_Web开发:JSP+Servlet+Struts+Spring+Hibernate+Ajax

    本资料集合了"零基础学Java_Web开发:JSP+Servlet+Struts+Spring+Hibernate+Ajax",涵盖了从初级到进阶的重要概念,帮助初学者系统地掌握Web开发技能。 1. **JSP(JavaServer Pages)技术**: JSP是Java平台上的...

    基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统源码.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统源码.zip

    基于jsp+servlet+mysql的实验室设备管理系统.zip

    《基于jsp+servlet+mysql的实验室设备管理系统》 在当今的信息化时代,实验室设备管理系统的构建对于提升实验教学效率、优化资源分配具有重要意义。本文将深入探讨一个基于jsp、servlet和mysql技术栈的实验室设备...

    电子相册系统 Spring+hibernate+servlet+jquery

    《构建电子相册系统:Spring、Hibernate、Servlet与jQuery的深度整合》 在现代互联网应用中,电子相册系统已经成为用户存储、分享个人照片的重要平台。本系统利用Java技术栈,结合Spring、Hibernate、Servlet和...

    网上订餐管理系统-Struts 2+Spring 3+Hibernate框架技术精讲与整合案例

    总结起来,本教程全面讲解了基于Struts 2、Spring 3和Hibernate的网上订餐管理系统开发,涵盖了数据库设计、框架集成、业务逻辑实现等多个方面,对于提升Java EE开发者的技能水平具有很高的参考价值。通过学习和实践...

    毕业设计-Struts2+Hibernate4.2+Spring3的自行车租赁管理系统

    部署时,可以选择Tomcat、Jetty等Servlet容器,结合JNDI配置数据库连接,实现系统的快速部署和运行。 综上,这个基于SSH2的自行车租赁管理系统展示了JavaWeb开发中的常见技术和实践,为类似业务场景提供了参考。...

    基于struts+spring+hibernate+jbpm的工作流系统

    在这个“基于struts+spring+hibernate+jbpm的外贸服装企业的工作流系统”中,开发者可能设计了以下功能: 1. **用户管理**:包括用户注册、登录、权限管理等,确保不同角色的用户只能访问其权限范围内的功能。 2. *...

Global site tag (gtag.js) - Google Analytics