- FPS射击游戏状态同步架构方案
你一身傲骨怎能输
游戏开发技术专栏游戏架构
文章摘要本文提出了一种FPS射击游戏的状态同步架构方案,旨在实现低延迟、高一致性和抗作弊。采用服务器权威架构,客户端仅提供输入和预测渲染,服务器验证并广播状态。通过客户端预测、服务器校正和增量同步机制优化延迟与带宽,同时利用事件驱动同步确保关键事件一致。网络优化包括数据压缩、差异编码和优先级排序。方案还包含输入验证、反作弊措施和容错机制,并通过示例数据包设计和流程说明具体实现。优势包括低延迟、状态
- 程序员接单服务话术
0 bug软件科技工作室
javaspringbootpython算法
进入群聊开始服务时:尊敬的客户您好,我程序员:xx很荣幸为您服务我擅长xx领域接下来我们一起对接下详细需求,我将根据您的任务需求难度给您汇报开发所需时长及报价。预祝我们合作愉快。报价后且客户接受时:您好,此次开发费用为:元,开发时长为:天。因为开发工作的成本就是时间成本,为保证您的服务体验,我们再确定下完整的需求,最终交付以此次要求作为标准。客户下单后并且获取到订单号:收到,我马上开始开发,中途您
- 安卓之gps
大家去网上搜索Android定位location为null没法定位问题,估计有一大堆文章介绍如何来解决,但是最后大家发现基本没用。本文将从Android定位实现原理来深入分析没法定位原因并提出真正的解决方案。在分析之前,我们肯定得先看看android官方提供的定位SDK。默认AndroidGPS定位实例获取LocationManager:mLocationManager=(LocationMana
- VTK着色器MarbleShader代码学习(4)
点PY
三维渲染着色器学习
代码链接https://examples.vtk.org/site/Cxx/Shaders/MarbleShader/这段代码是一个使用VTK(VisualizationToolkit)实现的复杂着色器渲染示例,主要用于在3D模型上模拟大理石纹理效果。下面是对代码的详细解析:1.核心功能程序实现了一个基于Perlin噪声的大理石纹理着色器,主要特点包括:动态静脉纹理生成多级噪声叠加几何扭曲效果参数
- golang 使用 viper 加载配置文件 自动反序列化到结构
-睡到自然醒~
golang开发语言后端服务器运维
golang使用viper无需设置mapstructuretag根据配置文件后缀自动返序列化到结构解决结构有下划线的字段解析不成功问题viper正常加载配置文件golangviper其中可以用来查找、加载和反序列化JSON、TOML、YAML、HCL、INI、envfile和格式的配置文件配置文件test_toml.tomlhttp_addr=":8082"grpc_addr=":8083"jae
- Aletheia 情感智能模型:完整实现
Aletheia情感智能模型,整合所有核心模块并解决之前指出的问题。这个实现包含完整的神经动力学系统、多模态情感融合、伦理约束场和量子意识接口。importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.integrateimportodeintfromsklearn.decompositionimportPCAimporttorchimporttor
- 写测试太烦?Copilot + Jest 让你 3 分钟搞定单元测试
网罗开发(小红书、快手、视频号同名) 大家好,我是展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、HarmonyOS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。图书作者:《ESP32-C3物联网工程开发实战》图书作者:《SwiftUI入门,进阶与实战》超级个体:CO
- 安卓之ANR
巨蟹座的爱情
安卓
ANR是什么?怎么样避免ANR?安卓中,如果你的应用有一段时间响应不灵敏,系统会向用户显示一个对话框这个对话框称作应用程序无响应(Applicationnotresponding)对话框,用户可以选择让程序继续进行,但是,他们在使用你的程序时并不是每次都处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ARN给用户。Activity5秒broadc10秒耗时的操作workth
- Spring Boot多实例环境下保障数据一致性
KiddoStone
springboot后端java
在SpringBoot多实例环境下保障数据一致性需要结合分布式系统设计原则,以下是针对两个场景的设计与实现方案:1.多实例ScheduleJob的数据一致性问题场景多个实例同时执行定时任务,可能导致重复处理(如重复推送消息、重复扣款)。解决方案(1)分布式锁控制//使用Redisson实现分布式锁@Scheduled(cron="0*/5***?")publicvoidsyncDataJob(){
- 1. Linux 基本命令
GotoLevel
Linux编译基础linuxffmpeg运维
安装工具包:安装工具包:【1.brew;(MacOS);2.apt;(Linux-乌班图);3.yum;(Linux-服务器端)】brewsearchffmpeg:在服务源上查找显示ffmepg的安装包;brewinstallffmpeg:安装服务器上的ffmepg包;brewremoveffmpeg:移除安装的ffmepg包;Linux基本命令:ctrl+l:清屏;ctrl+c:取消当前命令;s
- android四大组件之一——Service
闲暇部落
四大组件ServiceIPCAIDLMessengerBinder
目录一、Service概述二、Service分类1.前台服务2.后台服务3.绑定服务三、Service的两种启动方式1.start启动模式2.bind绑定模式四、权限五、Service生命周期六、组件与绑定Service的通信方式1.扩展Binder类2.Messenger信使3.AIDL七、总结场景使用区别八、源码下载一、Service概述Service是应用组件,代表一个应用的长时间后台运行的
- 手把手教你入门vue+springboot开发(九)--springboot后端实现与postman调试
段鸿潭
javavue.jsspringbootpostman
文章目录前言一、后端代码实现1.实现pojo/User.java2.实现mapper/UserMapper.java3.实现service/UserService.java4.实现service/UserServiceImpl.java5.实现controller/UserController.java二、postman调试总结前言上篇我们已经定义好了数据库表users和用户管理功能的HTTP接口
- 60天python训练营打卡day46
学习目标:60天python训练营打卡学习内容:DAY46通道注意力(SE注意力)知识点回顾:1.不同CNN层的特征图:不同通道的特征图2.什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。3.通道注意力:模型的定义和插入的位置4.通道注意力后的特征图和热力图学习时间:2025.06.29@浙大疏锦行
- 安卓audio之Remote_Submix
盼雨落,等风起
安卓audio安卓
参考文档:Audio-内录实现原理(上)Audio-内录实现原理(下)一、实现原理REMOTE_SUBMIX是Android系统提供的内录(InternalAudioCapture)方案,用于捕获设备音频输出(如扬声器播放的声音)而非麦克风输入。其核心机制如下:HAL层数据流转音频数据不写入物理设备,而是由HAL层(audio.r_submix.default.so)开辟独立缓冲区,实现软件级混音
- android 音量调整
盼雨落,等风起
安卓audio音视频
1流程图2audio_policy_volumes.xml阐述了流跟device的音量范围【AndroidAudio】5、EngineBase加载音量曲线和策略【基于AndroidQ】1.按键处理1.1从输入子系统到音频子系统的处理按键会从inputReader的getEvent到inputDisptacher最后到ViewRootimpl中的ViewPostImeInputStage::proc
- audio的Framework层到hal 如何调用(以setparameters为例)
盼雨落,等风起
audio安卓
首先查看AudioManager之setParameters从应用到hal流程分析android6.0看到最后两个格:audio_hw_device_t->set_parameters()是上层调用hal层的接口导致下层***audio_hw->adev_set_parameters()***执行。他们之间的联系,通过legacy_adev_open建立联系。legacy_adev_open是干什
- 安卓之service常用用法详解
安卓一直是半吊子水平,在写一个小东西时,发现自己对service的理解还不够,特总结如下:service的创建publicclassMinaServiceextendsService{privateConnectionThreadthread;@OverridepublicvoidonCreate(){super.onCreate();thread=newConnectionThread("min
- 安卓之Service详解(三)【安卓IPC之AIDL】
AB小站
AndroidbindService安卓服务IPC和AIDL
AndroidBoundService详解1.一般实现步骤讲解在客户端(Activity中)要完成:1.客户端通过BindService()方法来绑定一个服务对象(业务对象)如绑定成功会回调ServiceConnection接口方法onServiceConnected()2.OnServiceConnection()方法的其中一个参数是在Service中OnBind()返回的Binder的实例。3
- Mybatis
微风粼粼
mybatistomcatjava
1、概述什么是mybatis?MyBatis是一个基于Java的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOrdinaryJavaObjects,普通的Java对象)映射成数据库中的记录。它是一款半自动的ORM持久层
- trae的使用
trae的使用下载地址:https://www.trae.com.cn/home直接在官网下载安装即可可以从VScode和cursor当中导入配置(插件·设置·快捷键等等)需要登陆后才能正常使用(国内版本的可以通过手机号登录)登录打开后的页面:左边大框架可以在本软件里打开文件或是克隆github的项目到本地右边是选择trae的模式:有两种:chat和Builderchat模式和Builder模式下
- 基于物联网的城市低洼地段水深报警系统设计
标题:基于物联网的城市低洼地段水深报警系统设计内容:1.摘要本文针对城市低洼地段在暴雨等天气下易积水,可能危及行人安全和造成车辆损坏等问题,设计了基于物联网的城市低洼地段水深报警系统。采用水位传感器实时监测低洼地段的水深数据,通过物联网通信模块将数据传输至云平台。在云平台上对数据进行分析处理,当水深超过预设阈值时,系统自动触发报警,通过短信、APP推送等方式通知相关人员。经过实际测试,该系统的水位
- Mysql报错
微风粼粼
mysqladbandroid
1.权限问题MySQL认证协议不兼容问题解决方案这个错误表明您的MySQL客户端与服务器要求的认证协议不兼容,通常发生在MySQL8.0+服务器与旧版客户端之间。nestedexceptionisorg.apache.ibatis.exceptions.PersistenceException:Errorqueryingdatabase.Cause:org.springframework.jdbc
- 容器革命:Docker 技术深度解析与未来趋势
小红花大酒店
Docker技术探秘docker容器运维
容器革命:Docker技术深度解析与未来趋势一、容器化技术的颠覆性价值在云计算与微服务架构蓬勃发展的今天,Docker作为容器化技术的代表,正深刻改变着软件交付的范式。传统虚拟机(VM)需要为每个应用实例配备完整的操作系统,导致资源浪费和启动延迟(分钟级)。而Docker通过操作系统级虚拟化,将应用及其依赖打包成轻量级容器,实现了秒级启动和MB级资源占用。这种技术突破使得开发团队能够以标准化方式构
- 2025 API 开发管理工具 Apipost 与 Apifox 全维度对比
在当今数字化转型的浪潮下,API开发与管理对于各类项目的成功实施至关重要。Apipost和Apifox两款API开发管理工具,各自有着独特的功能特性。本文将从多个维度对它们进行深入对比,为研发、测试人员提供全面的参考。一、API设计在大型企业级项目中,API设计的复杂性和定制性要求极高。以金融行业为例,不同法人行的业务规则差异巨大,从账户管理到交易处理,每个环节都需要精确且个性化的API设计。Ap
- Golang基础笔记九之方法与接口
后端go方法接口类型判断
本文首发于公众号:Hunter后端原文链接:Golang基础笔记九之方法与接口本篇笔记介绍Golang里方法和接口,以下是本篇笔记目录:方法接口用结构体实现类的功能1、方法首先介绍一下方法。方法是与特定类型关联的函数,我们在实现一个函数前,绑定一个类型,就实现了这个类型的方法。比如我们想实现一个结构体的方法,可以如下操作:typePersonstruct{ Namestring Age int
- 如何在YashanDB中使用SQL实现复杂查询
数据库
在当今的数据驱动环境中,数据库查询性能至关重要,尤其是复杂查询的实现与优化。复杂查询通常涉及多表连接、聚集计算或者子查询,相对于简单查询,更高的计算要求极大地影响了执行速度。因此,了解如何在YashanDB中高效地实现复杂查询,不仅可以优化应用的性能,还能提升整体的数据处理效率。复杂查询的实现方法多表关联查询在YashanDB中,多表关联查询是复杂查询中最常用的形式之一。通过使用INNERJOIN
- 如何在YashanDB中实现自动化备份?
数据库
引言在现代数据库管理系统中,数据的安全性和可恢复性越来越受到重视。尤其是在数据可能因人为失误、硬件故障或网络问题而丢失的情况下,自动化备份解决方案显得尤为重要。YashanDB作为一款高性能的关系型数据库,支持多种备份策略以确保数据的安全性和一致性。本文将深入探讨YashanDB的备份机制、支持的备份类型及如何实现自动化备份策略的具体步骤,旨在帮助数据库管理员和技术人员有效管理其数据备份工作。Ya
- 如何在YashanDB中实现数据分区管理
数据库
在现代数据库系统中,随着数据量的持续增长以及业务需求的不断演变,如何高效、灵活地管理数据成为了重要的技术挑战。数据分区管理作为应对大规模数据存储的有效策略,能够显著提升数据库的性能和可管理性。数据分区技术通过将大型表拆分成smallermanageableunits(即分区),为查询、更新和维护提供了更高效的操作机制。本文将深入探讨如何在YashanDB数据库中实现有效的数据分区管理。分区管理的核
- 如何在YashanDB中实现数据趋势预测
数据库
数据趋势预测已成为数据驱动决策中的一个重要方面。在面临海量数据时,如何精确而高效地提取潜在趋势,对于企业的战略规划具有重要意义。YashanDB作为一款高性能的数据库产品,提供多种存储和查询优化功能,使得实现数据趋势预测成为可能。特别是在数据存储结构和多版本并发控制(MVCC)等特性下,趋势预测的场景应用可以得到有效支持。数据分析基础在进行数据趋势预测之前,首先必须了解基础的数据分析过程。Yash
- 如何在YashanDB中实现与区块链的集成
数据库
在当前的数字化时代,数据的安全性和完整性至关重要。随着区块链技术的兴起,企业对于如何将这项新兴技术与传统数据库(如YashanDB)相结合,已成为一个亟待解决的问题。区块链提供的数据不可篡改性使其成为加密金融、供应链管理以及智能合约等领域的重要组件。因此,如何实现YashanDB与区块链的无缝集成,便成为技术团队的重要任务。核心技术点YashanDB的事务和一致性管理YashanDB支持事务的AC
- 基本数据类型和引用类型的初始值
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