- tomcat责任链设计模式 FilterChain原理解析
mengxiangsun
java
转自:http://javapolo.iteye.com/blog/1287747今天晚上花了些时间debug了下tomcat,注意观察了下tomcat内部过滤器的实现,其实tomcat内部过滤器采用了责任链的设计模式,(其实struts2拦截器那一块采用了相似的设计模式),以下是个人对源码的解读,ApplicationFilterChain详解首先是对该类的定义的介绍/***Implementa
- 【Python】使用SQLAlchemy操作Mysql数据库
m0_74824044
数据库pythonmysql
一、SQLAlchemy介绍SQLAlchemy是Python的SQL工具包和对象关系映射(ORM)库,它提供了全套的企业级持久性模型,用于高效、灵活且优雅地与关系型数据库进行交互。使用SQLAlchemy,你可以通过Python类来定义数据库表的结构,并通过这些类与数据库进行交互,而无需编写复杂的SQL语句。以下是SQLAlchemy的一些主要特点和功能:ORM(对象关系映射):SQLAlche
- Dest1ny漏洞库:用友 U8-CRM 系统 ajaxgetborrowdata.php 存在 SQL 注入漏洞
Dest1ny(信息安全业务随时dd)
phpsql开发语言web安全经验分享安全网络安全
大家好,今天是Dest1ny漏洞库的专题!!会时不时发送新的漏洞资讯!!大家多多关注,多多点赞!!!用友U8-CRM系统ajaxgetborrowdata.php存在SQL注入漏洞,文件多个方法存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限。hunterapp.name="用友CRM"fofatitle
- 2024最新小狐狸AI 免授权源码
希希分享
软希网58soho_cn小狐狸AI免授权源码
后台安装步骤:1、在宝塔新建个站点,php版本使用7.2、7.3或7.4,把压缩包上传到站点根目录,运行目录设置为/public2、导入数据库文件,数据库文件是/db.sql3、修改数据库连接配置,配置文件是/.env4、正式使用时,请把调试模式关闭:/.env文件第一行,true改成false5、超管后台地址:http://域名/super初始账号密码:super密码123456及时修改6、用户
- 泛型和通配符详解
重生之我在成电转码
java开发语言
在Java中,**泛型(Generics)和通配符(Wildcard)**是用于增强类型安全性和代码复用的强大特性。它们允许类、接口和方法在定义时不指定具体类型,而是在使用时指定类型参数。通过泛型和通配符,Java可以在编译时进行类型检查,从而避免运行时错误。下面我将详细解释这两个概念,包括其用法、区别、以及各种常见的模式。1.泛型(Generics)泛型是一种在定义类、接口或方法时使用类型参数的
- Windows线程同步—Critical_Section(临界区)深度解析与实战指南
和舒貌
windowsc++网络信息与通信后端
C++Critical_Section深度解析与实战指南一、线程同步的必要性在多线程编程中,当多个线程访问共享资源时(如全局变量、文件、内存区域等),会出现竞态条件(RaceCondition)。例如两个线程同时对同一个变量进行累加操作,可能导致结果不符合预期:线程A共享变量x=0线程B读取x=0读取x=0计算x+1=1计算x+1=1写入x=1写入x=1线程A共享变量x=0线程B关键问题分析:线程
- Socket通讯协议理解及客户端服务器程序流程
luckyext
网络tcp/ip网络协议
Socket通讯我们可以从以下几个方面简单理解1.Socket是网络通信中的一项重要技术,它提供了在网络上进行数据交换的接口。用C#、Java、C++等开发语言,都可以开发Socket网络通信程序。2.Socket(套接字)是计算机网络编程中的一种抽象,它允许不同的计算机或网络设备通过网络进行数据交换。Socket在应用层和传输层之间提供了一个接口,用于实现进程之间的通信。在网络通信中,Socke
- 深入理解C# 异步编程与async/await机制
lichangjun2017
c#数据库javac语言
前言在现代应用程序开发中,异步编程已经成为提高性能、响应速度的重要手段。特别是在处理I/O密集型任务时,如网络请求、文件读写等,使用异步编程能够避免阻塞线程,提高应用程序的运行效率。在本文中,我们将深入了解C#中的async和await关键字,掌握异步编程的基础和实战技巧。一、为什么需要异步编程?在传统的同步编程中,应用程序在执行某些耗时任务(如文件读取或网络请求)时,会阻塞当前线程,直到任务完成
- HTML之JavaScript DOM(document)编程处理事件
录大大i
前端HTMLJavaScriptjavascripthtml前端
HTML之JavaScriptDOM(document)编程处理事件Document/*事件:本质是行为,用户的行为或者浏览器的行为;事件发生指的是处罚js函数执行事件的三要素:事件源、事件、事件处理程序事件的绑定:1.通过元素的属性绑定on***2.通过DOM编程动态绑定注:1.一个事件可以绑定多个函数;eg:onclick="show(),show1()2.一个元素可以绑定多个事件eg:onc
- vue从入门到精通(九):监视属性
陈小于
vue从入门到精通vue.jsjavascript前端
一,监视属性(watch)1.当被监视的属性变化时,回调函数自动调用,进行相关操作2.监视的属性必须存在,才能进行监视!!3.监视的两种写法:(1).newVue时传入watch配置(2).通过vm.$watch监视如下:准备好一个容器-->今天天气很{{info}}切换天气Vue.config.productionTip=false;constvm=newVue({el:'#root',data
- Python的ORM框架sqlalchemy的查询多条数据只显示一条
harleylau
pythonsqlalchemysqlalchemyORM
这个情况可能很少碰到,但确实花了我不少时间去找这个错误,这边记录一下。在使用sqlalchemy作为ORM来拉取mysql的数据的时候,如果想要拉取所有的数据,显而易见应该用类似下边的语句:#获取所有数据session.query(Person).all()如果要加删选条件的话,采用下边的语句:#获取所有数据session.query(Person).filter(Person.sns_id==x
- pymodbus Server和Client示例
漫无目的行走的月亮
python前端服务器
PyModbus是一款功能强大且易于使用的Modbus协议实现库,适用于工业自动化、物联网、能源管理和数据分析等领域。Server:frompymodbus.serverimport(ModbusTcpServer,)frompymodbus.datastoreimport(ModbusSequentialDataBlock,ModbusServerContext,ModbusSlaveConte
- socket io 前后端样例
漫无目的行走的月亮
python开发语言
Socket.IO是一个用于实现实时双向通信的库,最初是为Node.js开发的,用于解决WebSocket在不同浏览器和网络环境中的兼容性问题。它提供了一个统一的API,使得开发者可以轻松实现实时双向通信,而不必担心底层传输协议的差异。目前,Socket.IO不仅支持Node.js,还扩展到了Python、Java、.NET等多种编程语言和平台。Socket.IO主要由服务器端和客户端两部分组成:
- SQLAlchemy中常用的查询方法[示例学习]
铁松溜达py
数据库
SQLAlchemy是一个强大的PythonORM(对象关系映射)工具,它提供了多种方法来执行数据库查询操作。以下是SQLAlchemy中常用的查询方法的总结:session.query():使用session.query(Model)来创建一个查询对象,其中Model是你要查询的数据库模型类。filter():在查询对象上使用filter()方法可以添加过滤条件,例如filter(Model.c
- 大规模GPU集群的进阶之路
卢旗
人工智能
大家好,我是卢旗。今天来聊聊GPU。GPU,全称GraphicProcessingUnit,即图形处理器。它的并行处理能力非常强大,能够同时处理多个任务和数据,因此被广泛用于图形渲染、视频处理、深度学习、科学计算等领域。研发团队在负责制定硬件选型策略并设计优化下一代大规模GPU集群的软硬件架构时,我们需要关注GPU技术的最新进展、重点研究问题以及潜在的技术突破。一、GPU在重点研究的问题算力提升与
- PyTorch `.pth` 转 ONNX:从模型训练到跨平台部署
MO__YE
人工智能
PyTorch.pth转ONNX:从模型训练到跨平台部署在深度学习里,模型的格式决定了它的可用性。如果你是PyTorch用户,你可能熟悉.pth文件,它用于存储训练好的模型。但当你想在不同的环境(如TensorRT、OpenVINO、ONNXRuntime)部署模型时,.pth可能并不适用。这时,ONNX(OpenNeuralNetworkExchange)就必不可少。本文目录:什么是.pth文件
- 数据库-第一范式、第二范式、第三范式、BC范式、第四范式简析
DS_Watson
数据库
在设计与操作维护数据库时,最关键的问题就是要确保数据能够正确地分布到数据库的表中。使用正确的数据结构,不仅有助于对数据库进行相应的存取操作,还可以极大地简化应用程序中的其他内容(查询、窗体、报表、代码等),按照“数据库规范化”对表进行设计,其目的就是减少数据库中的数据冗余,以增加数据的一致性。泛化时在识别数据库中的一个数据元素、关系以及定义所需的表和各表中的项目这些初始工作之后的一个细化的过程。常
- hutool 工具包 深克隆踩坑
DS_Watson
java开发语言
packagehutool;importcn.hutool.core.util.ObjectUtil;importjava.util.ArrayList;importjava.util.List;publicclassCloneTest{publicstaticvoidmain(String[]args){Useruser=newUser();user.setId(1);user.setAge(1
- JavaScript系列(75)--代理模式专题
ᅟᅠ 一进制
JavaScriptjavascript代理模式开发语言
JavaScript代理模式专题JavaScript的Proxy提供了强大的对象代理能力,能够拦截和自定义对象的基本操作。本文将深入探讨Proxy的各种模式、应用场景和最佳实践。代理基础小知识:代理模式允许我们创建一个对象的代理,从而可以控制对这个对象的访问。JavaScript的ProxyAPI提供了13种基本操作的拦截器(trap),使我们能够自定义对象的行为。//基础代理操作consttar
- 启动pip或ipython提示Fatal error in launcher: Unable to create process的解决方法
simple_whu
pythonpipipythonpython
错误以及原因分析有时,运行python的pip或ipython组件会报错:Fatalerrorinlauncher:Unabletocreateprocessusing'"C:\third_party\Python\3.9\win64-msvc-14.2\python.exe"错误信息最后这一串路径在我们的电脑上很可能并不存在!然而,启动pip或ipython时又会尝试运行这个路径的python.
- 什么是Scaling Laws(缩放定律);DeepSeek的Scaling Laws
ZhangJiQun&MXP
教学2024大模型以及算力2021论文人工智能自然语言处理神经网络语言模型深度学习
什么是ScalingLaws(缩放定律)ScalingLaws(缩放定律)在人工智能尤其是深度学习领域具有重要意义,以下是相关介绍及示例:定义与内涵ScalingLaws主要描述了深度学习模型在规模(如模型参数数量、训练数据量、计算资源等)不断扩大时,模型性能与这些规模因素之间的定量关系。它表明,在一定条件下,模型的性能会随着模型规模的增加而以某种可预测的方式提升,通常表现为模型的损失函数值随模型
- 前端高级面试题
阿芯爱编程
面试前端
以下是一些前端高级面试可能涉及到的内容:一、前端工程化如何构建一个适合大型团队的前端代码规范和构建流程?答案:代码规范方面:使用ESLint结合Prettier来统一JavaScript和CSS(包括预处理器如Sass或Less)的语法风格。例如,规定变量命名采用驼峰命名法,函数名要有明确含义等。对于HTML结构,制定语义化标签的使用规范,如导航栏使用标签,页脚使用标签等。确定组件化的规范,包括组
- PyTorch `.pth` 转 ONNX:从模型训练到跨平台部署
MO__YE
pytorch人工智能python
PyTorch.pth转ONNX:从模型训练到跨平台部署在深度学习里,模型的格式决定了它的可用性。如果你是PyTorch用户,你可能熟悉.pth文件,它用于存储训练好的模型。但当你想在不同的环境(如TensorRT、OpenVINO、ONNXRuntime)部署模型时,.pth可能并不适用。这时,ONNX(OpenNeuralNetworkExchange)就必不可少。本文目录:什么是.pth文件
- 获得周公解梦数据接口java_周公解梦接口调用示例
任重道远doing
获得周公解梦数据接口java
packagemainimport("io/ioutil""net/http""net/url""fmt""encoding/json")//----------------------------------//周公解梦调用示例代码-聚合数据//在线接口文档:http://www.juhe.cn/docs/64//----------------------------------constAP
- javascript 基础 insertAfter与insertBefore
老老老刘啊
Javascript基础
1.parent.insertBefore(newElement,targetElement.nextSibling)他的三部分为父节点新节点目标节点他会把新节点创建在目标节点之前需要注意的是父节点并无需获取你通过目标节点.parentNode就可以获取但是js并没有提供插入在目标节点之后的方法我们可以自己写一个functioninsertAfter(newElement,targetElemen
- javascript当中insertBefore的用法
qq_44594371
javascriptjavascriptinsertBeforeinsertBefore
例1.3(insertBeforeIEFF.html)1111msgtest222aaaaaaaaendinsertedNodevarinsertedNode=document.getElementById("insertedNode");varaaa=document.getElementById("aaa");vartest=document.getElementById("contain")
- chrome浏览器如何多开-EasyBR一键多开
天丁
chrome前端谷歌浏览器多开
在网上寻找关于Chrome浏览器多开的教程时,你可能会发现操作相对复杂。然而,最近我发现了一个名为EasyBR浏览器的工具,作者使用程序将繁琐的步骤简化了。主要功能EasyBR浏览器具有以下主要功能:批量账号管理:可以轻松管理多个账号,方便切换和管理不同的用户身份。独立IP分配:每个账号可以分配独立的IP地址,提高账号的隐私性和安全性。账号防关联:通过多开浏览器,可以有效避免账号之间的关联性,保护
- 深入解析美团外卖Flutter-架构演进之路(上篇),2021Android研发必问高级面试题
m0_65321095
程序员架构移动开发android
全局变量和静态成员变量,这些变量不会在热刷新时更新。修改了main函数中创建的根控件节点,Flutter在热刷新后只会根据原来的根节点重新创建控件树,不会修改根节点。某个类从普通类型转换成枚举类型,或者类型的泛型参数列表变化,都会使人刷新失败。热刷新无法实现更新时,执行一次热重启(HotRestart)就可以全量更新所有代码,同样不需要重启App,区别是restart会将所有Dart代码打包同步到
- 学习疯狂JAVA讲义——学习基本类型
红鲤鱼与绿鲤鱼与哈士奇
学习java开发语言
笔记备忘,方便以后忘了查询(如有错误,敬请指点)★类型:↗基本类型Java的类型↘引用类型↗整形(byte、short、int、long)↗浮点型(float、double)★基本类型:→字符型(char)↘boolean型(boolean)★整型位(bit)要么是0、要么是1。字节(Byte)8个bit所谓整形,只能装整数(包括正整数和负整数)2^0→12^1→22^2→42^3→82^4→16
- 使用 INFINI Gateway 保护 Elasticsearch 集群之阻断不合理的查询
数据库
本文将探讨如何使用INFINIGateway阻止不合理的查询发送到Elasticsearch,此方法同样适用于Opensearch和Easysearch。在以往处理ElasticsearchOOM(内存溢出)问题的经验中,我们发现许多案例是由于查询操作导致节点出现OOM的情况。经过调查,这些案例主要分为两类:一类是由于查询吞吐量超出了集群的处理能力,另一类则是在执行某些不合理的查询时触发了OOM。
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include