热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

eclipse(struts2+spring3+hibernate3)

eclipse(struts2spring3hibernate3)案例下载:SSH整合包下载:struts2spring3hibernate31、右键

eclipse(struts2+spring3+hibernate3)



案例下载:SSH

整合包下载:struts2+spring3+hibernate3



1、右键新建web project
这里写图片描述
这里写图片描述




2、添加web.xml
这里写图片描述


<web-app version&#61;"3.0" xmlns&#61;"http://java.sun.com/xml/ns/javaee" xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation&#61;"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name>display-name> <welcome-file-list><welcome-file>index.jspwelcome-file>welcome-file-list><context-param><param-name>contextConfigLocationparam-name><param-value>classpath:applicationContext*.xmlparam-value>context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>listener><filter><filter-name>struts2filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>filter><filter-mapping><filter-name>struts2filter-name><url-pattern>*.actionurl-pattern>filter-mapping>web-app>



3、添加相关配置
这里写图片描述

applicationContext.xml


<beans
xmlns&#61;"http://www.springframework.org/schema/beans"xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xmlns:p&#61;"http://www.springframework.org/schema/p"xmlns:context&#61;"http://www.springframework.org/schema/context"xmlns:aop&#61;"http://www.springframework.org/schema/aop"xmlns:tx&#61;"http://www.springframework.org/schema/tx" xsi:schemaLocation&#61;"http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" default-autowire&#61;"byName">
<context:annotation-config /><context:component-scan base-package&#61;"com.gx.dao,com.gx.service" /><bean id&#61;"dataSource"class&#61;"org.apache.commons.dbcp.BasicDataSource"><property name&#61;"driverClassName"value&#61;"com.mysql.jdbc.Driver">property><property name&#61;"url"value&#61;"jdbc:mysql://127.0.0.1:3306/gxsoft?useUnicode&#61;true&characterEncoding&#61;utf-8">property><property name&#61;"username" value&#61;"root">property><property name&#61;"password" value&#61;"123">property>bean><bean id&#61;"sessionFactory"class&#61;"org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name&#61;"dataSource"><ref bean&#61;"dataSource" />property><property name&#61;"hibernateProperties"><props><prop key&#61;"hibernate.dialect">org.hibernate.dialect.MySQLDialectprop>props>property><property name&#61;"mappingResources"><list><value>com/gx/po/TbEmp.hbm.xmlvalue>list>property>bean><bean id&#61;"txManager" class&#61;"org.springframework.orm.hibernate3.HibernateTransactionManager"><property name&#61;"sessionFactory" ref&#61;"sessionFactory">property>bean><tx:annotation-driven transaction-manager&#61;"txManager"/>
beans>

log4j.properties

#\u8bbe\u7f6e\u7ea7\u522b\u548c\u591a\u4e2a\u76ee\u7684\u5730
log4j.rootLogger&#61;INFO,appender1,appender2#\u8f93\u51fa\u5230\u63a7\u5236\u53f0
log4j.appender.appender1&#61;org.apache.log4j.ConsoleAppender
#\u8bbe\u7f6e\u8f93\u51fa\u6837\u5f0f
log4j.appender.appender1.layout&#61;org.apache.log4j.TTCCLayout#\u8f93\u51fa\u5230\u6587\u4ef6(\u8fd9\u91cc\u9ed8\u8ba4\u4e3a\u8ffd\u52a0\u65b9\u5f0f)
log4j.appender.appender2&#61;org.apache.log4j.FileAppender
#\u8bbe\u7f6e\u6587\u4ef6\u8f93\u51fa\u8def\u5f84
#\u30101\u3011\u6587\u672c\u6587\u4ef6
log4j.appender.appender2.File&#61;d:/SSH.log
#\u30102\u3011HTML\u6587\u4ef6
#log4j.appender.appender2.File&#61;c:/Log4JDemo02.html
#\u8bbe\u7f6e\u6587\u4ef6\u8f93\u51fa\u6837\u5f0f
log4j.appender.appender2.layout&#61;org.apache.log4j.TTCCLayout
#log4j.appender.appender2.layout&#61;org.apache.log4j.HTMLLayout

