- ByteBuf
码农崛起
jdk自带ByteBuffer,看名字就知道作用差不多,区别是ByteBuffer读写都用一个指针,ByteBuf读写各有一个指针。都分为基于javaheap的headbuffer和基于DirectBuffer的buffer。DirectBuffer是不能被gc的,用完需要手动释放,虽然麻烦但是效率高,看吧,谁都有优点和缺点。加上一大堆看名字就知道干嘛的方法。ByteBuf是个抽象类,源代码里的文
- Netty中ByteBuf的使用
Jooou
开发语言niojvm
ByteBuf使用ByteBuf是一个抽象的、可随机和顺序访问的零个或多个字节的序列。它为一个或多个原始字节数组(byte[])和NIO缓冲区(ByteBuffer)提供了抽象视图。与JavaNIO的ByteBuffer相比,ByteBuf具有更多优势,如扩展性、透明零拷贝、自动容量扩展和更好的性能等。创建缓冲区推荐使用Unpooled类中的辅助方法来创建新的ByteBuf实例,而不是直接调用具体
- Kafka 如何优雅实现 Varint 和 ZigZag 编码
ByteUtils是Kafka中一个非常基础且核心的工具类。从包名common.utils就可以看出,它被广泛用于Kafka的各个模块中。它的主要职责是提供一套高效、底层的静态方法,用于在字节缓冲区(ByteBuffer)、字节数组(byte[])以及输入/输出流(InputStream/OutputStream)中读写Java的基本数据类型。ZigZag编解码过程的数学原理详解康托尔对角线映射。
- 直接内存溢出
p&f°
JVMjvm
一、什么是直接内存直接捏成是一块由操作系统直接管理的内存,也叫堆外内存可以使用Unsafe或ByteBuffer分配直接内存可用-XX:MaxDirectMemorySize控制,默认是0,表示不限制二、为什么使用直接内存直接内存vs堆内存io效率高推荐参考:Java直接内存与非直接内存性能测试-阿里云开发者社区三、什么场景使用直接内存1有很大的数据需要存储,它的生命周期又很长2适合频繁的IO操作
- 【Java源码阅读系列44】深度解读Java NIO ByteBuffer 源码
·云扬·
源码阅读系列之Javajavanio开发语言
JavaNIO(NewInput/Output)中的ByteBuffer是Buffer抽象类的具体子类,专门用于处理字节数据的高效读写。作为NIO的核心组件,ByteBuffer支持堆内存(Heap)和直接内存(Direct)两种存储方式,广泛应用于网络通信、文件IO等场景。本文将结合源码,深入解析ByteBuffer的核心机制、关键方法及设计模式的应用。一、ByteBuffer的核心特性与存储方
- Android GlSurfaceView渲染YUV图形
菠萝加点糖
androidOpenGL
OpenGLES2.0的代码,用来显示YUV格式的视频数据。这个示例将包括初始化OpenGL环境、加载Shader程序、绘制纹理等步骤importandroid.content.Context;importandroid.opengl.GLES20;importjava.nio.ByteBuffer;importjava.nio.ByteOrder;importjava.nio.FloatBuff
- kafka-生产者-(day-4)
不倒翁^1
kafka分布式
day-3BufferPool产生原因:ByteBuffer的创建和释放都是比较耗费资源的,为了实现内存的高效利用,产生了他。他会对特定大小的ByteBuffer进行管理BufferPool的字段free:是一个ArrayDeque队列,缓存指定大小的ByteBuffer对象ReentrantLock:因为这个BufferPool在多线程中使用,保证其安全waiters:这个队列中包含小空间导致阻
- Netty学习专栏(一):Java NIO编程与核心组件详解
快乐肚皮
Netty从入门到精通学习javanio
文章目录前言:为什么选择Netty?一、为什么需要先学NIO?二、NIO与BIO的核心差异2.1阻塞方式差异2.2编程模型差异2.3数据处理方式差异2.4代码结构对比三、NIO三大核心组件详解3.1Channel(通道)3.2ByteBuffer(缓冲区)3.3Selector(选择器)四、详细工作原理说明总结前言:为什么选择Netty?在分布式系统、微服务架构盛行的今天,高性能网络通信已成为系统
- 【NIO】通过FileChannel读取包含中文内容的文件
zhangzeyuaaa
JavaIO
直接上代码:packagecom.xx.nio;importjava.io.File;importjava.io.FileInputStream;importjava.nio.ByteBuffer;importjava.nio.CharBuffer;importjava.nio.channels.FileChannel;importjava.nio.charset.Charset;importja
- ByteBuffer 用法详解
小虾米 ~
java
ByteBuffer是JavaNIO中用于处理字节数据的关键类,提供了比传统byte[]更灵活和高效的字节操作方式。以下是ByteBuffer的主要用法:基础1.创建ByteBuffer分配新缓冲区//分配堆内存缓冲区(在JVM堆上)ByteBufferheapBuffer=ByteBuffer.allocate(1024);//分配直接内存缓冲区(在操作系统内存中)ByteBufferdirec
- GeoWave 1.2.0 版本解决GS发布矢量NIO ByteBuffer flip() java.lang.NoSuchMethodError 返回值错误问题
深夜奶爸
GeoMesa
在GeoWavev1.2.0版本中在发布矢量时,会报错,具体错误如下:2021-07-1915:19:48,519ERROR[geotools.rendering]-java.nio
- spark的堆外内存,是在jvm内还是操作系统内存内?
BenBen尔
sparkjvm大数据hadoop
在ApacheSpark中,堆外内存(Off-HeapMemory)是直接分配在操作系统的物理内存中,而非JVM堆内内存。以下是详细的解释:1.堆外内存的本质操作系统管理Spark的堆外内存直接通过操作系统分配(例如使用ByteBuffer.allocateDirect()或底层sun.misc.UnsafeAPI),完全独立于JVM堆内存。JVM不控制这部分内存:堆外内存的分配和释放由Spark
- JVM——15.定位 堆外内存 OOM
你想要怎样的未来
jvmjvm实战javajavajvmjvm.gcjava虚拟机
文章目录1.ByteBuffer堆外内存介绍2.ByteBuffer堆外内存申请、释放(源码分析)2.1堆外内存申请2.2堆外内存释放3.什么情况会发生堆外内存OOM4.模拟堆外内存OOM4.1模拟14.2模拟24.3模拟35.堆外内存OOM的定位及解决1.ByteBuffer堆外内存介绍在介绍OOM那篇文章中,对堆外内存进行了介绍,就直接把它复制过来;ByteBuffer和DirectByteB
- JVM直接内存详解
fengdongnan
jvm开发语言java
直接内存学习JVM内存结构部分时遇到的最后一部分,直接内存。虽然和其他堆栈等不是核心部分,但其类似缓存的特点和与GC相关的特性显得有点特殊,比较好奇这个高速缓存有没有实际开发使用场景,所以写这篇博客记录直接内存的相关知识点与使用场景。概念直接内存(DirectMemory)是操作系统内存和Java内存共用的一片内存区域读写性能高,常见于NIO操作作为数据缓存区可以通过ByteBuffer.allo
- Netty的ByteBuf为何如此高效?深入解析其设计与优势
星辰@Sea
系统架构JavaNettyJava
前言在高性能网络编程中,Netty因其卓越的性能和灵活性而被广泛应用。本文将深入探讨Netty的核心组件之一——ByteBuf的设计理念及其优势。部署准备一、JavaNIOBuffer的痛点在传统JavaNIO编程中,ByteBuffer存在以下缺陷:容量固定:初始化后无法自动扩容读写模式切换:需要调用flip()方法切换API复杂:position/limit等指针管理繁琐内存管理:直接内存需要
- NIO——网络编程
小码农0912
nettynioNIO——网络编程
文章目录非阻塞vs阻塞阻塞非阻塞多路复用Selector好处创建绑定Channel事件监听Channel事件select何时不阻塞处理accept事件事件发生后能否不处理处理read事件为何要iter.remove()cancel的作用不处理边界的问题⚠️处理消息的边界ByteBuffer大小分配处理write事件一次无法写完例子write为何要取消非阻塞vs阻塞阻塞阻塞模式下,相关方法都会导致线
- trinitycore MySQL模块_TrinityCore MMORPG服务器设计分析
Florelle
trinitycoreMySQL模块
本文是通过TrinityCore研究从而对MMORPG服务器设计分析。网络字节序ByteBuffer是字节(unsignedchar类型)处理,没有大小端处理。在网络通信应用程序上,这种是经常有的,网络是通过字节发送。消息包格式:包头+包类型+包体包头rc4加密登录认证是(srp6)安全远程密码第六版协议,包类型是占一字节。游戏中,包类型占1.5字节。1、封包重载&operator>按顺序把数据解
- flink 问题记录
Jhon_yh
flinkflinkhadoop大数据
文章目录1.Causedby:java.lang.UnsatisfiedLinkError:org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSums(IILjava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IILjava/lang/String;JZ)V原因java.util.concurrent.Ex
- IP地址工具,判断IP是否在指定范围内(支持ipv6)
夜夜夜空
ip
常用方法,判断一个ip是否在指定的ip范围内,范围可能包括起始ip范围或者掩码形式,无其它依赖,packagecom.yk.ip;importjava.math.BigInteger;importjava.net.InetAddress;importjava.net.UnknownHostException;importjava.nio.ByteBuffer;importjava.util.Arr
- 从零开始学习Netty - 学习笔记 - NIO基础 - ByteBuffer: 简介和基本操作
花开十里落叶无情
nettynettynioByteBuffer
NIO基础1.三大组件1.1.Channel&BufferChannel在JavaNIO(NewI/O)中,“Channel”(通道)是一个重要的概念,用于在非阻塞I/O操作中进行数据的传输。JavaNIO提供了一种更为灵活和高效的I/O处理方式,相比于传统的I/O,它具有更好的性能和可扩展性。常见的JavaNIO中的通道类型:FileChannel(文件通道):用于文件I/O操作的通道,可以在文
- netty踩坑--Unpooled.copiedBuffer(ByteBuffer buffer)
放眼江湖
技术nettysocket
netty踩坑Unpooled.copiedBuffer(ByteBufferbuffer)一、BUG评级二、概述三、Codereview四、BUG分析五、完整代码六、其他博主的详细介绍一、BUG评级BUG发现难度:★☆☆☆☆BUG无法复现概率:☆☆☆☆☆BUG偶然引入概率:★★☆☆☆BUG修复,烧脑程度:★★☆☆☆(随手优化了下代码就不行了T_T)二、概述起一个netty服务端,起一个硬件设备,
- Netty应用(二) 之 ByteBuffer
etcEriksen
Netty应用javaNettynetty后端
目录4.ByteBuffer详解4.1ByteBuffer为什么做成一个抽象类?4.2ByteBuffer是抽象类,他的主要实现类为4.3ByteBuffer的获取方式4.4核心结构(NIO的ByteBuffer底层是啥结构,以及读写模式都是根据这些核心结构进行维护的)4.4核心API4.5字符串操作4.6粘包与半包4.ByteBuffer详解4.1ByteBuffer为什么做成一个抽象类?回答这
- netty核心功能与线程模型
bijian-bijian
java开发语言
Netty初探NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大:例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。且Netty拥有高性能、吞吐量更高,延迟更低,减
- Java - I/O 多路复用(NIO)
qq_489366879
javajava并发java网络socket
NIONIO,有人解释为newI/O,有人解释为Non-blockI/O(我更倾向后者)。正是由于Java传统BIO的拙劣表现,才使得Java支持非阻塞I/O的呼声日渐高涨,最终,JDK1.4版本提供了新的NIO类库,Java终于也可以支持非阻塞I/O了。NIO主要的类和接口如下:进行异步I/O操作的缓冲区ByteBuffer等;进行异步I/O操作的管道Pipe;进行各种I/O操作(异步或者同步)
- JVM 性能调优- 五种内存溢出(5)
magic_kid_2010
jvm性能调优jvm调优java内存溢出
在介绍之前先简单介绍下直接内存(DirectMemory)和堆内存(HeapMemory):关系:直接内存并不是Java虚拟机的一部分,它是通过Java的NIO库中的ByteBuffer来分配和管理的。直接内存通常由操作系统的本地内存(NativeMemory)提供支持。堆内存是Java虚拟机的一部分,用于存储Java对象。堆内存由Java虚拟机的堆内存分配器来分配和管理。区别:分配方式:直接内存
- 初识Netty
盼来一朵云
javanio
初识Netty概述为什么要使用Netty我们在使⽤NIO做同步⾮阻塞式的⽹络通信时,会发现NIO实现起来⾮常复杂。整个NIO的过程包含着繁琐的步骤,且需要同时掌握好各种API的使⽤,⽐如Selector、ServerSocketChannel、SocketChannel及ByteBuffer等。从之前的几篇关于NIO的文章可以看出,还没有实现业务,光写整个流程就⾮常繁琐。NIO除了实现起来复杂之外
- Java 负数表示?如何将10进制转换为16进制,2进制?使用ByteBuffer将double、short、int存入Byte[]
whaifree
java
目录Java的负数表示,第一位为负数,其他取反码10进制转换为16进制,2进制使用ByteBuffer将double、short、int存入Byte[]Java的负数表示,第一位为负数,其他取反码-7可以表示为10000111,最高位的1代表负号,它的反码是除去符号位各位取反为11111000对应的将各种进制转换为byte,起始底层二进制都不影响(byte)25500000001(byte)0x8
- Netty入门使用
我就是胖着玩玩的
后端
为什么会有Netty?NIO的类库和API繁杂,使用起来比较麻烦,需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大,例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。此外,Netty拥有高性能、吞吐量
- Flink消费kafka写入hive,报错GC
dgbcf
hive大数据hadoopflink
报错信息Flink消费kafka写入hive,报错GC。Taskmanager内存加到16GB。不起作用。java.lang.OutOfMemoryError:GCoverheadlimitexceededatjava.nio.HeapByteBuffer.(HeapByteBuffer.java:57)~[?:1.8.0_181]atjava.nio.ByteBuffer.allocate(By
- NIO_通道的数据传输与内存映射文件
Shaw_Young
packagecom.young.nio.day01;importorg.junit.Test;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.nio.ByteBuffer;importjava.nio.MappedByteBuffer;importj
- 基本数据类型和引用类型的初始值
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