- Openstack Neutron 专题
1.构架2.代码3.cmdneutronnet-listneutronrouter-listneutronsecurity-group-listneutronsecurity-group-showb4850001-security-group-idneutronsecurity-group-rule-listneutronsecurity-group-rule-show2ca442c7-secur
- 阿里云Centos镜像源和EPEL源
weixin_34399060
运维
Centos配置yum本地源aliyun的EPEL源1、本地yum源[root@openstack~]#mount/dev/sr0/mnt/[root@openstack~]#echo"/dev/sr0/mntiso9660defaults00">>/etc/fstab[root@openstack~]#rm-rf/etc/yum.repos.d/*[root@openstack~]#cat>/e
- 博客摘录「 华为云平台-FusionSphere OpenStack 8.2.1 系统加固」2025年7月15日
编号加固项"风险等级"加固原理/Rationale审计方法/Audit期望结果/ExpectResults加固方法/Remediation1OpenSSH加固配置1.1OpenSSH加固配置1.1.1SSH使用的版本H"OpenSSHV2版本在安全性能、方便性上有所提高,默认使用V2版本。如果用户根据实际需要采用V1版本,可登录主机将数值修改为“1”。"查看/etc/ssh/sshd_config
- Ceph存储阈值调整:优化nearfull_ratio参数
mixboot
Cephceph
Ceph存储阈值调整:优化nearfull_ratio参数前言在Ceph存储系统的管理中,合理设置存储阈值参数对于确保系统稳定运行至关重要。如何调整nearfull_ratio参数,以及这一参数对Ceph集群的影响。Ceph存储阈值概述Ceph存储系统主要有三个与容量相关的重要阈值参数:近满阈值(nearfull_ratio):默认为0.85或85%,当集群使用空间达到此比例时,Ceph会发出警告
- Ceph OSD.419 故障分析
CephOSD.419故障分析1.问题描述在Ceph存储集群中,OSD.419无法正常启动,系统日志显示服务反复重启失败。2.初始状态分析观察到OSD.419服务启动失败的系统状态:systemctlstatusceph-osd@419●
[email protected]:loaded(/usr/lib/systemd
- 【ceph】坏盘更换,osd的具体操作
向往风的男子
cephceph
本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》:python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》暂未更新《docker学习》暂未更新《ceph学习》ceph日常问题解决分享《日志收集》ELK+各种中间件《运维日常》运维日常《l
- ceph报错整理
时空无限
Kubernetescephlinux运维kubernetes
xxdaemonshaverecentlycrashedceph-scluster:id:d82dfc33-6a35-4fa4-b5f0-c32979b714cdhealth:HEALTH_WARN74daemonshaverecentlycrashedcephcrashlsIDENTITYNEW2024-07-26T06:17:34.480675Z_bd4c30b7-2347-4307-a9e6
- 使用ceph-ansible部署分布式存储Ceph-octopus版本
降世神童
云计算技术专栏分布式cephansible
使用ceph-ansible部署分布式存储Ceph-octopus版本1.Ceph基础概念及部署方式1.1.Ceph基本概念1.2.Ceph部署方式2.系统初始化配置3.Ceph集群部署3.1.Ansible安装与配置3.2.ceph-ansible安装与配置3.2.1.下载ceph-ansible3.2.2.安装ceph-ansible依赖3.2.3.修改ceph配置文件3.3.开始部署ceph
- 2024年运维最新分布式存储ceph osd 常用操作_ceph查看osd对应硬盘(1),2024年最新Linux运维编程基础教程
2401_83944328
程序员运维分布式ceph
最全的Linux教程,Linux从入门到精通======================linux从入门到精通(第2版)Linux系统移植Linux驱动开发入门与实战LINUX系统移植第2版Linux开源网络全栈详解从DPDK到OpenFlow第一份《Linux从入门到精通》466页====================内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linu
- 【ceph】ceph集群更换osd时,找不到坏盘位置,怎么查找坏盘对应的序列号---业内称“点灯”
本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》:python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新《ceph学习》ceph日常问题解决分享《日志收集》ELK+各种中间件《运维日常》
- Ceph集群管理实战
wespten
OpenStackvSphere虚拟化云平台SDN数据库存储块存储文件存储对象存储分布式网络存储linux运维服务器
配置完Ceph集群后,我们即可对Ceph集群进行数据存储。在后续使用过程中,Ceph提供了常用的命令对Ceph集群进行必要的运维。常见的集群状态查看、磁盘使用率查看、添加磁盘、删除坏盘等操作。详情可参考:WelcometoCeph—CephDocumentation1、Ceph的常用命令本节给出的Ceph常用命令可以作为最基本的集群运维命令。1)查看集群状态命令。[root@installer~]
- 深度剖析:Ceph分布式存储系统架构
TechVision大咖圈
ceph分布式架构分布式存储
一文带你彻底搞懂Ceph的架构奥秘,从小白到架构师的进阶之路!文章目录1.Ceph简介:存储界的"多面手"什么是Ceph?为什么选择Ceph?2.核心组件架构:四大金刚的分工合作Monitor(MON):集群的"大脑"ObjectStorageDevice(OSD):数据的"家园"MetadataServer(MDS):文件系统的"管家"Manager(MGR):集群的"助手"3.三大存储接口:一
- python 64式: 第27式、分布式锁与群组管理__2、tooz应用之负载均衡
天地一扁舟
python64式
python中分布式锁与群组管理系列最近有接触到分布式锁的相关问题。基于openstack相关组件源码,tooz官网文档和自己对组件使用的一点点心得,想整理一下这部分的内容。主要想分为四个部分介绍:分布式锁与群组管理1、tooz介绍分布式锁与群组管理2、tooz应用之负载均衡分布式锁与群组管理3、tooz应用之分布式锁分布式锁与群组管理4、tooz源码分析下面是第2部分的内容1引言ceilomet
- OpenStack
架构介绍:OpenStack架构全景图核心服务组件全局组件:Keystone认证服务:提供身份验证,服务发现和分布式多租户授权;管理全局认证和授权的组件;Ceilometer计量服务:监控集群的状态,监控集群虚拟机的使用量;Horizon界面管理服务:提供基于Web的控制界面,使云管理员和用户能够管理各种OpenStack资源和服务;控制台可以控制OpenStack架构内部的所有功能;依赖于Key
- openstack 扩展开发最佳实践之计算节点高可用
手机版网站
前言:注意是扩展开发,这个词是我杜撰的,大概意思是指基于openstack的restapi做的一些开发,用于辅助相关功能,而不是直接改动openstack内的代码,怎么修改添加openstack各个组件的代码不在此文章内容内。首先,千万,千万,千万不要用Openstack提供的SDK,原因如下。一,SDK的相关文档并不健全。二,版本不够统一,即兼容的问题。所以不要使用openstack的SDK而是
- 给OpenStack扩展自定义功能
jmppok
云计算openstack
转自:http://quake.iteye.com/blog/1343584得益于OpenStack的良好架构,对OpenStack进行扩展非常方便,每个模块都留出了各种接口和扩展点,能够让用户扩展自定义功能。下面以操作记录为例子,介绍一下如何扩展nova-api组件。需求:用户的一些重要操作必须记录下来,方便进行事后查询,比如instance的创建、销毁,比如公网IP的申请、分配等等。实现:因为
- OpenStack 扩展镜像和虚拟机实例目录大小
chenjiang7359
参考:https://blog.csdn.net/Tomstrong_369/article/details/52574090https://blog.csdn.net/chinagissoft/article/details/504413011、镜像默认存放目录:/etc/glance/glance-api.conffilesystem_store_datadir=/var/lib/glance
- 【无标题】
KellenKellenHao
tomcatjava
一、tomcat安装 #关闭防火墙与SELinux [root@proxy_host~]#rz rzwaitingtoreceive.**[root@proxy_host~]#ls anaconda-ks.cfg ceph-release-1-1.el7.noarch.rpm apache-tomcat-8.5.40.tar.gznginx-1.27.3.tar.gz #解压到指定路径
- 【mongodb】mongodb数据备份与恢复
向往风的男子
运维日常DBAmongodb数据库
本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》:python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》暂未更新《docker学习》暂未更新《ceph学习》ceph日常问题解决分享《日志收集》ELK+各种中间件《运维日常》运维日常《l
- OpenStack入门体验
ASDyushui
openstack
目录一.云计算概述1.什么是云计算2.云计算的服务模型(1).laaS(2).PaaS(3).Saas3.OpenStack概述(1).OpenStack起源(2).什么是OpenStack(3).OpenStack优势二.部署Openstack1.系统描述2.设置在线安装3.系统基本环境设置4.设置KVM源5.设置openstack仓库6.安装部署工具7.一键安装一.云计算概述1.什么是云计算云
- rook-ceph配置dashboard代理无法访问
在ceph-tools的pod中看看dashboard是否开启kubectl-nrook-cephexec-itrook-ceph-tools-7b75b967db-jn68d–bashcephmgrservices查看集群内地址使用curl测试能否访问cephmgrmoduledisabledashboard关闭cephmgrmoduleenabledashboard开启rook中关于ceph部
- 速通Ceph分布式存储(含超详细图解)
来自于狂人
云计算
前言云计算存储架构图示例存储节点集群RAID控制层物理存储层分布式存储管理层存储接口层接入层OSD主机1OSD主机2OSD主机N磁盘1磁盘2磁盘3磁盘4磁盘5磁盘6RAID0/10/5RAID控制器1RAID0/10/5RAID控制器2RAID0/10/5RAID控制器NMonitor集群大脑OSD数据守护进程MDS元数据服务对象存储块存储文件存储对象网关RBDMDS客户端接入层存储接口层分布式存
- linux 接口 bridge vlan bonding,CentOS系统Bonding+VLAN+Bridge配置
林罗
linux接口bridgevlanbonding
由于业务的需要,需要在我们的一台虚拟化机器上,实现如下的配置:首先,需要将两块网卡设置Bonding并配置交换机对应端口trunk模式;在此基础上,添加宿主机的IP地址,并添加相应的VLAN,最后,还需要添加一个Bridge,用于桥接创建的虚拟机。由于本身这台机器就是Openstack的宿主机,所以当前的状况是除了所需要的一个Bridge,其他都已经配置完成了,并且由于Openstack的原因,已
- 使用kolla安装OPENSTACK
qhqh310
openstack
安装centos7一、根据这个做一个模板1、编辑host文件10.103.129.146control-110.103.129.147node-110.103.129.148node-210.103.129.149network-110.103.129.150ceph-110.103.129.151ceph-210.103.129.152control-210.103.129.153network
- 使用kolla 安装openstack train 版本 单节点
闫晟
openstackdockeropenstack
目录1.准备工作1.1环境准备1.2关闭selinux1.3关闭防火墙(可选)1.4更改hosts2.安装docker容器3.安装依赖4.安装Kolla-ansible5.安装Kolla6.配置OpenStack环境6.1调整kolla-ansible全局配置6.2调整all-in-one配置7.生成密码8.部署OpenStack环境9.使用openstack部署完成1.准备工作1.1环境准备物理
- OpenStack-Dashboard界面简单修改
陌殇殇殇
openstack
OpenStackDashboard界面替换图片一、dashboard界面Logo的路径及文件dashboard的Logo存放(在Controller节点)的路径:/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/涉及需要修改的文件(3个):favicon.ico//浏览器窗口的小图标logo.svg//
- ceph计算PG
计算公式:pg_num={(TargetPGsperOSD)x(OSD#)x(%Data)}/Size注释:TargetPGsperOSD:预估每个OSD的PG数,一般取100计算。当预估以后集群OSD数不会增加时,一般取100计算OSD#:集群OSD数量。%Data:预估该pool占该OSD集群总容量的近似百分比。Size:该pool的副本数。
- 分布式存储Ceph之PG状态详解
jiangxi_
ceph运维cephpgp分布式linux
1.PG介绍一,PG的复杂如下:在架构层次上,PG位于RADOS层的中间。a.往上负责接收和处理来自客户端的请求。b.往下负责将这些数据请求翻译为能够被本地对象存储所能理解的事务。是组成存储池的基本单位,存储池中的很多特性,都是直接依托于PG实现的。面向容灾域的备份策略使得一般而言的PG需要执行跨节点的分布式写,因此数据在不同节点之间的同步、恢复时的数据修复也都是依赖PG完成。2.PG状态表正常的
- ceph创建pool时pg_num的配置
lvbibir
数据库
pg_num用此命令创建存储池时:cephosdpoolcreate{pool-name}pg_num确定pg_num取值是强制性的,因为不能自动计算。常用的较为通用的取值:少于5个osd,pg_num设置为128osd数量在5到10个时,pg_num设置为512osd数量在10到50个时,pg_num=4096osd数量大于50是,需要理解ceph的权衡算法,自己计算pg_num取值自行计算pg
- ceph 通过 crush rule 修改故障域
时空无限
cephceph
创建故障域为osd的crushrulecephosdcrushrulecreate-replicatedreplicated_osd_leveldefaultosd设置pool使用新创建的crushrulecephosdpoolsetceph-filesystem-data0crush_rulereplicated_osd_level查看有哪些crushrulecephosdcrushruleli
- 312个免费高速HTTP代理IP(能隐藏自己真实IP地址)
yangshangchuan
高速免费superwordHTTP代理
124.88.67.20:843
190.36.223.93:8080
117.147.221.38:8123
122.228.92.103:3128
183.247.211.159:8123
124.88.67.35:81
112.18.51.167:8123
218.28.96.39:3128
49.94.160.198:3128
183.20
- pull解析和json编码
百合不是茶
androidpull解析json
n.json文件:
[{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]
pull.xml文件
<?xml version="1.0" encoding="utf-8"?>
<stu>
<name>java
- [能源与矿产]石油与地球生态系统
comsci
能源
按照苏联的科学界的说法,石油并非是远古的生物残骸的演变产物,而是一种可以由某些特殊地质结构和物理条件生产出来的东西,也就是说,石油是可以自增长的....
那么我们做一个猜想: 石油好像是地球的体液,我们地球具有自动产生石油的某种机制,只要我们不过量开采石油,并保护好
- 类与对象浅谈
沐刃青蛟
java基础
类,字面理解,便是同一种事物的总称,比如人类,是对世界上所有人的一个总称。而对象,便是类的具体化,实例化,是一个具体事物,比如张飞这个人,就是人类的一个对象。但要注意的是:张飞这个人是对象,而不是张飞,张飞只是他这个人的名字,是他的属性而已。而一个类中包含了属性和方法这两兄弟,他们分别用来描述对象的行为和性质(感觉应该是
- 新站开始被收录后,我们应该做什么?
IT独行者
PHPseo
新站开始被收录后,我们应该做什么?
百度终于开始收录自己的网站了,作为站长,你是不是觉得那一刻很有成就感呢,同时,你是不是又很茫然,不知道下一步该做什么了?至少我当初就是这样,在这里和大家一份分享一下新站收录后,我们要做哪些工作。
至于如何让百度快速收录自己的网站,可以参考我之前的帖子《新站让百
- oracle 连接碰到的问题
文强chu
oracle
Unable to find a java Virtual Machine--安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案
作者:草根IT网 来源:未知 人气:813标签:
导读:安装64位版Oracle11gR2后发现启动SQLDeveloper时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\prod
- Swing中按ctrl键同时移动鼠标拖动组件(类中多借口共享同一数据)
小桔子
java继承swing接口监听
都知道java中类只能单继承,但可以实现多个接口,但我发现实现多个接口之后,多个接口却不能共享同一个数据,应用开发中想实现:当用户按着ctrl键时,可以用鼠标点击拖动组件,比如说文本框。
编写一个监听实现KeyListener,NouseListener,MouseMotionListener三个接口,重写方法。定义一个全局变量boolea
- linux常用的命令
aichenglong
linux常用命令
1 startx切换到图形化界面
2 man命令:查看帮助信息
man 需要查看的命令,man命令提供了大量的帮助信息,一般可以分成4个部分
name:对命令的简单说明
synopsis:命令的使用格式说明
description:命令的详细说明信息
options:命令的各项说明
3 date:显示时间
语法:date [OPTION]... [+FORMAT]
- eclipse内存优化
AILIKES
javaeclipsejvmjdk
一 基本说明 在JVM中,总体上分2块内存区,默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。 1)堆内存(Heap memory):堆是运行时数据区域,所有类实例和数组的内存均从此处分配,是Java代码可及的内存,是留给开发人
- 关键字的使用探讨
百合不是茶
关键字
//关键字的使用探讨/*访问关键词private 只能在本类中访问public 只能在本工程中访问protected 只能在包中和子类中访问默认的 只能在包中访问*//*final 类 方法 变量 final 类 不能被继承 final 方法 不能被子类覆盖,但可以继承 final 变量 只能有一次赋值,赋值后不能改变 final 不能用来修饰构造方法*///this()
- JS中定义对象的几种方式
bijian1013
js
1. 基于已有对象扩充其对象和方法(只适合于临时的生成一个对象):
<html>
<head>
<title>基于已有对象扩充其对象和方法(只适合于临时的生成一个对象)</title>
</head>
<script>
var obj = new Object();
- 表驱动法实例
bijian1013
java表驱动法TDD
获得月的天数是典型的直接访问驱动表方式的实例,下面我们来展示一下:
MonthDaysTest.java
package com.study.test;
import org.junit.Assert;
import org.junit.Test;
import com.study.MonthDays;
public class MonthDaysTest {
@T
- LInux启停重启常用服务器的脚本
bit1129
linux
启动,停止和重启常用服务器的Bash脚本,对于每个服务器,需要根据实际的安装路径做相应的修改
#! /bin/bash
Servers=(Apache2, Nginx, Resin, Tomcat, Couchbase, SVN, ActiveMQ, Mongo);
Ops=(Start, Stop, Restart);
currentDir=$(pwd);
echo
- 【HBase六】REST操作HBase
bit1129
hbase
HBase提供了REST风格的服务方便查看HBase集群的信息,以及执行增删改查操作
1. 启动和停止HBase REST 服务 1.1 启动REST服务
前台启动(默认端口号8080)
[hadoop@hadoop bin]$ ./hbase rest start
后台启动
hbase-daemon.sh start rest
启动时指定
- 大话zabbix 3.0设计假设
ronin47
What’s new in Zabbix 2.0?
去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:
:: Performance improvements::Trigger related da
- http错误码大全
byalias
http协议javaweb
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1)1xx:信息,请求收到,继续处理
2)2xx:成功,行为被成功地接受、理解和采纳
3)3xx:重定向,为了完成请求,必须进一步执行的动作
4)4xx:客户端错误,请求包含语法错误或者请求无法实现
5)5xx:服务器错误,服务器不能实现一种明显无效的请求
- J2EE设计模式-Intercepting Filter
bylijinnan
java设计模式数据结构
Intercepting Filter类似于职责链模式
有两种实现
其中一种是Filter之间没有联系,全部Filter都存放在FilterChain中,由FilterChain来有序或无序地把把所有Filter调用一遍。没有用到链表这种数据结构。示例如下:
package com.ljn.filter.custom;
import java.util.ArrayList;
- 修改jboss端口
chicony
jboss
修改jboss端口
%JBOSS_HOME%\server\{服务实例名}\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml
中找到
<!-- The ports-default bindings are obtained by taking the base bindin
- c++ 用类模版实现数组类
CrazyMizzz
C++
最近c++学到数组类,写了代码将他实现,基本具有vector类的功能
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
template<class T>
class Array
{
public:
//构造函数
- hadoop dfs.datanode.du.reserved 预留空间配置方法
daizj
hadoop预留空间
对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
 
- mysql远程访问的设置
dcj3sjt126com
mysql防火墙
第一步: 激活网络设置 你需要编辑mysql配置文件my.cnf. 通常状况,my.cnf放置于在以下目录: /etc/mysql/my.cnf (Debian linux) /etc/my.cnf (Red Hat Linux/Fedora Linux) /var/db/mysql/my.cnf (FreeBSD) 然后用vi编辑my.cnf,修改内容从以下行: [mysqld] 你所需要: 1
- ios 使用特定的popToViewController返回到相应的Controller
dcj3sjt126com
controller
1、取navigationCtroller中的Controllers
NSArray * ctrlArray = self.navigationController.viewControllers;
2、取出后,执行,
[self.navigationController popToViewController:[ctrlArray objectAtIndex:0] animated:YES
- Linux正则表达式和通配符的区别
eksliang
正则表达式通配符和正则表达式的区别通配符
转载请出自出处:http://eksliang.iteye.com/blog/1976579
首先得明白二者是截然不同的
通配符只能用在shell命令中,用来处理字符串的的匹配。
判断一个命令是否为bash shell(linux 默认的shell)的内置命令
type -t commad
返回结果含义
file 表示为外部命令
alias 表示该
- Ubuntu Mysql Install and CONF
gengzg
Install
http://www.navicat.com.cn/download/navicat-for-mysql
Step1: 下载Navicat ,网址:http://www.navicat.com/en/download/download.html
Step2:进入下载目录,解压压缩包:tar -zxvf navicat11_mysql_en.tar.gz
- 批处理,删除文件bat
huqiji
windowsdos
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
- 跨浏览器兼容的HTML5视频音频播放器
天梯梦
html5
HTML5的video和audio标签是用来在网页中加入视频和音频的标签,在支持html5的浏览器中不需要预先加载Adobe Flash浏览器插件就能轻松快速的播放视频和音频文件。而html5media.js可以在不支持html5的浏览器上使video和audio标签生效。 How to enable <video> and <audio> tags in
- Bundle自定义数据传递
hm4123660
androidSerializable自定义数据传递BundleParcelable
我们都知道Bundle可能过put****()方法添加各种基本类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。如传递一个字符串到下一个Activity
把数据放到Intent
- C#:异步编程和线程的使用(.NET 4.5 )
powertoolsteam
.net线程C#异步编程
异步编程和线程处理是并发或并行编程非常重要的功能特征。为了实现异步编程,可使用线程也可以不用。将异步与线程同时讲,将有助于我们更好的理解它们的特征。
本文中涉及关键知识点
1. 异步编程
2. 线程的使用
3. 基于任务的异步模式
4. 并行编程
5. 总结
异步编程
什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程。通常情况下,C#程序
- spark 查看 job history 日志
Stark_Summer
日志sparkhistoryjob
SPARK_HOME/conf 下:
spark-defaults.conf 增加如下内容
spark.eventLog.enabled true spark.eventLog.dir hdfs://master:8020/var/log/spark spark.eventLog.compress true
spark-env.sh 增加如下内容
export SP
- SSH框架搭建
wangxiukai2015eye
springHibernatestruts
MyEclipse搭建SSH框架 Struts Spring Hibernate
1、new一个web project。
2、右键项目,为项目添加Struts支持。
选择Struts2 Core Libraries -<MyEclipes-Library>
点击Finish。src目录下多了struts