- C++模板
2401_87358782
c++开发语言
一.定义可以理解为通用模具,增强代码复用性,分为函数模板和类模板二.特征类型名称为class或typenametemplate//或者tempalte注意:在调用的时候才会实例化为具体的函数或类,如果在运行时未实例化,模板中的语法错误可能不会报错1.函数模板templateTadd(Ta,Tb){returna+b;}2.类模板可以修饰成员函数和成员变量templateclasstest{publ
- 运算符重载(关键字operator的使用)
思麟呀
前端c语言c++开发语言学习
1:运算符重载的方法运算符重载的方法有三种,一种是将运算符重载函数写在类中,作为类的成员函数;另一种是将运算符重载函数写在类外,当该函数需要访问类的私有或者受保护成员时,在类中将该函数声明为友元函数;第三种是将运算符重载函数写在类外,且该函数不需要访问类的私有或受保护成员,则该函数是普通函数。主要讲和类相关的运算符重载。重载为成员函数在类中重载运算符的格式是函数类型operator$(形式参数表)
- 字符函数和字符串函数(函数的模拟实现请前往gitte获取源代码)(文章结尾有链接)
思麟呀
c语言学习笔记
1:字符分类函数C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。这些函数的使用要包含对应的头文件是ctype.h2:字符转换函数C语言提供了2个字符转换函数tolower和toupper直接实现字符大小写的转换。3:strlen的模拟实现(使用已经在和前面的sizeof区别说明了)注意点:(size_tstrlen(constchar*str);)1:字符串以'\0'
- string的模拟实现
Ljw...
C++c++string
目录1构造初始化带参2无参的构造,有一个\03析构4打印的方式(带不带const)5长度的计算6[]的操作符重载(带不带const)7尾插的模拟实现8插入字符串9+=的操作符重载字符字符串(常量字符串不可修改)10迭代器的模拟实现带不带const的迭代器11insert的模拟实现(插入字符)12insert的模拟实现,pos位置插入字符串13扩容14erase的模拟实现,pos位置后删除len个字
- 《C语言》总结3--数组
一只余弦函数
c语言开发语言
一、一维数组1.1数组的创建type_tarr_name[const_n]//taype_t为数组类型//arr_name为数组名字//const_n为常量大小。在C99标准之前,要为一个常量才可以//例如:inta=10;intarr[a]={0};//这个在C99标准之前就是不合法的数组创建1.2数组的初始化(数组越界知识点)我们称创建数组时给数组的内容赋值,称之为初始化intarr1[10]
- C++常用语法
Yvsanf
C++语法c++
前言个人对于C++语法的系统性学习,并不完全涵盖所有语法,仅包含常用语法。文章目录前言一、类和对象(一)1.1类的构成1.2成员函数的定义1.3对象的定义和使用1.4构造函数与析构函数二、类和对象(二)2.1自引用指针this2.2对象数组与对象指针2.3string类2.4向函数传递对象2.5静态成员2.6友元2.7类的组合2.8共享数据的保护三、继承与派生3.1继承与派生3.2派生类的构造函数
- 【学Rust写CAD】15 定点数实现(fixed.rs)
Source.Liu
学Rust写CADrustCAD
源代码fixed.rs文件实现了一个定点数(FixedPoint)类型Fixed,用于在整数运算中模拟小数运算。代码如下://小数位数constFIXED_FRACTION_BITS:u32=16;//用于双线性插值(BilinearInterpolation)的计算,它决定了插值权重(weight)的精度位数。一般为4或8constBILINEAR_INTERPOLATION_BITS:u32=
- C++11 -表达式/包装器
UpUpUp……
c++开发语言笔记
1.lambda表达式各部分说明[capture-list]:捕捉列表,该列表总是出现在lambda函数的开始位置,编译器根据[]来判断接下来的代码是否为lambda函数,捕捉列表能够捕捉上下文中的变量供lambda函数使用。(parameters):参数列表。与普通函数的参数列表一致,如果不需要参数传递,则可以连同()一起省略。mutable:默认情况下,lambda函数总是一个const函数,
- JavaSE基础语法
sql12345678911
java
目录一.关键字二.标识符三.Java变量(强类型语法)四.基本数据类型五.引用数据类型六.基本数据类型间的转换七.运算符一.关键字定义:被Java语言赋予了特殊含义,用做专门用途的单词特点:关键字中所有字母都为小写注:关键字一共50个,其中const和goto是保留字。Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。二.标识符定义:Java对各种变量,方法和类等要素命名是
- 霸王茶姬小程序(2025年1月版)任务脚本
点云-激光雷达-Slam-三维牙齿
其他小程序
脚本用于自动执行微信小程序霸王茶姬的日常签到和积分管理任务。脚本概述脚本设置了定时任务(cron),每天运行两次,主要用于自动签到以获取积分,积分可以用来换取优惠券。核心方法constructor:构造函数,用于初始化网络请求的配置,设置了基础的HTTP请求头等。login:登录方法,通过发送用户的Token验证身份。signIn:签到方法,执行签到操作,并可能返回签到结果,如成功或失败的信息。g
- C++中获取文件名的后缀
一只小小汤圆
c++c++开发语言
在C++中获取文件名的后缀可以通过以下两种方法实现:方法一:使用C++17的std::filesystem库(推荐)#include#includenamespacefs=std::filesystem;std::stringgetFileExtension(conststd::string&filename){fs::pathp(filename);std::stringext=p.extens
- C 语言常用关键字详解:static、const、volatile
嵌入式修炼师
C基础c语言
C语言常用关键字详解:static、const、volatile文章目录C语言常用关键字详解:`static`、`const`、`volatile`1.`static`关键字1.1用于局部变量示例:1.2用于全局变量示例:1.3用于函数示例:2.`const`关键字2.1用于局部变量示例:2.2用于指针示例:3.`volatile`关键字3.1用于防止优化示例:3.2多线程环境中的使用总结C语言作
- 蓝桥杯省模拟赛 阶乘求值
咚咚轩
蓝桥杯
问题描述给定n,求n!除以1000000007的余数。其中n!表示n的阶乘,值为从1连乘到n的积,即n!=1×2×3×…×n。输入格式输入一行包含一个整数n。输出格式输出一行,包含一个整数,表示答案。样例输入3样例输出6样例输入7样例输出5040#includeusingnamespacestd;longlongsum=1;constintN=1000000007;intn;intmain(){i
- CString与const char*转换
lixu0828
VC++stringconstcharcstring
LPCTSTR与GetBuffer(intnMinBufLength)这两个函数提供了与标准C的兼容转换。在实际中使用频率很高,但却是最容易出错的地方。这两个函数实际上返回的都是指针,但它们有何区别呢?以及调用它们后,幕后是做了怎样的处理过程呢?(1)LPCTSTR它的执行过程其实很简单,只是返回引用内存块的串地址。它是作为操作符重载提供的,所以在代码中有时可以隐式转换,而有时却需强制转制。如:C
- 代码随想录day11(栈与队列)
Naive_7
算法
50.逆波兰表达式求值给你一个字符串数组tokens,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。题目链接/文章讲解/视频讲解:代码随想录逆波兰表达式(后缀表达式)classSolution{public:intevalRPN(vector&tokens){stackst;for(conststring&s:tokens){if(isdigit(s[0]
- Effective C++读书笔记(持续更新)
*流泪坨码头*
c++visualstudio
一、让自己习惯C++条款01:视C++为一个语言联邦C++高效编程守则视状况而变化,取决于你使用C++的哪一部分条款02:尽量以const,enum,inline替换#define对于单纯常量,最好以const对象或enum替换#define对于形似函数的宏,最好改用inline函数替换#define条款03:尽可能使用constconst出现在星号左边,表示被指物是常量;const出现在星号右侧
- [Effective C++]条款23:宁以non-member、non-friend替换member函数
Tim_10
CPPc++开发语言
.在C++中,宁以非成员函数、非友元函数替换成员函数,的设计原则是为了增强封装性、减少类之间的耦合,并提高代码的灵活性和可维护性。这个原则的核心思想是,如果一个函数不需要直接访问类的私有或受保护成员,那么它应该被设计为非成员函数(non-memberfunction),而不是成员函数(memberfunction)1、原因分析:1.1、增强封装性:成员函数可以直接访问类的私有成员,这会增加类的暴露
- C++: 红黑树迭代器,map和set的封装
R_.L
c++
(一)红黑树定义红黑树的定义:enumColour{RED,BLACK};templatestructRBTreeNode{//这里更新控制平衡也要加入parent指针T_data;RBTreeNode*_left;RBTreeNode*_right;RBTreeNode*_parent;Colour_col;RBTreeNode(constT&data):_data(data),_left(nu
- P3406 海底高铁(差分)
_qz
c++算法
题目描述分析差分求出每段路程的经过次数,在根据a,b,c求出哪种方案便宜for(inti=1;i#include#include#include#include#includeusingnamespacestd;constintmaxn=1e5+50;longlongn,m,a[maxn],b[maxn],t1,t2,t3;longlongans;intmain(){//freopen("a.tx
- 买瓜--dfs‘剪枝
泛舟起晶浪
深度优先剪枝算法
1.后缀和剪枝2.排序大数在前剪枝3.枚举3种情况#includeusingnamespacestd;constintN=2005;typedeflonglongll;constdoubleMAX=1e10;intn,m;doublea[32];doubles[32];intmi=-1;intc=0;voiddfs(doublew,intd,intx){if(w==m){if(!c)mi=d,c+
- 文件操作(1.文件资源上传到MinIO 2.文件资源保存在数据库中)
伏颜.
后端学习积累java
目录本文提供文件操作接口的实现(上传+下载)附件资源表实体类具体代码实现上传到MinIO服务器pom依赖yml配置MinIO配置服务实现类保存到数据库本文提供文件操作接口的实现(上传+下载)附件资源表实体类@Data@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode(callSuper=true)@Accessors(chain=true
- Opencv 源码解读之 ImageEncoder
Farmwang
openCV
ImageDecoder类ImageDecoder这个类,这个类其实就是一个图像数据的解析类。且看下面的源代码:classBaseImageDecoder//这就是我们要找的ImageDecoder类{public:BaseImageDecoder();virtual~BaseImageDecoder(){};intwidth()const{returnm_width;};intheight()c
- 手动搭建并配置react项目(webpack5)
程序员宝妈
webpack打包Reactreact.js前端前端框架
手动搭建并配置react项目(webpack5)介绍不使用脚手架,利用webpack,手动搭建react项目框架1、项目创建创建目录react_wepack2、webpack+react基础架构2.1配置webpack.dev.js基础配置说明可参考这篇文章配置loader、plugin、eslint【见webpack.dev.js】constpath=require("path");constM
- 蓝桥杯备考:DFS之数独
无敌大饺子 dot
蓝桥杯深度优先职场和发展
这道题的意思是每个3*3的格子只能有1到9九个数字,每行只能有1到9九个数字,每列也只能有1到9每个数字,我们可以开个col[N][N]表示某一列出现过的数字row[N][N]表示某一行出现的数字,st[N][N][N]表示每个3*3的子矩阵里出现的数字话说到这里,我们已经可以实现代码了#includeusingnamespacestd;constintN=15;inta[N][N];boolco
- c#变量和常量
m0_65567840
c#开发语言
1.静态常量(编译时常量)const在编译时就确定了值,必须在声明时就进行初始化且之后不能进行更改,可在类和方法中定义。定义方法如下:constdoublea=3.14;//正确声明常量的方法constintb;//错误,没有初始化2.动态常量(运行时常量)readonly在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。定义方法如下:classProgram{readonlyint
- 大量异步并发请求控制并发解决方案
javascript
可以使用Promise和异步函数。手动实现一个同步队列,实现代码如下:classSyncQueue{constructor(maxConcurrency=3){this.maxConcurrency=maxConcurrency//最大并发请求数量this.queue=[]//等待请求的请求队列this.running=0//正在执行的请求数量}enqueue(task){constpromise
- uniapp实现全局设置字体大小(字体大小切换)
矽东
uniappuni-appjavascript前端
效果图实现步骤1.安装配置postcss-px-to-viewpornpminstallpostcss-px-to-viewport--save-dev2.根目录下创建一个postcss.config.js文件,文件内容如下:constpath=require('path')module.exports={ parser:'postcss-comment', plugins:{ 'postcss
- Antd 3.x Form表单校验并提供初始值默认值
Alfie_1115
javascript前端reactjs
Antd3.xForm表单校验并提供初始值默认值配合日期选择器使用下面展示一些内联代码片。const[startValue,setStartValue]=useState(moment())useEffect(()=>{queryInvoice()},[])const
- 鸿蒙Flutter实战:20. Flutter集成高德地图,同层渲染
少湖说
harmonyosflutter华为
本文以同层渲染为例,介绍如何集成高德地图完整代码见Flutter鸿蒙版Demo概述Dart侧核心代码如下,通过OhosView来承载原生视图OhosView(viewType:'com.shaohushuo.app/customView',onPlatformViewCreated:_onPlatformViewCreated,creationParams:const{'initParams':'
- JavaScript、CSS像素动画特效代码
我将从专业角度解析这个像素动画特效的实现原理,并提供优化方案。以下是详细的技术分解:一、核心实现原理graphTDA[HTML结构]-->B[容器定位]B-->C[CSS动画驱动]C-->D[JS动态生成]D-->E[粒子生命周期管理]二、代码优化建议内存优化方案://修改后的JS代码(增加粒子回收机制)constMAX_PARTICLES=100;//最大粒子数functioncreatePix
- 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