struts.xml



<struts><package name&#61;"login" namespace&#61;"/" extends&#61;"struts-default"><action name&#61;"userAction" class&#61;"com.gx.web.UserAction"><result name&#61;"success">/jsp/list.jspresult><result name&#61;"input">/jsp/index.jspresult><result name&#61;"list">/jsp/list.jspresult><result name&#61;"add">/jsp/add.jspresult><result name&#61;"update">/jsp/update.jspresult>action>package>
struts>



4、添加目录结构
这里写图片描述




5、添加ssh2所需要的jar包到以下路径
这里写图片描述




6、添加jsp
这里写图片描述

index.jsp

<%&#64; page language&#61;"java" import&#61;"java.util.*" pageEncoding&#61;"UTF-8"%>
<%
String path &#61; request.getContextPath();
String basePath &#61; request.getScheme()&#43;"://"&#43;request.getServerName()&#43;":"&#43;request.getServerPort()&#43;path&#43;"/";
%>

<html><head><base href&#61;"<%&#61;basePath%>"><title>My JSP &#39;index.jsp&#39; starting pagetitle><meta http-equiv&#61;"pragma" content&#61;"no-cache"><meta http-equiv&#61;"cache-control" content&#61;"no-cache"><meta http-equiv&#61;"expires" content&#61;"0"> <meta http-equiv&#61;"keywords" content&#61;"keyword1,keyword2,keyword3"><meta http-equiv&#61;"description" content&#61;"This is my page">head><body><form action&#61;"<%&#61;request.getContextPath() %>/userAction!login.action" method&#61;"post"><table><tr><td>用户名td><td><input type&#61;"text" name&#61;"user.ename">td>tr><tr><td>密码td><td><input type&#61;"password" name&#61;"user.password">td>tr><tr><td><input type&#61;"submit" value&#61;"立即登陆">td>tr>table>form>body>
html>

add.jsp

<%&#64; page language&#61;"java" import&#61;"java.util.*" pageEncoding&#61;"UTF-8"%>
<%
String path &#61; request.getContextPath();
String basePath &#61; request.getScheme()&#43;"://"&#43;request.getServerName()&#43;":"&#43;request.getServerPort()&#43;path&#43;"/";
%>

<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/core" prefix&#61;"c" %>
<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/fmt" prefix&#61;"fmt" %>
<html><head><base href&#61;"<%&#61;basePath%>"><title>My JSP &#39;add.jsp&#39; starting pagetitle><meta http-equiv&#61;"pragma" content&#61;"no-cache"><meta http-equiv&#61;"cache-control" content&#61;"no-cache"><meta http-equiv&#61;"expires" content&#61;"0"> <meta http-equiv&#61;"keywords" content&#61;"keyword1,keyword2,keyword3"><meta http-equiv&#61;"description" content&#61;"This is my page">head><body><form action&#61;"<%&#61;request.getContextPath() %>/userAction!add.action" method&#61;"post"><input type&#61;"hidden" name&#61;"user.password" value&#61;"123"><table><tr><td>姓名td><td><input type&#61;"text" name&#61;"user.ename">td>tr><tr><td>所属部门td><td><input type&#61;"text" name&#61;"user.dept">td>tr><tr><td>年龄td><td><input type&#61;"text" name&#61;"user.age">td>tr><tr><td>性别td><td><input type&#61;"text" name&#61;"user.gender">td>tr><tr><td>入职时间td><td><input type&#61;"text" name&#61;"user.workDate">td>tr><tr><td><input type&#61;"submit" value&#61;"添加">td><td><input type&#61;"button" value&#61;"返回" onclick&#61;"history.go(-1);">td>tr>table>form>body>
html>

list.jsp

<%&#64; page language&#61;"java" import&#61;"java.util.*" pageEncoding&#61;"UTF-8"%>
<%
String path &#61; request.getContextPath();
String basePath &#61; request.getScheme()&#43;"://"&#43;request.getServerName()&#43;":"&#43;request.getServerPort()&#43;path&#43;"/";
%>

