- md5加密
落地成佛
using(MD5md5=MD5.Create()){byte[]byteHash=md5.ComputeHash(System.Text.Encoding.Default.GetBytes(s));stringstrRes=BitConverter.ToString(byteHash).Replace("-","");returnstrRes.ToUpper();}
- openssl-1.1.1w-win64
创想未来CTF
QtC++https
下载地址:ICSDownload-Overbyte解压后添加环境变量或放在目录“C:\Windows\System32”下其他版本下载GitGodeOpenSSL1.1.1g安装包
- Java 基本数据类型
froginwe11
开发语言
Java基本数据类型引言Java作为一种广泛使用的编程语言,其数据类型是构成程序的基础。Java的基本数据类型是编程语言的核心组成部分,它们定义了变量可以存储的数据类型。在本文中,我们将深入探讨Java的基本数据类型,包括它们的用途、特点以及在实际编程中的应用。Java基本数据类型概述Java语言提供了以下8种基本数据类型:byte:字节型,用于表示整数,范围从-128到127。short:短整型
- android开发-bug记录
TUZILE
android开发androidjavaandroidstudiobug
2022.01.10正式接触android开发刚三四个月,记录一下三个第一次遇到的bug自定义的圆角控件加载图片导致OOMjava.lang.OutOfMemoryError:Failedtoallocatea373980byteallocationwith288904freebytesand282KBuntilOOM//atdalvik.system.VMRuntime.newNonMovabl
- ByteBuf
码农崛起
jdk自带ByteBuffer,看名字就知道作用差不多,区别是ByteBuffer读写都用一个指针,ByteBuf读写各有一个指针。都分为基于javaheap的headbuffer和基于DirectBuffer的buffer。DirectBuffer是不能被gc的,用完需要手动释放,虽然麻烦但是效率高,看吧,谁都有优点和缺点。加上一大堆看名字就知道干嘛的方法。ByteBuf是个抽象类,源代码里的文
- Windbg 命令列表
flyingleo1981
18)MemoryCmdVariants/ParamsDescriptiond*d[a|u|b|w|W|d|c|q|f|D][/c#][Addr]dy[b|d]..Displaymemory[#columnstodisplay]a=asciicharsu=Unicodecharsb=byte+asciiw=word(2b)W=word(2b)+asciid=dword(4b)c=dword(4b)
- LockscreenCredential 类方法详解
始于足下 方能行更远
8_SystemUiandroid
LockscreenCredential是Android系统中用于表示锁屏凭证(如PIN、密码、图案等)的类,它封装了用户设置的解锁凭据,并提供安全的方式来处理和验证这些凭据。这个类主要用于系统锁屏、设备加密以及用户认证等场景。LockscreenCredential类方法详解构造函数和创建方法私有构造函数privateLockscreenCredential(inttype,byte[]cred
- 【JVM篇06】:JVM的直接内存及其与nio提升io效率的联系详解
文章目录一、什么是JVM直接内存(DirectMemory)?二、效率提升的核心:剖析NIO数据拷贝路径的本质区别场景设定:从网络读取数据到Java程序中1.传统方式:使用堆内存(`HeapByteBuffer`)2.优化方式:使用直接内存(`DirectByteBuffer`)三、直接内存的“零拷贝”到底是什么?四、总结本文将深入探讨下一个JVM关键概念——直接内存,并详细剖析它究竟是如何通过“
- C语言基础(自学第一天)
#includeintmain(){ return0;}注:main函数是程序的入口一个工程中有且仅有一个mian函数数据类型char//字符数据类型大小:1byteshort//短整型大小:2byteint//整型大小:4bytelong//长整型大小:4/8bytelonglong//更长的整型大小:8bytefloat//单精度浮点数大小:4bytedouble//双精度浮点数大小
- mysql5.1 innodb page size_mysq5.7.28配置innodb_page_size错误引起ERROR 1071 (42000)
李首良
mysql5.1innodbpagesize
帮客户部署一套mysql并导入数据时出现ERROR1071(42000):Specifiedkeywastoolong;maxkeylengthis1536bytes错误;环境:数据库版本:mysql5.7.28操作系统:centos6.8CREATETABLE`QRTZ_BLOB_TRIGGERS`(->`SCHED_NAME`varchar(120)CHARACTERSETutf8COLLAT
- Java 内存操作流深度解析
tsxchen
I/O文件流java算法开发语言
内存操作流是JavaI/O中处理内存数据的核心工具,它允许直接在内存中读写数据,避免了磁盘I/O的开销。这类流特别适合处理临时数据、数据转换和内存缓存等场景。一、内存操作流体系概览内存操作流主要分为两类:字节内存流:处理原始字节数据字符内存流:处理文本数据二、字节内存操作流详解1.ByteArrayInputStream在内存中读取字节数组的输入流核心特性:数据源:字节数组(byte[])支持标记
- oracle数据库表空间碎片整理
GottdesKrieges
Oracle实践篇(二)数据库oracle
oracle数据库表空间碎片整理表空间碎片情况检查表空间碎片问题处理收缩表表空间手动整理exp/imp导出再导入移动表到新的表空间表空间碎片情况检查对比表实际使用空间和数据文件占用空间:--实际数据占用空间selecttablespace_name,round(sum(bytes/1024/1024/1024),2
- android 图片去色,android图片圆角、图片去色处理示例
packagecom.zhanggeng.contact.tools;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importandroid.gra
- c++ primer plus 知识点总结(更新中)
豫鹿deer
c++算法vscode
c++笔记第三章变量变量名只能使用数字、字母和下划线数字不能开头尽量不以下划线开头不要使用关键字比如double整型术语宽度表示存储整数时使用的内存量1byte=8bit1kb=1024byte1mb=1024kbsizeof()返回类型或变量的长度,单位为字节。注意对类型名使用时,要将类型名加上括号例如sizeof(int),对变量使用时可以不加括号sizeofn-int整型溢出规则:[外链图片
- C#(数据类型)
慢慢沉
C#c#
C#数据类型详解C#的数据类型分为值类型和引用类型两大类,系统还提供了指针类型(需在unsafe上下文使用)。以下是详细分类和说明:一、值类型(直接存储数据)简单类型整数类型:sbyte:8位有符号整数,范围:$-128$到$127$byte:8位无符号整数,范围:$0$到$255$short:16位有符号整数,范围:$-32,768$到$32,767$ushort:16位无符号整数,范围:$0$
- C 语言深入理解指针
一、指针基础与内存地址1.内存与地址内存被划分为一个个字节单元,每个单元都有唯一编号(地址),也称指针。计算机通过地址总线实现对内存的编址,32位机器有32根地址总线,可表示2³²个地址(4GB空间),64位机器则支持更大内存空间。单位换算:1字节(byte)=8比特(bit),1KB=1024B,1MB=1024KB,以此类推。地址表示:通常以十六进制形式呈现(如0x006FFD70)。2.指针
- tf.decode_raw
Wanderer001
TensorFlowtensorflow人工智能python
参考tf.decode_raw-云+社区-腾讯云tf.decode_raw函数的意思是将原来编码为字符串类型的变量重新变回来,这个方法在数据集dataset中很常用,因为制作图片源数据一般写进tfrecord里用to_bytes的形式,也就是字符串。这里将原始数据取出来,必须制定原始数据的格式,原始数据是什么格式这里解析必须是什么格式,要不然会出现形状的不对应问题!例如元数据是tf.float64
- C# 安全高效玩转内存:深入剖析 Span 的本质
bpluo42657
算法
在C#开发中,你是否曾为以下问题困扰?需要处理多种内存(数组、栈内存、非托管内存)但写法各异大量数组切片操作导致复制开销使用unsafe指针时如履薄冰Span正是为解决这些问题而生的利器!它提供了一种统一、安全且高效的内存操作方式。一、Span的本质:内存的“安全视图”Span的核心价值在于它自身不拥有内存,而是为现有内存提供类型安全且高性能的视图。csharp//1.基于数组的视图byte[]b
- 【电赛学习笔记】MaxiCAM 图像基础操作
悠哉悠哉愿意
算法学习笔记学习笔记python视觉检测
前言本文仅是对MaxiPy官方文档的整理与总结,自学请看官方文档,侵权即删MaixCAMMaixPy快速开始-MaixPy下面给出「整段速查脚本」的逐行、逐参数超详细中文解释,方便你随时Ctrl+F定位查阅。#-*-coding:utf-8-*-"""MaixCAMMaixPy图像基础速查1.创建/加载/保存2.颜色空间与格式转换3.几何变换4.绘图与文字5.与外部数据(bytes、OpenCV、
- Netty中ByteBuf的使用
Jooou
开发语言niojvm
ByteBuf使用ByteBuf是一个抽象的、可随机和顺序访问的零个或多个字节的序列。它为一个或多个原始字节数组(byte[])和NIO缓冲区(ByteBuffer)提供了抽象视图。与JavaNIO的ByteBuffer相比,ByteBuf具有更多优势,如扩展性、透明零拷贝、自动容量扩展和更好的性能等。创建缓冲区推荐使用Unpooled类中的辅助方法来创建新的ByteBuf实例,而不是直接调用具体
- Netty中AbstractReferenceCountedByteBuf对AtomicIntegerFieldUpdater的使用
Jooou
java开发语言
AtomicIntegerFieldUpdater使用java.util.concurrent.atomic.AtomicIntegerFieldUpdater是Java并发包中一个非常强大的工具,它允许你以原子方式更新指定对象的volatileint字段,而无需使用锁。这在实现高性能、非阻塞的并发算法时非常有用,就像Netty在其ByteBuf引用计数管理中所做的那样。1.AtomicInteg
- 【Oracle】ORA-01653 无法通过 8192 (在表空间 XXX 中) 扩展 问题处理
-XWB-
Oracleoracle
原因:Oracle的表空间不足了,导致数据无法插入。处理方法:第一步、查看表空间使用情况selectupper(f.tablespace_name)as"表空间名称",round(d.availb_bytes,4)as"表空间分配大小(G)",round((d.availb_bytes-f.free_bytes),4)as"分配空间已使用大小(G)",round(f.free_bytes,4)as
- (1015)编码转换,怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串【基础】
binggoling
面试java字符串
编码转换:怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?【基础】先来一个Java编程答案:importjava.io.UnsupportedEncodingException;publicclassTest{publicstaticvoidmain(String[]args){Strings1="你好";try{Strings2=newString(s1.getBytes(
- 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
document_ljt
javajava
出处:https://www.cnblogs.com/haimishasha/p/6117968.html目录1.1.ISO-8859-1通常叫做Latin-11.2.GB2312/GBK1.3unicode1.4UTF2.1Unicode与各编码之间的直接转换2.2Unicode与各编码之间的交叉转换2.3编码过程中错误诊断参考3.1getBytes(charset)3.2newString(c
- 深入解读 Python 字节码:语言深处的效率与优化之旅
清水白石008
pythonPython题库python开发语言
标题:深入解读Python字节码:语言深处的效率与优化之旅开篇引入Python是一门易学易用、功能强大的编程语言,无论是初学者还是资深开发者都被它简洁优雅的语法所吸引。然而,Python的灵活性背后隐藏着一个高效的执行机制——字节码(Bytecode)。理解字节码可以帮助开发者更好地优化代码性能、调试问题,甚至深入研究Python的执行机制。在这篇文章中,我们将揭开Python字节码的神秘面纱,介
- 【python】pyserial 在windows 下卡住的bug
CH_Qing
pythonwindowsbug
使用当前pyserial在Windwos下做的项目,移交到客户案场后,客户发现程序会卡住,经过最终调查,是卡在了pyserial的write方法中了。具体现象:程序卡在write方法中,长时间无法返回,即使设置了write_timeout也无法返回。分析下来我们将Send方法的代码切出来:defwrite(self,data):"""Outputthegivenbytestringoverthes
- MD5算法
fht1
1024程序员节
publicstaticStringmd5(Stringsource){try{Stringstr=source;MessageDigestmd=MessageDigest.getInstance("MD5");//利用哈希算法,MD5byte[]output=md.digest(str.getBytes());StringBuilderstringBuilder=newStringBuilder
- mysql数据导入报错:Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT
DN金猿
mysqloracle及其他数据库mysql数据库
报错信息:ERROR1118(42000)atline8280:Rowsizetoolarge(>8126).ChangingsomecolumnstoTEXTorBLOBorusingROW_FORMAT=DYNAMICorROW_FORMAT=COMPRESSEDmayhelp.Incurrentrowformat,BLOBprefixof768bytesisstoredinline.错误原因
- java httpclient使用socks5代理(一)创建socks5代理服务
weixin_33984032
java
2019独角兽企业重金招聘Python工程师标准>>>最近遇到使用httpclient用socks5代理的需求,一头雾水,度娘谷歌一对方法后得出以下方法实现需要;下面是第一篇部分:创建socks代理服务,这部分代码是网上转载所得,记录一下packagecom.test;importjava.io.ByteArrayOutputStream;importjava.io.Closeable;impor
- Kotlin基础2
翻跟头的牛爷爷
kotlin开发语言android
查看Kotlin编译之后的字节码,有助于我们深入理解Kotlin语言两种方式:Shift键两次,输入Showkotlin.Tools->Kotlin->ShowKotlinBytecodeJava有两种数据类型:引用类型,基本数据类型Kotlin只提供引用数据类型这一种数据类型,出于高性能的需要,Kotlin编译器会在Java字节码中改用基本数据类型。range表达式inA..B,in关键字用来检
- 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