- 质量的“试金石”:精通Spring Boot单元测试与集成测试
pjx987
Java服务端核心技术springboot单元测试集成测试spring
经过前面十一篇文章的探索,我们已经使用SpringBoot构建了一个功能丰富、具备现代应用诸多特性的服务端应用。它拥有清晰的架构(MVC)、强大的核心(IoC/DI/AOP)、高效的数据访问(JPA/JdbcTemplate)、健壮的事务管理、灵活的配置、异步处理能力(MQ)、性能优化手段(Cache)以及基本的安全防护。但是,我们如何确信这一切都能按预期工作?如何保证在未来添加新功能或重构代码时
- Spring Boot JPA MySQL 多租户系统 Part3 - 管理租户
PeterGamp
SpringBoot学习springbootmysqlkotlin
目录前言管理租户扫描实体多数据源数据源的配合配置文件管理数据源租户数据源总结前言多租户系统可以帮助我们方便地实现为多个租户服务的服务器应用。可以做到各租户间数据彼此隔离,其他资源共享。上篇我们在项目启动时分别为每个租户创建了数据库和数据表,减少了部分手动配置的工作。上篇:SpringBootJPAMySQL多租户系统Part2-自动建表本篇我们来继续完善多租户系统的功能,尝试让其成为独立的模块,最
- Spring 学习笔记之 @Transactional 异常不回滚汇总
走向自由
Java代理Transactional注解SpringAOP事务异常不回滚
使用springboot时,只要引入spring-jdbc/jpa相关的依赖后,在想要启用事务的方法上加上@Transactional注解就能开启事务,碰到异常就能自动回滚。大大的提高了编码的便捷性性,同时也不侵入代码,保持了代码的简洁性。默认情况下,Spring时使用的SpringAOP(mode=Mode.Proxy,proxyTargetClass=false)方式启动数据库事务拦截。只有了
- Spring Data
zizisuo
springjava后端
目录一、SpringData简介与生态概览什么是SpringData?SpringData与SpringDataJPA的关系SpringData家族:JPA、MongoDB、Redis、Elasticsearch、JDBC、R2DBC……与MyBatis的本质差异(ORMvsSQL显式控制)二、SpringDataJPA核心机制实体类(@Entity)与主键映射(@Id、@GeneratedVal
- Spring 事务实现原理,Spring 的 ACID是如何实现的?如果让你用 JDBC 实现事务怎么实现?
蒂法就是我
spring数据库sql
Spring事务实现原理Spring的事务管理基于AOP(面向切面编程)和代理模式,通过以下核心组件实现:事务管理器(PlatformTransactionManager)Spring提供了统一的事务抽象接口(如DataSourceTransactionManager、JpaTransactionManager),负责实际的事务操作(开启、提交、回滚)。不同持久化框架(JDBC、JPA)有不同实现
- spring boot + mybatis 完整配置过程+mybatis体会
动作缓慢的程序猿
职场与发展javaspringbootjavaspring
在团队里面现在大多数开发者都喜欢用mybatis,因为mybatis基于sql基本上看下sql怎么写就能写出来,算是比较容易上手。因此就萌生了这个springboot+mybatis的框架构建。(其实笔者更喜欢觉得jpa更加简洁容易上手我认为jpa+idea+springloader才是开发最快的==!笔者不喜欢用eclipse觉得搞terminal有点麻烦,下次写上jpa和springboot的
- Spring-data-redis
猿大撒
bootstrap前端html
spring-data-jpaspring-data-jdbcspring-data-redis说明:在SpringBoot2.x之后,原来使用的jedis被替换为了lettucejedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用jedispool连接池lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据了1.加入Re
- springboot编写单元测试
张晶新
架构设计
pom:需要引入的依赖org.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-javaruntimeideal添加插件:JunitGenerator,使用快捷键:打开代码,选择要创建test的类,ctrl+
- Spring Boot + MongoDB + QueryDSL 实战项目
我就是夏迎春
本文还有配套的精品资源,点击获取简介:本项目是一个综合性的学习平台,旨在通过构建一个SpringBoot+MongoDB项目,教授开发者如何使用SpringDataJPA持久化数据,利用QueryDSL进行复杂查询,并通过Swagger2组件调试RESTfulAPI。该项目详细展示了SpringBoot应用开发的核心技术集成和使用过程,帮助开发者提升技能和项目质量。1.SpringBoot快速构建
- Mybatis的简单介绍
岳轩子
mybatismybatis
文章目录MyBatis简介1.MyBatis核心特点2.MyBatis核心组件3.MyBatis基本使用示例(1)依赖引入(Maven)(2)定义Mapper接口(3)定义实体类(4)在Service层调用4.MyBatis与JPA/Hibernate对比MyBatis简介MyBatis是一款优秀的持久层框架(ORM框架),它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手
- Spring开发系列教程(18)——集成MyBatis
软件定制开发工作室
Spring系列教程spring
使用Hibernate或JPA操作数据库时,这类ORM干的主要工作就是把ResultSet的每一行变成JavaBean,或者把JavaBean自动转换到INSERT或UPDATE语句的参数中,从而实现ORM。而ORM框架之所以知道如何把行数据映射到JavaBean,是因为我们在JavaBean的属性上给了足够的注解作为元数据,ORM框架获取JavaBean的注解后,就知道如何进行双向映射。那么,O
- 47、Spring Boot 详细讲义(四)
跟着汪老师学编程
springboot后端java
六.SpringBoot与数据库目录JDBC集成SpringDataJPAMyBatis集成事务管理1、JDBC集成1.1JDBC简介1.1.1定义和作用JDBC(JavaDatabaseConnectivity)是Java中用于与关系型数据库进行交互的API。它为Java程序提供了一个标准的、统一的接口,使得Java程序可以连接到各种支持JDBC的数据库,如MySQL、Oracle、Postgr
- 【SpringBoot】Spring data JPA的多数据源实现
攻城狮·建哥
springbootjavaspring
一、主流的多数据源支持方式将数据源对象作为参数,传递到调用方法内部,这种方式增加额外的编码。将Repository操作接口分包存放,Spring扫描不同的包,自动注入不同的数据源。这种方式实现简单,也是一种“约定大于配置”思想的典型应用。本文将以这种方式实现JPA的多数据源支持使用SpringAOP面向切面编程,然后在持久层接口方法上面加注解,不同的注解使用表示使用不同的数据源。在此暂不做介绍。二
- AxonDemo实战教程:基于Axon构建事件驱动微服务
富嫱蔷
AxonDemo实战教程:基于Axon构建事件驱动微服务项目地址:https://gitcode.com/gh_mirrors/ax/AxonDemo1.项目介绍AxonDemo是一个利用Axon框架、SpringCloud、SpringCloudStream以及JPA的示例项目,演示如何结合这些技术实现事件溯源(EventSourcing)和命令查询职责分离(CQRS)模式。该项目特别适用于想要
- java的maven打包插件来了,package一键打包exe、dmg、rpm等
MisterZhang666
1024程序员节swingguiexejava打包maven
最近在写桌面客户端,由于发现打包始终没那么便捷,于是就写了此插件,只需要简单配置,就能打包exe,具体功能参考jdk的jpackage,需要jdk17以上,还有一些参数是要求jdk>17的,也就是18开始才有的,不过使用17打包基本没啥问题,此打包插件除了打包gui外,还可以打包springboot等项目EasyPackagejavaswingjavafxgui可以一键打包app-image、ex
- Spring Data JPA中的List底层:深入解析ArrayList的奥秘!!!
小丁学Java
SpringDataJPAlist数据库数据结构
SpringDataJPA中的List底层:深入解析ArrayList的奥秘你是否好奇过,为什么SpringDataJPA的查询方法返回的List总是默认为ArrayList?本文将通过技术原理解析、验证实验和性能优化指南,为你揭开这一设计的神秘面纱!一、核心原理:为什么是ArrayList?1.ORM框架的默认选择SpringDataJPA底层采用Hibernate作为JPA实现。当执行查询时,
- org.hibernate.HibernateException: identifier of an instance 错误可能出现的情况
evolution_language
spring异常处理javahibernate
最近在使用hibernatejpa中出现了该错误org.hibernate.HibernateException:identifierofaninstance并且反复检查没有映射没有任何问题最后发现问题竟然是主键的问题比如我在一个合同对象中包含一个附件即1对1的关系那么该合同的主键id假如在丢失后,进行插入不会有问题无非是一个是JpaRepository进行保存操作一个是修改操作区分是通过主键的i
- was altered from xxx to null; nested exception is org.hibernate.HibernateException
evolution_language
spring异常处理spring异常hibernatejava
wasalteredfromxxxtonull;nestedexceptionisorg.hibernate.HibernateException直接上干货:在使用JPA时如果使用的保存方法在保存数据库已存在的对象时,而这时你将数据库的已存在的数据传过来并使其主键id为null这时如果调用JPA的修改方法就出出现这个错误.解决办法在一个事务中当使其主键id为null调用JPA自带的save方法而不
- Spring Boot项目连接MySQL数据库及CRUD操作示例
小小鸭程序员
javamysqlspringspringbootpython
概述在SpringBoot项目中集成MySQL数据库是常见的开发需求。本文将演示如何快速配置MySQL数据库连接,并通过JPA实现基本的增删改查(CRUD)操作。环境准备JDK1.8+MySQL5.7+(推荐8.0+)SpringBoot2.7.x+IDE(IntelliJIDEA/Eclipse)实现步骤1.创建SpringBoot项目通过SpringInitializr或IDE创建项目,选择以
- spring security+mybatis 和spring security + spring Data JPA 实现认证对比
LCY133
springmybatisjava
以下是基于SpringSecurity+MySQL+MyBatis实现认证系统的完整步骤:1.项目初始化在pom.xml中添加依赖:org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-securitymysqlmysql-connector-javaruntimeorg
- 分享系列项目的基础项目
无级程序员
代码分享javaspringboot
本人分享了一系列的框架项目,它们共同需要依赖这个公共基础,结构如下图所示:其中:audit:JPA的审计信息基础类auth:认证授权相关类config:包括redis配置,client中token配置,openai文档配置reset:rest调用异常处理代码链接:https://gitee.com/iisp_team/irmp-common
- Java 贪吃蛇游戏
欣然~
python算法开发语言
这段Java代码实现了一个经典的贪吃蛇游戏。玩家可以使用键盘的上下左右箭头键控制蛇的移动方向,蛇会在游戏面板中移动并尝试吃掉随机生成的食物。每吃掉一个食物,蛇的身体会变长,玩家的得分也会增加。如果蛇撞到自己的身体或者撞到游戏面板的边界,游戏就会结束。类和方法详细说明类定义javapublicclassSnakeGameextendsJPanelimplementsActionListener{Sn
- Java康威生命游戏(Conway‘s Game of Life)
欣然~
java
这段Java代码实现了一个三维版本的康威生命游戏(Conway'sGameofLife)的图形用户界面(GUI)程序。康威生命游戏是一个零玩家游戏,它包括一个二维或多维的网格,每个网格中的细胞有存活或死亡两种状态,根据其周围细胞的存活情况按照一定规则进行迭代更新。此程序模拟了一个三维的细胞世界,并且通过JFrame和JPanel提供了可视化的界面,以一定的时间间隔展示细胞状态的演化。类和成员变量说
- spring batch 中JpaNamedQueryProvider、JpaNativeQueryProvider两种查询方式对比
爱的叹息
Java基础整理springbatchoracle
完整代码示例:对比两种查询方式//Employee.java实体类(包含命名查询)@Entity@NamedQuery(name="Employee.findAllNamedQuery",query="SELECTeFROMEmployeeeORDERBYe.id")//定义命名查询publicclassEmployee{@IdprivateLongid;privateStringname;pri
- Spring-data-jpa最全的查询语法总结,直入超神
香菜+
Java超神之路springjavaspringboot
♂️个人主页:@香菜的个人主页,加ischongxin,备注csdn✍作者简介:csdn认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主希望大家多多支持,我们一起进步!如果文章对你有帮助的话,欢迎评论点赞收藏加关注+系列文章:SpringBoot学习大纲,可以留言自己想了解的技术点前言之前文章已经写过一次springdata,链接:
- Spring Data JPA 的分页魔法:Pageable vs PageRequest,谁才是真正的“分页王”?✨
小丁学Java
SpringDataJPA数据库
SpringDataJPA的分页魔法:PageablevsPageRequest,谁才是真正的“分页王”?嘿,各位技术探险家!今天我们要解锁SpringDataJPA的分页秘籍,聊聊Pageable和PageRequest这对“分页双人组”的爱恨情仇!从它们的关系到使用场景,再到一个让我抓狂的参数陷阱,这篇博客带你从迷雾走向光明,还有流程图助阵,快跟我一起跳进这个技术冒险吧!第一幕:分页的“魔法钥
- 10 分钟学会SpringValidation数据校验和全局异常处理
ohn.yu
springspringbootjava
以下是一个使用Spring开发的简单RESTAPI小程序,通过对一张user表进行操作,代码演示如何RestAPI开发中实现数据校验、全局异常处理和返回Json格式数据。使用的核心框架包括SpringBootSpringWebSpringDataJPABeanValidation(JSR-303)Lombok1.项目依赖(pom.xml)创建一个Maven项目,添加以下依赖:"xmlns:xsi=
- 数据访问:JPA 关联& MyBatis
斗-匕
oracle数据库
创建项目添加关键依赖包:任何使用方式都需要首在pox.xml中引入mybatis-spring-boot-starter的启动器,我们使用项目向导添加的依赖如下:application.ymlspring:#配置数据源datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/crm?us
- JPA 实战经验
jpajava
这个博客会持续更新...JSON数据无法进行更新背景:数据库字段是json格式,代码Entity中字段使用了@Converter进行类型转换,对象本身是个List,产生的效果是查询生效,插入生效,更新不生效。怀疑方向:List对象实例ID发生变更了导致未识别@Converter转换器类型有问题尝试以上操作之后,问题依旧。最后,发现自己搞错概念了,把字段与关联表概念搞混了,它本质是一个字段,JPA对
- spring-data-jpa 动态条件 分页查询
小小小小小小小小小小码农
springboot
pom.xml配置org.springframework.bootspring-boot-starter-data-jpa数据库连接配置##############################################################数据源配置#############################################################spri
- 基本数据类型和引用类型的初始值
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