- 浏览: 201513 次
- 性别:
- 来自: 包头
最新评论
-
chengeng:
图片没有显示。
登录系统-基于struts2+spring+hibernate分层架构 -
chengeng:
不知为什么,图片没有显示出来。
登录系统-基于struts2+spring+hibernateJPA分层架构 -
rdz09:
解析得很详细,不错
从头学起:struts2(1) -
zxd543:
图怎么都看不见呢?
登录系统-基于struts2+spring+hibernate分层架构 -
huweijie:
...
JAVA语言程序设计-第九章 异常处理
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映射文件和POJO(Plain 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
发表评论
-
确认对话框ConfirmDialog和选择对话框OptionDialog:猜数游戏
2012-04-07 18:22 30935确认对话框ConfirmDialog给出提示信息和若干 ... -
输入对话框showInputDialog综合应用:猜数游戏
2012-04-06 17:13 7246Java输入对话框共有6个重载方法showInputDi ... -
消息对话框MessageDialog综合应用:九九表
2012-04-01 23:39 22601java信息对话框:MessageDialog是一个非常 ... -
从头学起:struts2(1)
2011-12-15 23:10 1421从头学起:struts2(1)从页面跳转说起:先看一个例子,使 ... -
登录系统-基于struts2+spring+hibernateJPA分层架构
2011-12-08 21:27 19171、新建一个mysql数据库,并新建连接,数据库结构如下图所示 ... -
登录系统-基于struts2+spring+hibernate分层架构
2011-11-29 21:43 34541、创建mysql数据库,结构如下图所示: 2、 ... -
依赖注入入门-从dao到service
2011-11-23 18:30 8194在分层的web应用系统中,通常将数据操作分为dao数据层和se ... -
登录系统-基于struts2+hibernate分层架构
2011-11-21 23:07 296本实验使用struts+hibernate分层结构,目的是可以 ... -
登录系统-基于servlet+hibernate分层架构
2011-11-21 12:13 3224本实验使用servlet+hibernate分层结构,目的是 ... -
登录系统-基于struts2的分层架构
2011-11-19 21:48 28101.下载支持Netbeans7.0的Struts2插件,在工具 ... -
登录系统-基于servlet
2011-11-19 19:48 31751. 新建一个web项目,在项目中添加两个包:Ja ... -
基于NetBeans7.0的Hibernate编程入门
2011-11-19 11:47 1541基于NetBeans7.0的 Hebernate入门 ... -
实验13 数据库的连接:JDBC*
2011-03-28 22:02 1277一、实验目的 了解JDBC核心API,利用JDBC核心API ... -
实验14 JSP与Servlet技术*
2011-03-28 22:01 1304一、实验目的 1. 理解JSP元素的概念 2. 理解JSP ... -
实验12 网络编程
2011-03-28 21:59 1247一、实验目的 1. 掌握InetAddress类的使用。 2 ... -
实验11 线程
2011-03-28 21:59 903一、实验目的 1. 线程 ... -
实验10 流与文件
2011-03-28 21:58 1022一、实验目的 1. 理解数据流的概念 2. 理解Java流的 ... -
实验 9 综合练习
2011-03-28 21:57 818一、实验目的 将所学知识进行综合运用,模仿设计具有实 ... -
实验 8 图形与多媒体处理
2011-03-28 21:56 936一、实验目的 熟悉图形、图像的使用方法,理解计算机动画 ... -
实验 7 建立图形用户界面
2011-03-28 21:54 1409一、实验目的 了解图形用户界面基本组件窗口、按钮、文本 ...
相关推荐
基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统 基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统 基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统 基于Servlet+JSP+Struts2+Hibernate4开发的...
【标题】"jsp+servlet+hibernate+购物车系统"是一个基于Web的电商应用程序,它结合了三种核心技术:JavaServer Pages(JSP)、Servlet和Hibernate。这个系统旨在实现一个完整的购物过程,包括商品浏览、选择商品加入...
**Java项目案例--基于Struts+Hibernate网上书城系统** 这个项目案例是使用Java技术栈构建的一个典型的企业级应用,主要采用了Struts作为MVC框架,Hibernate作为对象关系映射(ORM)工具,来实现一个功能完备的网上...
综合以上所述,这本“java web 实战宝典_JSP+Servlet+Struts_2+Hibernate+Spring+Ajax”涵盖了JSP和Servlet作为Web基础技术的知识,以及Struts 2、Spring、Hibernate三个主流的SSH框架,并且提供了Ajax技术的应用...
《电子商店管理系统:基于jsp、servlet和hibernate的实现》 电子商店管理系统是现代商业活动中不可或缺的一部分,它能够高效地处理商品信息、订单管理、用户交互等业务流程。本系统采用jsp(JavaServer Pages)、...
在"J2EE--Eclipse+Struts+Hibernate+Spring"的环境下,开发者通常会按照以下步骤进行开发: 1. **环境搭建**:首先安装Eclipse,然后通过插件如Spring Tool Suite(STS)来增强对Spring的支持。接着,配置JDK和J2EE...
资源名字:基于JSP+Spring+Hibernate+Struts2+mysql的毕业生离校管理系统设计与实现(源码+文档).zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 包含模块: ...
- **Hibernate简介**:Hibernate是一个开源的对象关系映射(ORM)框架,它可以将对象模型映射到基于SQL的关系数据库中。通过Hibernate,开发者可以使用面向对象的方式来操作数据库。 - **Hibernate核心概念**: - *...
本资料集合了"零基础学Java_Web开发:JSP+Servlet+Struts+Spring+Hibernate+Ajax",涵盖了从初级到进阶的重要概念,帮助初学者系统地掌握Web开发技能。 1. **JSP(JavaServer Pages)技术**: JSP是Java平台上的...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...基于Servlet+JSP+Struts2+Hibernate4开发的房屋租赁系统源码.zip
《基于jsp+servlet+mysql的实验室设备管理系统》 在当今的信息化时代,实验室设备管理系统的构建对于提升实验教学效率、优化资源分配具有重要意义。本文将深入探讨一个基于jsp、servlet和mysql技术栈的实验室设备...
《构建电子相册系统:Spring、Hibernate、Servlet与jQuery的深度整合》 在现代互联网应用中,电子相册系统已经成为用户存储、分享个人照片的重要平台。本系统利用Java技术栈,结合Spring、Hibernate、Servlet和...
总结起来,本教程全面讲解了基于Struts 2、Spring 3和Hibernate的网上订餐管理系统开发,涵盖了数据库设计、框架集成、业务逻辑实现等多个方面,对于提升Java EE开发者的技能水平具有很高的参考价值。通过学习和实践...
部署时,可以选择Tomcat、Jetty等Servlet容器,结合JNDI配置数据库连接,实现系统的快速部署和运行。 综上,这个基于SSH2的自行车租赁管理系统展示了JavaWeb开发中的常见技术和实践,为类似业务场景提供了参考。...
在这个“基于struts+spring+hibernate+jbpm的外贸服装企业的工作流系统”中,开发者可能设计了以下功能: 1. **用户管理**:包括用户注册、登录、权限管理等,确保不同角色的用户只能访问其权限范围内的功能。 2. *...