ssh daemon启动失败_SSH框架整合步骤

整合Struts+Spring+Hibernate 逐一配置的步骤


更多内容,点击了解:

SSH系列教材 (一)- 整合Struts+Spring+Hibernate 逐一配置的步骤​how2j.cn
692a5dbf534988fcab81a705558b7569.png

本例演示从0开始逐一整合SSH的步骤,要学习本知识,需要具备Spring, Struts, Hibernate的基础,如果没有这些基础,请把基础掌握之后再学习,不要跳跃学习,最后坑的是自己
本例演示从struts,spring,hibernate逐一配置的步骤,完整的可运行实例可在右边下载 必读: 基于框架的程序要成功运行,对于JAR包的版本,配置文件的正确性有着苛刻的要求,任何一个地方出错了,都会导致框架程序运行失败。 如果你是第一次学习本框架,务必严格按照教程的指导,完全模仿操作,直到成功看到运行效果。 第一次成功之后,信心,思路都会有较好的铺垫,然后再根据自己的疑惑,在“成功”的代码上做原本想做的改动和调整,这样可以大大节约学习的时间,提高效率,切勿一来就擅自改动,给自己的学习制造障碍

步骤1:创建数据库步骤2:创建表步骤3:准备数据步骤4:先运行,再学习步骤5:新建项目步骤6:导入jar步骤7:pojo步骤8:hbm步骤9:DAO步骤10:Service步骤11:ProductAction步骤12:struts.xml步骤13:applicationContext.xml步骤14:配置web.xml步骤15:list.jsp步骤16:访问http://127.0.0.1/listProduct步骤17:可运行项目步骤18:思路图步骤19:练习

步骤 1 : 创建数据库
首先准备数据库 how2java
如果没有安装数据库,请参考 安装mysql-server注: 新安装的数据库账号密码是root:admin, 后续的配置里,也是用的这个账号密码。如果密码不是这个,本知识点下载区(点击进入)的可运行项目跑不起来,所以尽量修改密码为admin, 修改密码办法:修改root密码步骤 2 : 创建表
准备表product_, 有3个字段,分别是
主键id(自增长)
字符串格式的name
浮点数格式的priceuse how2java;CREATE TABLE product_ (id int(11) NOT NULL AUTO_INCREMENT,name varchar(30) ,price float ,PRIMARY KEY (id)) DEFAULT CHARSET=UTF8;步骤 3 : 准备数据use how2java;delete from product_;INSERT INTO product_ VALUES (null,'产品a',88.88);INSERT INTO product_ VALUES (null,'产品b',88.88);INSERT INTO product_ VALUES (null,'产品c',88.88);INSERT INTO product_ VALUES (null,'产品x',88.88);INSERT INTO product_ VALUES (null,'产品y',88.88);INSERT INTO product_ VALUES (null,'产品z',88.88);步骤 4 : 先运行,再学习
SSH整合需要做不少步骤,任何一步部做漏了,做错了,都有可能失败,这样会影响学习的信心,并且误以为本教程是走不通的。
所以先下载下载区(点击进入)的可运行项目 ssh.rar,解压后导入到eclipse中,启动Tomcat,观察是否正常运行。确定可以运行,确定教程是可以跑得起来的,再学习下面的内容。
导入到Eclipse中并运行的办法请参考:导入动态Web项目到Eclipse中
部署成功自后,测试地址,应该看到如图所示的效果http://127.0.0.1:8080/ssh/listProduct

9e1ab824a9ed9b99c847897dd0156f80.png

步骤 5 : 新建项目
在eclipse中新建项目ssh,使用dynamic web project的方式。 不熟悉这种方式的同学,请参考 使用Dynamic Web Project的方式开发J2EE应用

bb2f415179e12df0ddc92e01b1e9bd4d.png

步骤 6 : 导入jar
下载下载区(点击进入)的lib.rar, 解压后复制到 e:/project/ssh/WebContent/WEB-INF/lib目录下步骤 7 : pojopackage com.how2java.pojo;public class Product {private int id;private String name;private float price;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 float getPrice() {return price;}public void setPrice(float price) {this.price = price;}}步骤 8 : hbm<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.how2java.pojo"><class name="Product" table="product_"><id name="id" column="id"><generator class="native"></generator></id><property name="name" /><property name="price" /></class></hibernate-mapping>步骤 9 : DAO
DAO部分由接口ProductDAO 和其实现类ProductDAOImpl 构成ProductDAO 接口声明了方法list()、add(Product p)。ProductDAOImpl 类继承了Hibernatetemplete,并实现接口ProductDAO。

  • ProductDAO.java
  • ProductDAOImpl.java

