- SpringBoot集成EasyExcel实现Excel文件导入/出
码届艺术家
springbootexcel
一,添加依赖com.alibabaeasyexcel最新版本org.projectlomboklombokorg.springframework.bootspring-boot-starter-logging二,创建实体类@ExcelProperty的属性说明value按列名去匹配Excel数据,如果名字重复,会导致只有一个实体类字段读取到数据index按列的下标去匹配Excel数据不建议inde
- Springboot使用Mongo数据库实现文件的上传下载预览等服务接口
泰山AI
技术交流springboot数据库后端mongogridFSJAVA
MongoDBGridFS简介MongoDBGridFS是一个用于存储和检索大型文件的规范,它允许在MongoDB数据库中存储超过16MB的文件,如图片、音频、视频等。GridFS通过将文件分割成多个小的chunk(文件片段),每个chunk通常为255KB,并将这些chunk存储在MongoDB的集合中,从而解决了MongoDB对单个文档大小的限制。以下是GridFS的详细介绍:GridFS的基
- servlet的过滤器filter和springmvc的拦截器Interceptor
后台技术汇
servlet
背景Servlet的过滤器(Filter)和SpringMVC的拦截器(Interceptor)都是用于在请求处理过程中对请求进行拦截和处理的组件。它们之间的主要区别在于它们的作用范围和使用方式。作用范围Filter:过滤器是基于Servlet规范的,它可以在整个Web应用程序中对所有请求进行拦截和处理。过滤器可以用于处理诸如身份验证、日志记录、数据压缩等通用任务。Interceptor:拦截器是
- helm学习第三篇--结合 springboot 单做
Wade_Crab
java-rocketmqspringbootrediskubernetes
创建一个springboot项目放到里面去—开山立派要将你的SpringBoot项目代码与Redis、MySQL和RocketMQ组合到同一个HelmChart中,你可以按照以下步骤进行操作:1.准备SpringBoot项目确保你的SpringBoot项目已经打包为Docker镜像。如果还没有创建Docker镜像,可以在SpringBoot项目的根目录下创建一个Dockerfile,并使用以下内容
- Java实现十大排序算法
Mojitocean
程序猿日常java排序算法算法
时间/空间复杂度对比:n表示输入元素的数量,k表示元素的取值范围大小。稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面。时间复杂度:对排序数据的总操作次数。反映当n变化时,操作次数呈现什么规律。空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。排序算法时间复杂度-最好时间复杂度-最差时
- ES6--《每日学习》
Oswaldhs
es6学习javascript
一、ES6相关介绍1.1、什么是ES61995年的美国,有一家名为netscape(网景)的公司打造了一款主要用于check验证的脚本语言,而恰在此时,Sun公司的java语言火的一塌糊涂,netscape公司为蹭其热度,便将该脚本语言命名为JavaScript。不料JavaScript居然被越来越多的人使用,后效仿大秦的货币统一政策将其提交给国际标准组织ECMA。该组织发布的标准被称做ECMAS
- Java LinkedList 深入解析
wjs2024
开发语言
JavaLinkedList深入解析概述JavaLinkedList是Java集合框架中的一部分,实现了List接口和Deque接口。与ArrayList相比,LinkedList在插入和删除操作上提供了更好的性能,但在随机访问元素方面则相对较慢。LinkedList由一系列的双向链表节点组成,每个节点都包含数据和两个指针,分别指向前一个节点和后一个节点。主要特性双向链表结构LinkedList的
- There is no getter for property named 'sn' in 'class java.lang.String'
在下小保
结果selectidfromtableandsn=#{sn}报错的情况只有一个String参数用了<where<iftest标签,没用_parameter没用<iftest,也没用wheresn=#{value}
- Vue.js项目构建
彭于晏“
vue.js
Vue.js是一个流行的JavaScript框架,用于构建用户界面。下面是使用Vue.js构建项目的详细方法:安装Vue.js:首先,你需要在项目中安装Vue.js。你可以通过在终端中运行以下命令来安装Vue.js:npminstallvue创建Vue实例:在项目的入口文件中,创建一个Vue实例。你可以使用以下代码创建一个简单的Vue实例:importVuefrom'vue';newVue({el
- sqllabs游戏
Vanilla-li
web安全
文章目录总体思路:less-1:less-2:less-3:less-4:less-5:less-6:less-7:less-8:布尔盲注less-9:时间盲注less-21:less-24:总体思路:1、第一件事情逃脱出单引号的控制闭合单引号2、单双引号需要成对出现在pythonphpJava中3、2个办法继续把多出来的单引号闭合,要么注释掉单引号4、MySQL注释符–#/***/*/url会编
- Java刷题随笔---137.只出现一次的数字Ⅱ
Dunponsion
Leetcode刷题随笔javaleetcode算法
137.只出现一次的数字II-力扣(LeetCode)(leetcode-cn.com)难度:中等题目描述:给你一个整数数组nums,除某个元素仅出现一次外,其余每个元素都恰出现三次。请你找出并返回那个只出现了一次的元素。分析:分析:1-这类题可以简单的使用HashMap进行存储,key值为数组元素,value值为元素出现的次数,最后遍历一遍,输出value为1的key即可。2-进阶方法可以使用位
- Vue3 + Axios双Token刷新解决方案
洛*璃
vue.js前端javascriptAxios双token刷新
在现代前端开发中,使用API进行数据交互时,我们常常会遇到身份认证的问题。为了提高安全性,许多应用采用了Token机制,如JWT(JSONWebToken)来管理用户的身份状态。本文将介绍如何在Vue3项目中使用Axios实现双Token刷新机制,确保用户体验流畅的同时提高安全性。前置条件本文只针对Vue3前端所编写的双Token刷新解决方案,关于SpringCloud微服务项目的双Token刷新
- 第 004 期 提高页面渲染速度的 3 个 CSS 技巧
前端GoGoGo7
提到提高页面渲染速度,我们第一想到的是优化JavaScript。其实通过优化CSS也能提高页面渲染速度。优化方案1.延时渲染屏幕外的内容-content-visibility:auto很长的页面会有大量的内容在屏幕外。如果只渲染屏幕内的内容,屏幕外的内容在出现时才渲染,能大大的节约渲染时间。CSSContainmentModuleLevel2模块新增了content-visibility属性。这个
- js字符串方法速览---字符串的静态方法,实例方法和属性合集,各包含一个示例
I_am_shy
javascript前端开发语言
tips:本文仅作为查找和基本使用的展示,需要深入了解这些方法的使用请参考:String-JavaScript|MDN(mozilla.org)可以通过目录快速锁定需要查找的方法和查看它的使用目录tip:新建一个字符串字符串实例属性字符串静态方法String.fromCharCode(...nums)String.fromCodePoint(...nums)String.raw({raw:arr}
- SpringBoot项目中mybatis执行sql很慢的排查改造过程(Interceptor插件、fetchSize、隐式转换等)
星月昭铭
javamybatisSpringBootspringbootmybatissqljava
刚入职公司,就发现公司项目跑sql特别慢,差不多一万条数据插入到数据库要5秒以上(没有听错,就是这个速度),查询修改删除也是特别慢。直到22年年底实在是受不了了,我就去排查了一下。用的是Oracle数据库,mybatis、mybatisplus,其中mybatis是引入的平台的依赖。平台封装了一些工具和插件。做个对照试验首先为了做对照试验,自己新建了一个SpringBoot项目T,里面引入了官方的
- JavaScript防抖函数
喂!大掌柜
javascript开发语言ecmascript
在JavaScript中,你可以使用函数闭包来创建一个防抖函数。下面是一个简单的实现示例:functiondebounce(func,delay){lettimeoutId;returnfunction(){clearTimeout(timeoutId);timeoutId=setTimeout(func,delay);};}使用这个防抖函数时,你需要将需要防抖的函数和延迟时间作为参数传递给deb
- 停止在 TypeScript 中使用“any”类型
喂!大掌柜
typescripttypescriptjavascript前端前端框架
有更好的TS类型和接口可用。为什么你不应该在TypeScript中使用“any”类型TypeScript是Web开发人员最常用的编程语言之一。它具有出色的语言功能,可让您轻松设计可扩展的应用程序。因此,开发人员倾向于为他们的项目选择TypeScript而不是JavaScript。但是,在使用TypeScript时,我们需要避免一些常见错误,以最大限度地发挥其功能。例如,过度使用any类型是我们经常
- 深入理解Spring Boot的开箱即用与自动装配特性
拾柒mm
开发语言springbootjava
在SpringBoot中,“开箱即用”和“自动装配”是两个重要的特性,它们大大简化了应用程序的开发和维护。通过这些特性,开发者可以专注于业务逻辑,而不必陷入繁琐的配置中。1.开箱即用特性1.1开箱即用的概念“开箱即用”意味着开发者可以通过最少的配置,快速启动和运行一个Spring应用程序。SpringBoot通过提供一系列的“Starter”依赖和自动配置功能,能够快速构建应用,而无需手动配置大量
- Android 12.0 App全屏时通过系统属性控制上划下拉是否显示虚拟导航栏和状态栏
VaporRuby
android
遇到问题厂测App触摸屏测试,需要全屏显示,禁止出现状态栏和导航栏,以免影响测试。参考资料https://zhuanlan.zhihu.com/p/440810585Android12系统源码_SystemUI(九)WindowInsetsController源码解析-CSDN博客解决方案1、framework修改点+++b/frameworks/base/services/core/java/c
- 常用的 Spring Boot 注解及其作用
chenwenxing228
SpringBootspringboot后端java
1、常用注解介绍:SpringBoot提供了许多注解来简化开发,并帮助开发者在Spring应用中实现各种功能。以下是一些常用的SpringBoot注解及其作用:@SpringBootApplication:作用:用于标识主启动类,通常位于SpringBoot应用的入口类上。功能:该注解整合了三个常用注解:@Configuration、@EnableAutoConfiguration和@Compon
- 如何在小程序中实现页面之间的返回
那维莱特
小程序apache
在小程序中实现页面之间的返回,通常有以下几种方法,这些方法各有特点,适用于不同的场景:1.使用wx.navigateBack方法描述:wx.navigateBack是微信小程序中用于关闭当前页面,返回上一页面或多级页面的API。使用方式:javascript复制代码wx.navigateBack({delta:1//表示返回上一级,如果delta大于1则表示返回多级});特点:可以根据delta的
- android11 状态栏导航栏控制显示隐藏
Optimus●Prime
androidframeworks状态栏控制statusbarnavigationbar导航栏控制
目录1.添加Intent广播2.设置全局KEY3.设置默认开关4.配置默认状态保存5.状态栏关闭时禁止下拉6.根据默认值设置显示隐藏7.配置广播控制8.使用方式通过自定义广播的形式将系统的状态栏,导航栏显示隐藏,分别控制,也可以在配置文件中默认设置显示隐藏。(效果图)1.添加Intent广播frameworks/base/core/java/android/content/Intent.java
- Spring Boot 核心注解,常用注解,注解大全
码上农民
springBootspringbootspringjava
前言SpringBoot主要优势之一,就是“开箱即用,远离繁琐的配置”。SpringBoot架构没有代码生成,也不需要XML配置,有效避免大量的Maven导入和各种版本冲突,为Spring开发提供一个更快、更广泛的入门体验。不得不说,掌握SpringBoot常用注解,是学习SpringBoot架构的关键。一、核心注解@SpringBootApplication通常用在启动类上,申明让springb
- 00后会自动化就想拿20K?不,你还差点远呢···
v_648374
自动化运维
等你搭建好公司的自动化生态,你还是不满足,我为什么不把这些东西可视化管理呢?做个平台?管理用例,管理任务,管理测试报告?我还可以把公司的一些部署任务也集成过来?想法很好!此时的你已经不仅仅是一名优秀的自动化工程师了,已经迈向了测试开发的道路!开始学习,了解了测试框架httprunner,开发框架django/flask/springboot,懂得了接口开发的流程,了解了mybatis,shiro,
- Windows 设置环境变量
kylinholmes
windowspowershell环境变量
环境变量是什么环境变量是一种在系统里的变量,可以理解成一种属性,就放在那,有需要的程序就会去读,类似写代码里的全局变量通常用作,程序运行时的一些参数环境变量分为用户,系统。举个经典的栗子,Java安装的时候,需要自己手动配置环境变量,非常头大但其实Windows可以通过命令行一句话设置。假设我们需要设置JAVA_HOME这个环境变量PowerShell中的Env在powershell里有3个环境变
- Java集合——map
Java小义
Java集合java开发语言
在Java中,Map是一个用于存储键值对(key-valuepairs)的集合,不允许重复的键,每个键映射到一个值。Map接口有几个常用的实现类。以下是Map接口的主要知识点:1.主要方法put(Kkey,Vvalue):将指定的键key和值value添加到映射中。如果键已存在,更新其对应的值。get(Objectkey):返回指定键key对应的值。remove(Objectkey):移除指定键k
- Android12 添加设置控制导航栏显示和状态栏下拉
framework-coder
Android12系统修改与定制panelbarnavigationbar
添加key值位置:frameworks/base/core/java/android/provider/Settings.java/***Controlnavigationbarenabled*/@Readable@SuppressLint("NoSettingsProvider")publicstaticfinalStringNAVIGATIONBAR_ENABLED="navigationba
- Spring Boot常用注解及其含义
拾柒mm
javaspringboot
SpringBoot常用注解及其含义注解含义@SpringBootApplication标记主应用程序类,包含@Configuration、@EnableAutoConfiguration和@ComponentScan。@EnableAutoConfiguration启用SpringBoot的自动配置功能,根据类路径中的依赖自动配置应用程序。@Configuration标记一个类为Spring的配
- linux打jar包xml文件,springboot打jar包部署外置配置文件
胡佳威
linux打jar包xml文件
一、读取配置文件的优先级默认:Jar包同级目录的config目录Jar包同级目录classPath(即resources目录)的config目录classpath目录最高优先级的方式是项目启动时通过命令的方式指定项目加载核心配置文件,命令如下java–jarxxxx.jar-Dspring.config.location=xxx/xxx/xxxx.properties如果SpringBoot在优先
- springboot配置文件加载顺序,配置文件优先级
AiJann
1.若application.yml和bootStrap.yml在同一目录下,则bootStrap.yml的加载顺序要高于application.yml,即bootStrap.yml会优先被加载。原理:bootstrap.yml用于应用程序上下文的引导阶段。bootstrap.yml由父SpringApplicationContext加载。•bootstrap.yml可以理解成系统级别的一些参数配
- 基本数据类型和引用类型的初始值
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