<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/core" prefix&#61;"c" %>
<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/fmt" prefix&#61;"fmt" %>
<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/functions" prefix&#61;"fn" %>
<c:set value&#61;"${pageContext.request.contextPath}" scope&#61;"page" var&#61;"ctx">c:set>
<html><head><base href&#61;"<%&#61;basePath%>"><title>My JSP &#39;list.jsp&#39; starting pagetitle><meta http-equiv&#61;"pragma" content&#61;"no-cache"><meta http-equiv&#61;"cache-control" content&#61;"no-cache"><meta http-equiv&#61;"expires" content&#61;"0"> <meta http-equiv&#61;"keywords" content&#61;"keyword1,keyword2,keyword3"><meta http-equiv&#61;"description" content&#61;"This is my page"><style type&#61;"text/css">body{font-family: Microsoft Yahei, sans-serif;}style>head><body><div><input type&#61;"button" value&#61;"查询" onclick&#61;"window.location.href&#61;&#39;<%&#61;request.getContextPath() %>/userAction!findAll.action&#39;"><input type&#61;"button" value&#61;"添加" onclick&#61;"window.location.href&#61;&#39;<%&#61;request.getContextPath() %>/userAction!toadd.action&#39;">div><table><thead><tr><th>编号th><th>姓名th><th>所属部门th><th>年龄th><th>性别th><th>入职时间th><th>操作th>tr>thead><tbody><c:forEach items&#61;"${tbEmps}" var&#61;"item" varStatus&#61;"status"><tr><td>${item.eid }td><td>${item.ename }td><td>${item.dept }td><td>${item.age }td><td>${item.gender }td><td><fmt:formatDate value&#61;"${item.workDate }" type&#61;"both" pattern&#61;"yyyy-MM-dd"/>td><td><a href&#61;"<%&#61;request.getContextPath() %>/userAction!toupdate.action?user.eid&#61;${item.eid }">修改a>/<a href&#61;"<%&#61;request.getContextPath() %>/userAction!delete.action?user.eid&#61;${item.eid }">删除a>td>tr>c:forEach>tbody>table>body>
html>

update.jsp

<%&#64; page language&#61;"java" import&#61;"java.util.*" pageEncoding&#61;"UTF-8"%>
<%
String path &#61; request.getContextPath();
String basePath &#61; request.getScheme()&#43;"://"&#43;request.getServerName()&#43;":"&#43;request.getServerPort()&#43;path&#43;"/";
%>

<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/core" prefix&#61;"c" %>
<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/fmt" prefix&#61;"fmt" %>
<html><head><base href&#61;"<%&#61;basePath%>"><title>My JSP &#39;update.jsp&#39; starting pagetitle><meta http-equiv&#61;"pragma" content&#61;"no-cache"><meta http-equiv&#61;"cache-control" content&#61;"no-cache"><meta http-equiv&#61;"expires" content&#61;"0"> <meta http-equiv&#61;"keywords" content&#61;"keyword1,keyword2,keyword3"><meta http-equiv&#61;"description" content&#61;"This is my page">head><body><form action&#61;"<%&#61;request.getContextPath() %>/userAction!update.action" method&#61;"post"><input type&#61;"hidden" name&#61;"user.password" value&#61;"${user.password }"><input type&#61;"hidden" name&#61;"user.eid" value&#61;"${user.eid }"><table><tr><td>姓名td><td><input type&#61;"text" name&#61;"user.ename" value&#61;"${user.ename }">td>tr><tr><td>所属部门td><td><input type&#61;"text" name&#61;"user.dept" value&#61;"${user.dept }">td>tr><tr><td>年龄td><td><input type&#61;"text" name&#61;"user.age" value&#61;"${user.age }">td>tr><tr><td>性别td><td><input type&#61;"text" name&#61;"user.gender" value&#61;"${user.gender }">td>tr><tr><td>入职时间td><td><input type&#61;"text" name&#61;"user.workDate" value&#61;"${user.workDate }" type&#61;"both" pattern&#61;"yyyy-MM-dd" />">td>tr><tr><td><input type&#61;"submit" value&#61;"修改">td><td><input type&#61;"button" value&#61;"重置">td>tr>table>form>body>
html>


推荐阅读
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
author-avatar
矮辛楚楚拉_760
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有