package com.how2java.dao;import java.util.List;import com.how2java.pojo.Product;public interface ProductDAO {public List<Product> list();public void add(Product p);}package com.how2java.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.HibernateTemplate;import com.how2java.dao.ProductDAO;import com.how2java.pojo.Product;public class ProductDAOImpl extends HibernateTemplate implements ProductDAO{public List<Product> list() {return find("from Product");}@Overridepublic void add(Product p) {save(p);}}步骤 10 : Service
Service部分由接口ProductService 和其实现类ProductServiceImpl 构成ProductService 接口声明了方法list()。ProductServiceImpl 实现接口ProductService,并接受productDAO的注入。
list方法就是业务方法,productDAO查找所有的数据,如果是空的,就往数据库里插入5条数据。

  • ProductService.java
  • ProductServiceImpl.java

package com.how2java.service;import java.util.List;import com.how2java.pojo.Product;public interface ProductService {public List<Product> list();}package com.how2java.service.impl;import java.util.List;import org.springframework.orm.hibernate3.HibernateTemplate;import com.how2java.dao.ProductDAO;import com.how2java.pojo.Product;import com.how2java.service.ProductService;public class ProductServiceImpl implements ProductService {ProductDAO productDAO;public List<Product> list() {List<Product> products= productDAO.list();if(products.isEmpty()){for (int i = 0; i < 5; i++) {Product p = new Product();p.setName("product " + i);productDAO.add(p);products.add(p);}}return products;}public ProductDAO getProductDAO() {return productDAO;}public void setProductDAO(ProductDAO productDAO) {this.productDAO = productDAO;}}步骤 11 : ProductAction
ProductAction提供对ProductService的注入,借助SSH的整合,ProductAction就充当非常单纯的控制层的角色:
1. 取得数据
2. 跳转到页面 “listJsp”package com.how2java.action;import java.util.List;import com.how2java.pojo.Product;import com.how2java.service.ProductService;public class ProductAction {ProductService productService;List<Product> products;public String list() {products = productService.list();return "listJsp";}public ProductService getProductService() {return productService;}public void setProductService(ProductService productService) {this.productService = productService;}public List<Product> getProducts() {return products;}public void setProducts(List<Product> products) {this.products = products;}}步骤 12 : struts.xml
指定objectFactory 为spring,把action的生命周期管理交给spring进行<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.i18n.encoding" value="UTF-8"></constant><constant name="struts.objectFactory" value="spring"/><package name="basicstruts" extends="struts-default"><action name="listProduct" class="productActionBean" method="list"><result name="listJsp">list.jsp</result></action></package></struts>步骤 13 : applicationContext.xml
applicationContext.xml应该放在WEB-INF目录下
提供action的管理,并且在创建action的时候,注入dao<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean name="productActionBean" class="com.how2java.action.ProductAction"><property name="productService" ref="productServiceImpl" /></bean><bean name="productServiceImpl" class="com.how2java.service.impl.ProductServiceImpl"><property name="productDAO" ref="productDAOImpl" /></bean><bean name="productDAOImpl" class="com.how2java.dao.impl.ProductDAOImpl"><property name="sessionFactory" ref="sf" /></bean><bean name="sf"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="ds" /><property name="mappingResources"><list><value>com/how2java/pojo/Product.hbm.xml</value></list></property><property name="schemaUpdate"> <value>true</value> </property> <property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQLDialecthibernate.show_sql=truehbm2ddl.auto=update</value></property></bean> <bean name="ds"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8" /><property name="username" value="root" /><property name="password" value="admin" /></bean> </beans>步骤 14 : 配置web.xml
web.xml 增加Context监听器<web-app><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><dispatcher>FORWARD</dispatcher><dispatcher>REQUEST</dispatcher> <url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener></web-app>步骤 15 : list.jsp
用于显示products的jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%><%@ taglib prefix="s" uri="/struts-tags" %><%@page isELIgnored="false"%><table><tr><td>id</td><td>name</td></tr><s:iterator value="products" var="p"><tr><td>${p.id}</td><td>${p.name}</td></tr></s:iterator></table>步骤 16 : 访问http://127.0.0.1/listProduct
部署在Tomcat中,重启tomcat,然后访问地址,观察效果http://127.0.0.1:8080/ssh/listProduct
部署办法请参考 通过Eclipse启动Tomcat-Run On Server

9e1ab824a9ed9b99c847897dd0156f80.png

步骤 17 : 可运行项目
在下载区(点击进入)有本知识点对应的可运行项目下载 ,实在自己搞不出来,就下载解压出来比较一下步骤 18 : 思路图
1. 访问路径/listProduct
2. web.xml中的过滤器会将请求交由struts进行处理
3. struts根据listProduct创建对应的productActionBean此时productActionBean不再由Struts自己创建,而是由Spring创建
4. spring根据applicationContext.xml创建productActionBean对应的对象ProductAction
5. Spring 创建ProductAction的时候 注入Service
6. 创建Service的时候注入DAO
7. Struts 调用ProductAction的list方法
8. 在list方法中调用注入好的dao,访问数据库,查询结果
9. 跳转到list.jsp显示数据

b280cafe6323d43d7c4355b638551814.png

步骤 19 : 练习
基于这个例子,使用 SSH做一套产品的 增 删 改 查
更多内容,点击了解: SSH系列教材 (一)- 整合Struts+Spring+Hibernate 逐一配置的步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值