- python :built-in functions
angry_grina
python
今天研究下python的内建函数:Built-inFunctionsabs()divmod()input()open()staticmethod()all()enumerate()int()ord()str()any()eval()isinstance()pow()sum()basestring()execfile()issubclass()print()super()bin()file()ite
- ES6从入门到精通:Proxy与Reflect
夏梦春蝉
ES6从入门到精通es6javascript前端
Proxy的基本概念Proxy用于创建对象的代理,拦截并自定义对象的基本操作(如属性读取、赋值、函数调用等)。通过newProxy(target,handler)创建,target为目标对象,handler为拦截操作的对象。consttarget={name:'Alice'};consthandler={get(target,prop){returnpropintarget?target[prop
- 百度地图开发之点聚合功能
}@OverrideprotectedvoidonPause(){mMapView.onPause();super.onPause();}@OverrideprotectedvoidonResume(){mMapView.onResume();super.onResume();}@OverrideprotectedvoidonDestroy(){mMapView.onDestroy();super
- 帮我仔细讲解一下注解中设置值,这值是如何被注解修饰的类利用到的?介绍具体内部逻辑
小花鱼2025
java开发语言
这个问题非常好,涉及到了Java注解的运行机制,特别是:注解中的参数是怎么设置的,又是怎么在运行时被类/方法/字段使用到的?我将从定义→编译期→运行期→实际用途这4个方面,深入剖析Java注解内部逻辑。✅一、注解定义&设置参数我们先自定义一个注解,并使用它://1.定义注解@Retention(RetentionPolicy.RUNTIME)//关键:允许运行时反射获取@Target(Elemen
- pdfplumber、pandas根据指定字段提取PDF跨页表格数据
importpdfplumberimportpandasaspdfromtypingimportList,Dict,Tuple,Optionaldefextract_table_by_title(pdf_path:str,target_title:str,page_range:Tuple[int,int]=(1,None),#(起始页,结束页),None表示到最后一页title_padding:f
- FastAPI如何玩转安全防护,让黑客望而却步?
url:/posts/c1314c623211c9269f36053179a53d5c/title:FastAPI如何玩转安全防护,让黑客望而却步?date:2025-07-04T18:28:43+08:00lastmod:2025-07-04T18:28:43+08:00author:cmdragonsummary:FastAPI通过内置的OAuth2和JWT支持,提供了开箱即用的安全解决方案,
- Kafka消费者分区分配机制与生产环境配置指南
引言在分布式系统中,Kafka作为高性能消息队列被广泛应用。本文将深入探讨Kafka消费者的分区分配机制,分析不同分配策略的优劣,并提供生产环境中的最佳配置实践。我们还将详细解析消费者常见问题的排查方法,特别是消费者未分配到分区的情况。一、Kafka消费者分区分配机制1.1基础分配原则Kafka通过消费者组(ConsumerGroup)机制实现消息的并行处理。核心规则包括:消费者组隔离:不同消费者
- java面试,备战春招一
秋水调威士忌
java面试java面试jvm
1.==和equals的区别1.对于基本数据类型==比较的是值,equals不能比较基本数据类型2.对于引用类型,==比较的是引用地址。3.对于引用类型,如果没有重写equals方法那么equals比较的是引用地址。若想比较引用类型的值那么需要重写equals方法。注:如果不重写equals方法,默认调用object的equals方法,而object中的equals方法还是==2.介绍一下java
- 用队列实现生产者-消费者模型 —— 详解与代码讲解
百年孤独_
C语言项目计算机网络C操作系统
用队列实现生产者-消费者模型——详解与代码讲解一、引言生产者-消费者问题(Producer-ConsumerProblem)是操作系统、并发编程和数据结构课程中的经典案例。它描述了两个角色:生产者负责生产数据并放入缓冲区,消费者则从缓冲区取出数据进行消费。两者通过一个共享的缓冲区(通常为队列)进行协作,既要保证数据的正确流转,又要避免资源竞争和数据丢失。本篇文章将以循环队列为核心,详细讲解如何用C
- ibm gdc和gdl_在GDC夏季交流和学习
ibmgdc和gdlLevelupyourartistskillsandnetworkwithUnityexpertsduringGameDeveloperConferenceSummer(GDCSummer),takingplaceonlineAugust4–6,2020.在2020年8月4日至6日在线举行的夏季游戏开发者大会(GDC夏季)期间,与Unity专家一起提高您的艺术家技能和网络联系。
- leetcode 643. 子数组最大平均数 I
�粉红豹护体
leetcode
子数组最大平均数I给定n个整数,找出平均数最大且长度为k的连续子数组,并输出该最大平均数。示例1:输入:[1,12,-5,-6,50,3],k=4输出:12.75解释:最大平均数(12-5-6+50)/4=51/4=12.75注意:1result){result=cursum;}}return(double)result/k;}}
- python 海象运算符_python := 海象运算符
伶邪
python海象运算符
最近在做算法题越来越发现python写法真的挺好用的记下来map(lambdax:sum(x))中lambda代表匿名函数re.findall(r'0+|1+',s)是正则表达式:=海象运算符转if(n:=len(a))>10:print(f"Lististoolong({n}elements,expected10:print(f"Lististolong({len(a)}elements,exp
- python := 海象运算符
challenge-linge
itit
参考视频教程:**体系课-Go+Python双语言混合开发盯紧技术先机抓紧高薪机遇**最近在做算法题越来越发现python写法真的挺好用的记下来map(lambdax:sum(x))中lambda代表匿名函数re.findall(r’0+|1+’,s)是正则表达式:=海象运算符转背景:python3.8正式版最近更新了,其中PEP572中的海象运算符获得正式python版本的支持.我看了官网的文档
- ARM DStream仿真器脚本常用命令
以下是ARMDStream仿真器脚本中常用的命令及其功能分类,结合调试流程和典型应用场景整理:⚙️一、连接与初始化命令connect建立与目标设备的连接,需指定接口类型(如JTAG/SWD)和处理器核心。示例:connect-pjtag-ccortex-a5reset复位目标设备,支持软复位(内核)或硬复位(全芯片)。target选择多核系统中的特定处理器核心,例如targetcortex-a50
- Oracle RMAN技术原理详解
pengdott
数据库oracle数据库
目录一、RMAN概述二、RMAN核心组件1.RMAN客户端2.目标数据库(TargetDatabase)3.RMAN资料库(RMANRepository)4.恢复目录(RecoveryCatalog-可选)三、RMAN备份原理1.备份类型2.备份集与备份片3.备份过程四、RMAN恢复原理1.恢复类型2.恢复过程五、RMAN高级特性1.块变更跟踪(BlockChangeTracking)2.压缩备份
- 【置顶】【GESP】C++ 认证学习资源汇总
CoderCodingNo
GESPc++学习开发语言
其余详见:【置顶】【GESP】C++认证学习资源汇总|OneCoder【置顶】【GESP】C++认证学习资源汇总|OneCoder本置顶将汇总本站发布的GESP认证考试相关资源,并进行了分类整理,不定期更新。https://www.coderli.com/gesp-resource-summary/考纲解析一级(考纲)考点知识讲解考试级别(1)了解计算机的基本构成(CPU,内存,I/O设备等),了
- 洛谷P4317 花神的数论题题解
cwplh
题解算法图论
题目传送门本体接主要是对小粉兔大佬的题解的进一步解释。题目中让我们求∏i=1Nsum(i)\prod_{i=1}^N\operatorname{sum}(i)∏i=1Nsum(i),很明显不能直接暴力枚举求解,因此我们稍微归个类:把sum(i)\operatorname{sum}(i)sum(i)值相同的iii放在一起,假设sum(i)\operatorname{sum}(i)sum(i)值
- 代码随想录算法训练营第二十九天|贪心算法part3
xindafu
贪心算法算法
134.加油站题目链接:134.加油站-力扣(LeetCode)文章讲解:代码随想录classSolution{public:intcanCompleteCircuit(vector&gas,vector&cost){vectordiff;for(inti=0;i=0){startindex=i;}sum+=diff[i];if(sum&ratings){intsize=ratings.size(
- textblock和label
lph1972
wpf
在WPF中,可以使用Label控件的Target属性和Binding来实现通过快捷键(如Alt+字母)将焦点跳转到指定控件的功能。以下是具体的实现方法:使用Label的Target属性Label控件支持通过Target属性将助记键(如Alt+字母)与另一个控件关联。在Label的Content属性中使用下划线_来指定快捷键对应的字母。例如:在这个例子中,当用户按下Alt+N时,焦点会跳转到txtN
- Python——进程与线程
TY-2025
pythonlinux网络
进程与线程1.进程进程是指启动后的程序,系统会为进程分配内存空间1.1创建进程的方式(1)使用Process子类语法结构class子进程(Process):pass(2)使用multiprocessing模块语法结构Process(group=None,target,name,args,kwargs)参数说明group:表示分组,实际上不使用,值默认为Nonetarget:表示子进程要执行的任务,
- 力扣 hot100 Day24
240.搜索二维矩阵II编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。//看提示写的classSolution{public:boolsearchMatrix(vector>&matrix,inttarget){intm=matrix.size(),n=matrix[0].size();intr
- Rust 闭包
在Rust中,闭包(closures)是强大的匿名函数,可以捕获其环境中的变量。以下是Rust闭包的全面解析:一、基础闭包语法//无参数闭包letgreet=||println!("Hello!");greet();//带参数闭包letadd=|a:i32,b:i32|->i32{a+b};println!("Sum:{}",add(3,5));//类型可省略(编译器推断)letmultiply=
- LeetCode 0035.搜索插入位置【Go】
熠熠晨曦_
Algorithmleetcode
搜索插入位置leetcode35.搜索插入位置题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。示例1:输入:nums=[1,3,5,6],target=5输出:2示例2:输入:nums=[1,3,5,6],target=2输出:1示例3:输入:nums=[1,3,5,6],t
- 74. 搜索二维矩阵
zmuy
LeetCodehot100矩阵算法线性代数
题目:给你一个满足下述两条属性的mxn整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数target,如果target在矩阵中,返回true;否则,返回false。示例:输入:matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],target=3输出:true解题思路:如果我们将矩阵按行拼接成一个一维矩
- 34. 在排序数组中查找元素的第一个和最后一个位置
zmuy
LeetCodehot100算法数据结构leetcode
题目:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。示例:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]解题思路:如何查找元素在数组中的开始位置?只需要在while中,即使num
- f-string字符串格式化
shyoutou
python
一、基本用法 name="Alice" age=25 #使用f-string嵌入变量 message=f"Mynameis{name}andIam{age}yearsold." print(message) #输出MynameisAliceandIam25yearsold.二、嵌入表达式 a=5 b=10 #使用f-string嵌入表达式 result=f"Thesumof{a}and
- 华为OD 机试 2025B卷- 最长连续子序列 (C++ & Python & JAVA & JS & GO)
无限码力
华为OD机试真题刷题笔记华为od华为OD2025B卷华为OD机试2025B卷华为OD机考2025B卷算法
最长连续子序列华为OD机试真题目录:点击去查看华为OD2025B卷100分题型题目描述有N个正整数组成的一个序列。给定整数sum,求长度最长的连续子序列,使他们的和等于sum,返回此子序列的长度,如果没有满足要求的序列,返回-1。输入描述第一行输入是:N个正整数组成的一个序列第二行输入是:给定整数sum输出描述最长的连续子序列的长度备注输入序列仅由数字和英文逗号构成,数字之间采用英文逗号分隔序列长
- Excel 如何进行多条件查找或求和?
冰糖心书房
Excelexcel
处理“多条件”的统计和查找是Excel数据分析中非常高频的场景。Excel提供了一系列强大的“IFS”家族函数来专门解决这类问题。这些函数的设计思想非常相似,一旦你学会一个,其他的就能触类旁通。SUMIFS:多条件求和COUNTIFS:多条件计数AVERAGEIFS:多条件求平均值此外,对于多条件查找,最强大的工具依然是XLOOKUP。一、多条件求和:SUMIFSSUMIFS函数可能是这个系列里最
- Python如何统治AI世界?一文读懂它的优势与挑战
AI与编程之窗
人工智能python人工智能TensorFlowPyTorchScikit-learnKerasNumPy
一、Python语言介绍1.1Python语言概述Python是一种由GuidovanRossum于1991年首次发布的高级编程语言。其设计理念强调代码的可读性和简洁性,使其成为了许多开发者的首选语言。Python的语法简洁直观,采用了缩进来定义代码块,这与其他使用花括号或关键词的编程语言不同。Python支持多种编程范式,包括面向对象编程、过程化编程和函数式编程,这使得它在各种应用场景中都表现出
- Java equals方法揭秘:为何必须重写?
青衫-郁郁寡欢
javaintellij-idea开发语言
一、引言我们在编写Java实体类时,会使用构造器生成对应的有参的构造方法,无参的构造方法,以及set方法和get方法、equals方法和hashCode方法。那么我们来关注一下idea构造器生成的equals方法到底写了什么?而且为什么要写equals方法。二、equals方法里面都写了什么?这里我们举例一下Student类,包含学号、姓名、年龄属性。publicclassStudent{priv
- Dom
周华华
JavaScripthtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 【Spark九十六】RDD API之combineByKey
bit1129
spark
1. combineByKey函数的运行机制
RDD提供了很多针对元素类型为(K,V)的API,这些API封装在PairRDDFunctions类中,通过Scala隐式转换使用。这些API实现上是借助于combineByKey实现的。combineByKey函数本身也是RDD开放给Spark开发人员使用的API之一
首先看一下combineByKey的方法说明:
- msyql设置密码报错:ERROR 1372 (HY000): 解决方法详解
daizj
mysql设置密码
MySql给用户设置权限同时指定访问密码时,会提示如下错误:
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
问题原因:你输入的密码是明文。不允许这么输入。
解决办法:用select password('你想输入的密码');查询出你的密码对应的字符串,
然后
- 路漫漫其修远兮 吾将上下而求索
周凡杨
学习 思索
王国维在他的《人间词话》中曾经概括了为学的三种境界古今之成大事业、大学问者,罔不经过三种之境界。“昨夜西风凋碧树。独上高楼,望尽天涯路。”此第一境界也。“衣带渐宽终不悔,为伊消得人憔悴。”此第二境界也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”此第三境界也。学习技术,这也是你必须经历的三种境界。第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。这里,注
- Hadoop(二)对话单的操作
朱辉辉33
hadoop
Debug:
1、
A = LOAD '/user/hue/task.txt' USING PigStorage(' ')
AS (col1,col2,col3);
DUMP A;
//输出结果前几行示例:
(>ggsnPDPRecord(21),,)
(-->recordType(0),,)
(-->networkInitiation(1),,)
- web报表工具FineReport常用函数的用法总结(日期和时间函数)
老A不折腾
finereport报表工具web开发
web报表工具FineReport常用函数的用法总结(日期和时间函数)
说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd。而且必须用英文环境下双引号(" ")引用。
DATE
DATE(year,month,day):返回一个表示某一特定日期的系列数。
Year:代表年,可为一到四位数。
Month:代表月份。
- c++ 宏定义中的##操作符
墙头上一根草
C++
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { &nbs
- 分析Spring源代码之,DI的实现
aijuans
springDI现源代码
(转)
分析Spring源代码之,DI的实现
2012/1/3 by tony
接着上次的讲,以下这个sample
[java]
view plain
copy
print
- for循环的进化
alxw4616
JavaScript
// for循环的进化
// 菜鸟
for (var i = 0; i < Things.length ; i++) {
// Things[i]
}
// 老鸟
for (var i = 0, len = Things.length; i < len; i++) {
// Things[i]
}
// 大师
for (var i = Things.le
- 网络编程Socket和ServerSocket简单的使用
百合不是茶
网络编程基础IP地址端口
网络编程;TCP/IP协议
网络:实现计算机之间的信息共享,数据资源的交换
协议:数据交换需要遵守的一种协议,按照约定的数据格式等写出去
端口:用于计算机之间的通信
每运行一个程序,系统会分配一个编号给该程序,作为和外界交换数据的唯一标识
0~65535
查看被使用的
- JDK1.5 生产消费者
bijian1013
javathread生产消费者java多线程
ArrayBlockingQueue:
一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素。队列的尾部 是在队列中存在时间最短的元素。新元素插入到队列的尾部,队列检索操作则是从队列头部开始获得元素。
ArrayBlockingQueue的常用方法:
- JAVA版身份证获取性别、出生日期及年龄
bijian1013
java性别出生日期年龄
工作中需要根据身份证获取性别、出生日期及年龄,且要还要支持15位长度的身份证号码,网上搜索了一下,经过测试好像多少存在点问题,干脆自已写一个。
CertificateNo.java
package com.bijian.study;
import java.util.Calendar;
import
- 【Java范型六】范型与枚举
bit1129
java
首先,枚举类型的定义不能带有类型参数,所以,不能把枚举类型定义为范型枚举类,例如下面的枚举类定义是有编译错的
public enum EnumGenerics<T> { //编译错,提示枚举不能带有范型参数
OK, ERROR;
public <T> T get(T type) {
return null;
- 【Nginx五】Nginx常用日志格式含义
bit1129
nginx
1. log_format
1.1 log_format指令用于指定日志的格式,格式:
log_format name(格式名称) type(格式样式)
1.2 如下是一个常用的Nginx日志格式:
log_format main '[$time_local]|$request_time|$status|$body_bytes
- Lua 语言 15 分钟快速入门
ronin47
lua 基础
-
-
单行注释
-
-
[[
[多行注释]
-
-
]]
-
-
-
-
-
-
-
-
-
-
-
1.
变量 & 控制流
-
-
-
-
-
-
-
-
-
-
num
=
23
-
-
数字都是双精度
str
=
'aspythonstring'
- java-35.求一个矩阵中最大的二维矩阵 ( 元素和最大 )
bylijinnan
java
the idea is from:
http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix {
/**see http://blog.csdn.net/zhanxinhang/article/details/6731134
* Q35
求一个矩阵中最大的二维
- mongoDB文档型数据库特点
开窍的石头
mongoDB文档型数据库特点
MongoDD: 文档型数据库存储的是Bson文档-->json的二进制
特点:内部是执行引擎是js解释器,把文档转成Bson结构,在查询时转换成js对象。
mongoDB传统型数据库对比
传统类型数据库:结构化数据,定好了表结构后每一个内容符合表结构的。也就是说每一行每一列的数据都是一样的
文档型数据库:不用定好数据结构,
- [毕业季节]欢迎广大毕业生加入JAVA程序员的行列
comsci
java
一年一度的毕业季来临了。。。。。。。。
正在投简历的学弟学妹们。。。如果觉得学校推荐的单位和公司不适合自己的兴趣和专业,可以考虑来我们软件行业,做一名职业程序员。。。
软件行业的开发工具中,对初学者最友好的就是JAVA语言了,网络上不仅仅有大量的
- PHP操作Excel – PHPExcel 基本用法详解
cuiyadll
PHPExcel
导出excel属性设置//Include classrequire_once('Classes/PHPExcel.php');require_once('Classes/PHPExcel/Writer/Excel2007.php');$objPHPExcel = new PHPExcel();//Set properties 设置文件属性$objPHPExcel->getProperties
- IBM Webshpere MQ Client User Issue (MCAUSER)
darrenzhu
IBMjmsuserMQMCAUSER
IBM MQ JMS Client去连接远端MQ Server的时候,需要提供User和Password吗?
答案是根据情况而定,取决于所定义的Channel里面的属性Message channel agent user identifier (MCAUSER)的设置。
http://stackoverflow.com/questions/20209429/how-mca-user-i
- 网线的接法
dcj3sjt126com
一、PC连HUB (直连线)A端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 二、PC连PC (交叉线)A端:(568A): 白绿,绿,白橙,蓝,白蓝,橙,白棕,棕; B端:(标准568B):白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。 三、HUB连HUB&nb
- Vimium插件让键盘党像操作Vim一样操作Chrome
dcj3sjt126com
chromevim
什么是键盘党?
键盘党是指尽可能将所有电脑操作用键盘来完成,而不去动鼠标的人。鼠标应该说是新手们的最爱,很直观,指哪点哪,很听话!不过常常使用电脑的人,如果一直使用鼠标的话,手会发酸,因为操作鼠标的时候,手臂不是在一个自然的状态,臂肌会处于绷紧状态。而使用键盘则双手是放松状态,只有手指在动。而且尽量少的从鼠标移动到键盘来回操作,也省不少事。
在chrome里安装 vimium 插件
- MongoDB查询(2)——数组查询[六]
eksliang
mongodbMongoDB查询数组
MongoDB查询数组
转载请出自出处:http://eksliang.iteye.com/blog/2177292 一、概述
MongoDB查询数组与查询标量值是一样的,例如,有一个水果列表,如下所示:
> db.food.find()
{ "_id" : "001", "fruits" : [ "苹
- cordova读写文件(1)
gundumw100
JavaScriptCordova
使用cordova可以很方便的在手机sdcard中读写文件。
首先需要安装cordova插件:file
命令为:
cordova plugin add org.apache.cordova.file
然后就可以读写文件了,这里我先是写入一个文件,具体的JS代码为:
var datas=null;//datas need write
var directory=&
- HTML5 FormData 进行文件jquery ajax 上传 到又拍云
ileson
jqueryAjaxhtml5FormData
html5 新东西:FormData 可以提交二进制数据。
页面test.html
<!DOCTYPE>
<html>
<head>
<title> formdata file jquery ajax upload</title>
</head>
<body>
<
- swift appearanceWhenContainedIn:(version1.2 xcode6.4)
啸笑天
version
swift1.2中没有oc中对应的方法:
+ (instancetype)appearanceWhenContainedIn:(Class <UIAppearanceContainer>)ContainerClass, ... NS_REQUIRES_NIL_TERMINATION;
解决方法:
在swift项目中新建oc类如下:
#import &
- java实现SMTP邮件服务器
macroli
java编程
电子邮件传递可以由多种协议来实现。目前,在Internet 网上最流行的三种电子邮件协议是SMTP、POP3 和 IMAP,下面分别简单介绍。
◆ SMTP 协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)是一个运行在TCP/IP之上的协议,用它发送和接收电子邮件。SMTP 服务器在默认端口25上监听。SMTP客户使用一组简单的、基于文本的
- mongodb group by having where 查询sql
qiaolevip
每天进步一点点学习永无止境mongo纵观千象
SELECT cust_id,
SUM(price) as total
FROM orders
WHERE status = 'A'
GROUP BY cust_id
HAVING total > 250
db.orders.aggregate( [
{ $match: { status: 'A' } },
{
$group: {
- Struts2 Pojo(六)
Luob.
POJOstrust2
注意:附件中有完整案例
1.采用POJO对象的方法进行赋值和传值
2.web配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee&q
- struts2步骤
wuai
struts
1、添加jar包
2、在web.xml中配置过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.st