- list和vector的区别
Ashen—one
listwindows数据结构
1>list可以按值删除vector和deque没有给定的函数,需要find();和erase();一起使用才能做到2>list删除元素会释放空间,vector不会3>list是双向迭代器,vector是随机迭代器4>list内部排序是指针指向的更改,vector涉及对象的创建和销毁5>vector改变元素,导致迭代器失效deque删除的时候不会导致迭代器失效(非迭代器位置),插入会导致迭代器失效
- c++ stl库有哪些技术
C++ 老炮儿的技术栈
c++算法学习笔记c++
C++STL(标准模板库)包含以下一些重要技术:容器-序列容器:如vector(动态数组),支持快速随机访问和尾部插入/删除;list(双向链表),适合频繁的插入和删除操作;deque(双端队列),能在两端高效地进行插入和删除。-关联容器:像map(键值对映射),基于红黑树实现,提供快速的查找、插入和删除操作;set(集合),同样基于红黑树,元素唯一且有序。迭代器提供了一种统一的方式来访问容器中的
- 什么是C++标准库中的抽象设施?
七贤岭双花红棍
c++开发语言
1.容器(Containers)提供数据结构的抽象,隐藏底层内存管理细节:•序列容器:std::vector(动态数组)、std::list(双向链表)、std::deque(双端队列)等。•关联容器:std::map(有序键值对)、std::unordered_map(哈希表)、std::set(唯一键集合)等。•适配器:std::stack(栈)、std::queue(队列)、std::pri
- Python中的collections模块
木心
#Pythonpython开发语言
Python中的collections模块文章目录Python中的collections模块1.Counter对象2.deque对象3.defaultdict对象4.namedtuple5.OrderedDictReferencePython中的collections提供许多容器数据类型,这个模块实现了一些专门化的容器,提供了对Python的通用内建容器dict、list、set和tuple的补充
- 5、STL中priority_queue的使用方法
周Echo周
STLc++开发语言笔记c语言算法数据结构leetcode
一、了解priority_queue用于实现优先队列(堆)。它基于std::vector(默认使用vector)或std::deque实现,默认情况下是一个最大堆(即队首元素是最大的元素)。对于异常处理,空队列一般自定义,但是priority_queue会使用std::out_of_range异常。时间复杂度插入操作:O(logn)删除操作:O(logn)访问队首元素:O(1)常见问题1、如何从给
- 2023年中国大学生程序设计竞赛女生专场(ccpc女生赛)
小竹子14
算法深度优先c++
A.疾羽的救赎思路:这道题的思路其实非常清晰,题意也很好懂,如果说有个关键点的话就是把每个棋子当前的位置做一下标记,我这里设置的是now数组,然后用一个deque数组当作棋盘,每一个元素上面都可以摞棋子(因为可以双端出入),这里的话,主要是考虑到进出的顺序,从尾出从头进,就可以不乱顺序。主体就是通过now找到某个棋子的位置,通过位置定位到棋盘上的某个格子找到该双端队列的元素,取出,然后放到相应的位
- 蓝桥杯Python组知识点
好好学习、天天向上。
python蓝桥杯算法
文章目录一、基础知识1.基本输入输出2.字符列表连接3.字母的大小写转换4.匿名函数lambda5.进制转换6.字符与整型之间的转换7.格式化保留小数点后几位小数8.列表排序9.str的内建函数10.list的内建函数二、常用内置模块1.阶乘factorial2.计数器Counter3.默认字典defaultdict4.双端队列deque5.全排列permutations6.组合combinati
- C++-第13课List 容器详解:适合每个程序员的必备知识
藤椒味的火腿肠真不错
C++学习之路c++list
1:C++list容器简介1.1C++STL容器概述C++提供了丰富的标准模板库(STL),其中包括顺序容器(如vector、deque)和关联容器(如map、set)。list是一种链表结构的顺序容器,它的底层实现是双向链表。这使得list在插入和删除操作上比vector更加高效,但由于不支持随机访问,因此访问特定位置的元素时效率较低。1.2list的特点双向链表:list底层是一个双向链表,能
- 数据结构之队列,哈希表
不知真不只
数据结构散列表
一队列(先进先出)1.定义:从一端进行数据插入,另一端进行删除的线性存储结构队列类型常见操作-入队(Enqueue):将新元素添加到队列的尾部。若队列有空间,新元素会成为队列的新尾部元素;若队列已满,可能会触发队列已满的处理机制。-出队(Dequeue):从队列的头部移除元素。执行后,原队头元素被删除,原队头的下一个元素成为新队头。若队列为空,可能会触发队列空的处理机制。-获取队头元素(Front
- C++中push_back的用法
じ☆ve 清风°
C++c++开发语言
push_back是C++中用于向容器末尾添加元素的函数,通常与容器类模板(如vector、list、deque等)一起使用。下面是push_back函数的一般用法和示例:使用push_back向vector添加元素:#include#includeusingnamespacestd;intmain(){vectormyVector;myVector.push_back(1);//向vector中
- C++ 各种容器的详细说明 (td::vector、std::list、std::deque、std::set、std::map 和 std::unordered_map)
david_bang_1980
c++开发语言
C++标准库提供了多种容器,用于存储和管理数据。每种容器都有其独特的特点和适用场景。本文将详细介绍几种常见的C++容器,包括std::vector、std::list、std::deque、std::set、std::map和std::unordered_map等。1.std::vector概述std::vector是一个动态数组,能够自动调整大小。它在内存中连续存储元素,支持快速随机访问。主要特
- C++ STL 算法竞赛常用模板归纳汇总
小桥儿流水人家
c++算法开发语言蓝桥杯stl
向量vector(相当于可变长数组)/*STL库vector、deque、list、set、map、multiset、multimap、unordered_set、unordered_map、unordered_multiset、unordered_multimap、stack、queue、priority_queue、string、pair*/#include#includeusingnames
- C++算法竞赛常用STL知识笔记
a东方青
个人笔记c++算法笔记
最后更新于2024-11-15下标访问vector,deque,map可以用下标访问vectorstd::vectorv={1,2,3,4,5};intelement=v[2];//访问下标为2的元素,这里将得到3。dequestd::dequedq={21,22,23,24,25};intitem=dq[1];//访问下标为1的元素,这里将得到22。map特殊:1:如果下标对应的键已经存在于ma
- Java 常用命令总结(完)
羊不白丶
java开发语言后端
更新了版本,请移步Java常用命令总结持续更新中!!!目录基础输入保留几位小数Random数组SystemArraysHashMapHashSetStringStringBuilderArrayListDeque栈Queue队列PriorityQueue优先队列常用数学算法&&结论结论算法ScannerIntegerIterator迭代器MathComparator&&Comparable的使用其
- Python3 爬虫 Scrapy 与 Redis
大秦重工
爬虫scrapyredis
Scrapy是一个分布式爬虫的框架,如果把它像普通的爬虫一样单机运行,它的优势将不会被体现出来。因此,要让Scrapy往分布式爬虫方向发展,就需要学习Scrapy与Redis的结合使用。Redis在Scrapy的爬虫中作为一个队列存在。一、Scrapy_redis的安装和使用Scrapy自带的待爬队列是deque,而现在需要使用Redis来作为队列,所以就需要将原来操作deque的方法替换为操作R
- Java集合框架全解析:从数据结构到高并发简单解析
微风灬浮尘
javajava数据结构Java集合java入门
一、集合框架全景图(含Java17新特性)1.集合框架层级关系CollectionListSetQueueMapSortedMapArrayListLinkedListVectorHashSetTreeSetPriorityQueueArrayDequeHashMapTreeMapConcurrentHashMap2.核心接口对比接口有序性唯一性线程安全典型实现类List是允许重复否ArrayLi
- C++【STL--- set】
疯狂的代M夫
c++c++开发语言
1、什么是set?set是一个不包含重复元素的内部自动有序的容器。set和map是经典的关联容器,与之前的vector,list,string,stack,priority_queue,deque等顺序容器不同;关联容器和顺序容器的区别在于:数据的存储方式不同:顺序容器按照元素插入的顺序依次存放数据,就像在一个数组或者链表中依次摆放数据一样。元素在内存中是连续存储(如vector和string)或
- C++STL(逐渐更新中)
邪恶的贝利亚
c++开发语言
1.容器(Containers)序列容器vector:动态数组,支持快速随机访问,在尾部插入和删除元素效率高,自动管理内存,可动态增长或缩小。list:双向链表,在任何位置插入和删除元素都很快,但不支持随机访问。deque:双端队列,兼具vector和list的部分特性,可在两端快速插入和删除元素,也支持随机访问。三者对比关联容器map:键值对集合,按键有序存储,可快速根据键查找、插入和删除元素,
- C++之序列容器(vector,list,dueqe)
邪恶的贝利亚
c++语言特性c++开发语言
1.大体对比在软件开发的漫长历程中,数据结构与算法始终占据着核心地位,犹如大厦的基石,稳固支撑着整个程序的运行。在众多编程语言中,数据的存储与管理方式各有千秋,而C++凭借其丰富且强大的工具集脱颖而出,尤其是在处理序列数据方面,C++标准模板库(STL)中的序列容器vector、list和deque更是展现出卓越的性能与高度的灵活性。和一些编程语言中单一的数据存储方式相比,C++这三种序列容器的存
- 【STL详解 —— map和set的使用】
Asher_qq
C++c++网络开发语言
STL详解——map和set的使用关联式容器键值对setset的介绍set的使用set的模板参数列表set的构造set的迭代器set的容量set的修改操作mapmap的介绍map的使用map的模板参数列表map的构造map的迭代器map的容量与元素访问map中元素的修改multisetmultimap关联式容器在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、
- 队列:基于无序数组实现优先级队列
EdwardYange
java数据结构与算法基于无序数组实现优先级队列
代码:packagecom.zy.queue_code.deque;/***@Author:zy*@Date:2025-01-12-09:54*@Description:双端队列*/publicinterfaceDeque{booleanofferFirst(Ee);booleanofferLast(Ee);EpollFirst()
- 【hot100】102二叉树的层序遍历
鱼力舟
HOT100windows
一、思路经典队列应用,将根节点入队,然后每出队一个节点再把其子节点加入队列二、记忆1.Queue和Deque的联系和区别Queuequeue=newLinkedList();和Dequelist=newLinkedList();虽然都基于LinkedList实现,但它们的接口类型不同,导致可用的操作和行为不同。以下是具体区别:1.接口定义与设计目的类型接口功能设计场景Queue表示标准的先进先出(
- 【C++】模拟实现栈和队列
不吃肉的Humble
走进C++的世界c++开发语言
目录一.设计模式二.stack的模拟实现三.queue的模拟实现四.deque的简单介绍(了解)五.课后习题在我们用C++模拟实现之前在C语言阶段的实现过的数据结构时,我们会想用更加舒服的方式写代码,这时我们就要用到设计模式那么我们就要先了解一下什么是设计模式?一.设计模式设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路比如适配器模式,迭代器模式迭代器模式:迭代器封装后提供统一的访
- [H滑动窗口] lc239. 滑动窗口最大值(模拟+数据结构+单调队列+滑动窗口模板题)
Ypuyu
LeetCode数据结构
文章目录1.题目来源2.题目解析1.题目来源链接:239.滑动窗口最大值相关博文:[单调队列+模板]单调队列模板题单:待补充2.题目解析一道单调队列模板题,不赘述了吧。看看日后有没有写不出来来补题、或者有新感悟的时候再来看看。注意一下C++中双端队列的用法即可。时间复杂度:O(n)O(n)O(n)空间复杂度:O(n)O(n)O(n)C++STL::deque写法:classSolution{pub
- C#集合类(数据结构)
FreedomRoad~
C#.NET
一、选择数据结构1)线性容器List数组/Stack/Dequeue按需求模型选择即可,LinkedList是双向链表增删修改快.需要有序数组SortList线性排序容器都可以;如果既需要查找快又需要频繁修改那么可以用List记录索引,用LinkedList存储。2)二叉树类型容器SortedDictionary可以提供二叉树类型插入删除查找都比较折中的键值对容器。SortedSet一个集合值类型
- 自学c++之stl
拾萤
c++开发语言
stl六大组件,容器、算法、迭代器、仿函数、适配器、空间配置器容器各种数据结构,例如:vector、list、deque、set、mapvctor#include#include#includeusingnamespacestd;voidmyprint(intval){coutv;//相当于数组//插入数据v.push_back(10);v.push_back(20);//通过迭代器来访问数据//
- C++ #include用法
Guiyi.
栈
stack栈堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(StackTop),另一端则为栈底(StackBottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。由于元素的入栈和出栈总在栈顶进行,因此,堆栈是一个后进先出(LastInFirstOut)表,即LIFO表。C++STL的堆栈泛化是直接通过现有的序列容器来实现的,默认使用双端队列deque的数据结构,当然,可以采用其他
- 哈希表入门到精通:从原理到 Python 实现全解析
吴师兄大模型
数据结构python哈希表算法哈希算法开发语言PYTHON
系列文章目录01-从零开始掌握Python数据结构:提升代码效率的必备技能!02-算法复杂度全解析:时间与空间复杂度优化秘籍03-线性数据结构解密:数组的定义、操作与实际应用04-深入浅出链表:Python实现与应用全面解析05-栈数据结构详解:Python实现与经典应用场景06-深入理解队列数据结构:从定义到Python实现与应用场景07-双端队列(Deque)详解:Python实现与滑动窗口应
- 图论 之 BFS
JNU freshman
算法蓝桥杯图论宽度优先算法蓝桥杯
文章目录3243.新增道路查询后的最短距离1311.获取你好友已观看的视频BFS:广度优先搜索(BFS)是一种常用的算法,通常用于解决图或树的遍历问题,尤其是寻找最短路径或层级遍历的场景。BFS的核心思想是使用队列(FIFO数据结构)来逐层遍历节点。模版fromcollectionsimportdeque#graphdefbfs(start):#初始化队列,并将起始节点加入队列queue=dequ
- 拓扑排序算法详解:BFS与DFS双路径实战
吴师兄大模型
数据结构算法pythonBFSDFS广度优先搜索深度优先搜索
系列文章目录01-从零开始掌握Python数据结构:提升代码效率的必备技能!02-算法复杂度全解析:时间与空间复杂度优化秘籍03-线性数据结构解密:数组的定义、操作与实际应用04-深入浅出链表:Python实现与应用全面解析05-栈数据结构详解:Python实现与经典应用场景06-深入理解队列数据结构:从定义到Python实现与应用场景07-双端队列(Deque)详解:Python实现与滑动窗口应
- 基本数据类型和引用类型的初始值
3213213333332132
java基础
package com.array;
/**
* @Description 测试初始值
* @author FuJianyong
* 2015-1-22上午10:31:53
*/
public class ArrayTest {
ArrayTest at;
String str;
byte bt;
short s;
int i;
long
- 摘抄笔记--《编写高质量代码:改善Java程序的151个建议》
白糖_
高质量代码
记得3年前刚到公司,同桌同事见我无事可做就借我看《编写高质量代码:改善Java程序的151个建议》这本书,当时看了几页没上心就没研究了。到上个月在公司偶然看到,于是乎又找来看看,我的天,真是非常多的干货,对于我这种静不下心的人真是帮助莫大呀。
看完整本书,也记了不少笔记
- 【备忘】Django 常用命令及最佳实践
dongwei_6688
django
注意:本文基于 Django 1.8.2 版本
生成数据库迁移脚本(python 脚本)
python manage.py makemigrations polls
说明:polls 是你的应用名字,运行该命令时需要根据你的应用名字进行调整
查看该次迁移需要执行的 SQL 语句(只查看语句,并不应用到数据库上):
python manage.p
- 阶乘算法之一N! 末尾有多少个零
周凡杨
java算法阶乘面试效率
&n
- spring注入servlet
g21121
Spring注入
传统的配置方法是无法将bean或属性直接注入到servlet中的,配置代理servlet亦比较麻烦,这里其实有比较简单的方法,其实就是在servlet的init()方法中加入要注入的内容:
ServletContext application = getServletContext();
WebApplicationContext wac = WebApplicationContextUtil
- Jenkins 命令行操作说明文档
510888780
centos
假设Jenkins的URL为http://22.11.140.38:9080/jenkins/
基本的格式为
java
基本的格式为
java -jar jenkins-cli.jar [-s JENKINS_URL] command [options][args]
下面具体介绍各个命令的作用及基本使用方法
1. &nb
- UnicodeBlock检测中文用法
布衣凌宇
UnicodeBlock
/** * 判断输入的是汉字 */ public static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
- java下实现调用oracle的存储过程和函数
aijuans
javaorale
1.创建表:STOCK_PRICES
2.插入测试数据:
3.建立一个返回游标:
PKG_PUB_UTILS
4.创建和存储过程:P_GET_PRICE
5.创建函数:
6.JAVA调用存储过程返回结果集
JDBCoracle10G_INVO
- Velocity Toolbox
antlove
模板toolboxvelocity
velocity.VelocityUtil
package velocity;
import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.c
- JAVA正则表达式匹配基础
百合不是茶
java正则表达式的匹配
正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作
正则表达式的用途;
字符串的匹配
字符串的分割
字符串的查找
字符串的替换
正则表达式的验证语法
[a] //[]表示这个字符只出现一次 ,[a] 表示a只出现一
- 是否使用EL表达式的配置
bijian1013
jspweb.xmlELEasyTemplate
今天在开发过程中发现一个细节问题,由于前端采用EasyTemplate模板方法实现数据展示,但老是不能正常显示出来。后来发现竟是EL将我的EasyTemplate的${...}解释执行了,导致我的模板不能正常展示后台数据。
网
- 精通Oracle10编程SQL(1-3)PLSQL基础
bijian1013
oracle数据库plsql
--只包含执行部分的PL/SQL块
--set serveroutput off
begin
dbms_output.put_line('Hello,everyone!');
end;
select * from emp;
--包含定义部分和执行部分的PL/SQL块
declare
v_ename varchar2(5);
begin
select
- 【Nginx三】Nginx作为反向代理服务器
bit1129
nginx
Nginx一个常用的功能是作为代理服务器。代理服务器通常完成如下的功能:
接受客户端请求
将请求转发给被代理的服务器
从被代理的服务器获得响应结果
把响应结果返回给客户端
实例
本文把Nginx配置成一个简单的代理服务器
对于静态的html和图片,直接从Nginx获取
对于动态的页面,例如JSP或者Servlet,Nginx则将请求转发给Res
- Plugin execution not covered by lifecycle configuration: org.apache.maven.plugin
blackproof
maven报错
转:http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin
maven报错:
Plugin execution not covered by lifecycle configuration:
- 发布docker程序到marathon
ronin47
docker 发布应用
1 发布docker程序到marathon 1.1 搭建私有docker registry 1.1.1 安装docker regisry
docker pull docker-registry
docker run -t -p 5000:5000 docker-registry
下载docker镜像并发布到私有registry
docker pull consol/tomcat-8.0
- java-57-用两个栈实现队列&&用两个队列实现一个栈
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/*
* Q 57 用两个栈实现队列
*/
public class QueueImplementByTwoStacks {
private Stack<Integer> stack1;
pr
- Nginx配置性能优化
cfyme
nginx
转载地址:http://blog.csdn.net/xifeijian/article/details/20956605
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必
- [JAVA图形图像]JAVA体系需要稳扎稳打,逐步推进图像图形处理技术
comsci
java
对图形图像进行精确处理,需要大量的数学工具,即使是从底层硬件模拟层开始设计,也离不开大量的数学工具包,因为我认为,JAVA语言体系在图形图像处理模块上面的研发工作,需要从开发一些基础的,类似实时数学函数构造器和解析器的软件包入手,而不是急于利用第三方代码工具来实现一个不严格的图形图像处理软件......
&nb
- MonkeyRunner的使用
dai_lm
androidMonkeyRunner
要使用MonkeyRunner,就要学习使用Python,哎
先抄一段官方doc里的代码
作用是启动一个程序(应该是启动程序默认的Activity),然后按MENU键,并截屏
# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRun
- Hadoop-- 海量文件的分布式计算处理方案
datamachine
mapreducehadoop分布式计算
csdn的一个关于hadoop的分布式处理方案,存档。
原帖:http://blog.csdn.net/calvinxiu/article/details/1506112。
Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同ja
- 以資料庫驗證登入
dcj3sjt126com
yii
以資料庫驗證登入
由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼: public function authenticate() { $users=array( &nbs
- github做webhooks:[2]php版本自动触发更新
dcj3sjt126com
githubgitwebhooks
上次已经说过了如何在github控制面板做查看url的返回信息了。这次就到了直接贴钩子代码的时候了。
工具/原料
git
github
方法/步骤
在github的setting里面的webhooks里把我们的url地址填进去。
钩子更新的代码如下: error_reportin
- Eos开发常用表达式
蕃薯耀
Eos开发Eos入门Eos开发常用表达式
Eos开发常用表达式
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2014年8月18日 15:03:35 星期一
&
- SpringSecurity3.X--SpEL 表达式
hanqunfeng
SpringSecurity
使用 Spring 表达式语言配置访问控制,要实现这一功能的直接方式是在<http>配置元素上添加 use-expressions 属性:
<http auto-config="true" use-expressions="true">
这样就会在投票器中自动增加一个投票器:org.springframework
- Redis vs Memcache
IXHONG
redis
1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3. Redis支持数据的备份,即master-slave模式的数据备份。
4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Red
- Python - 装饰器使用过程中的误区解读
kvhur
JavaScriptjqueryhtml5css
大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。
原文链接:http://www.gbtags.com/gb/share/5563.htm
Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:
@function_wrapper
de
- 架构师之mybatis-----update 带case when 针对多种情况更新
nannan408
case when
1.前言.
如题.
2. 代码.
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="list" index=&
- Algorithm算法视频教程
栏目记者
Algorithm算法
课程:Algorithm算法视频教程
百度网盘下载地址: http://pan.baidu.com/s/1qWFjjQW 密码: 2mji
程序写的好不好,还得看算法屌不屌!Algorithm算法博大精深。
一、课程内容:
课时1、算法的基本概念 + Sequential search
课时2、Binary search
课时3、Hash table
课时4、Algor
- C语言算法之冒泡排序
qiufeihu
c算法
任意输入10个数字由小到大进行排序。
代码:
#include <stdio.h>
int main()
{
int i,j,t,a[11]; /*定义变量及数组为基本类型*/
for(i = 1;i < 11;i++){
scanf("%d",&a[i]); /*从键盘中输入10个数*/
}
for
- JSP异常处理
wyzuomumu
Webjsp
1.在可能发生异常的网页中通过指令将HTTP请求转发给另一个专门处理异常的网页中:
<%@ page errorPage="errors.jsp"%>
2.在处理异常的网页中做如下声明:
errors.jsp:
<%@ page isErrorPage="true"%>,这样设置完后就可以在网页中直接访问exc