- 带你吃透(Netty+Redis+ZooKeeper+高并发实战)从底层原理开始剖析
java熬夜党
Javajava面试redis
前言今天给大家分享的Netty+Redis+ZooKeeper底层原理+高并发实战,希望大家认真阅读,跟上文章的节奏,一步步去提升自己~大公司的面试题从某个侧面映射出生产场景中对专项技术的要求。高并发的面试题以前基本是BAT等大公司的专利,现在几乎蔓延至与Java项目相关的整个行业。例如,与JavaNIO、Reactor模式、高性能通信、分布式锁、分布式ID、分布式缓存、高并发架构等技术相关的面试
- 深入剖析Java NIO的epoll机制:红黑树、触发模式与CPU缓存优化
千里码!
后端技术javaIOjavajavanio缓存
深入剖析JavaNIO的epoll机制:红黑树、触发模式与CPU缓存优化编程相关书籍分享:https://blog.csdn.net/weixin_47763579/article/details/145855793DeepSeek使用技巧pdf资料分享:https://blog.csdn.net/weixin_47763579/article/details/145884039引言JavaNIO
- 使用Semantic Kernel:对DeepSeek添加自定义插件
归-途
机器学习oneapi机器学习
SemanticKernel介绍SemanticKernel是一个SDK,它将OpenAI、AzureOpenAI等大型语言模型与C#、Python和Java等传统编程语言集成在一起。SemanticKernel通过允许您定义插件来实现这一点。为什么需要添加插件?大语言模型虽然具有强大的自然语言理解和生成能力,但它们通常是基于预训练的模型,其功能受限于训练时所接触的数据和任务。为大语言模型添加插件
- 深入解析SpringMVC中Http响应的实现机制
上官美丽
java网络协议网络java
在Web应用开发中,处理HTTP请求并返回相应的HTTP响应是核心任务之一。SpringMVC作为Java生态中广泛使用的Web框架,提供了灵活且强大的机制来处理HTTP请求和生成HTTP响应。本文将深入探讨SpringMVC中如何实现HTTP响应的返回,涵盖从控制器方法的返回值到最终生成HTTP响应的完整流程。1.SpringMVC处理HTTP请求的流程在SpringMVC中,HTTP请求的处理
- 关于openAI接口的使用(个人学习总结)
暗雾飘扬
python机器学习_实验项目学习人工智能
文章目录背景OpenAIOpenAI的三种使用方法模型python的openai库根据文档自定义request函数http请求构成接口的响应构成自定义请求和接收函数背景在使用OpenAIAPI接口时遇到了许多问题,在此总结个人的问题(不代表大众),如要深究请看官方OpenAI-API接口文档(中文版)。OpenAIOpenAI的三种使用方法1、使用OpenAIAPI2、使用第三方库3、自己训练模型
- pip指令及其用法
大侠升
指令大全pip
pip是Python的包管理工具,用于安装、升级和管理Python包。下面是一些常用的pip指令及其用法:1.安装包安装一个包,默认从PyPI安装:pipinstall例如:pipinstallnumpy2.安装指定版本的包安装指定版本的包:pipinstall==例如:pipinstallnumpy==1.19.33.升级包升级已安装的包到最新版本:pipinstall--upgrade例如:p
- Netty是如何实现零拷贝的?
java1234_小锋
javajava
大家好,我是锋哥。今天分享关于【Netty是如何实现零拷贝的?】面试题。希望对大家有帮助;Netty是如何实现零拷贝的?1000道互联网大厂Java工程师精选面试题-Java资源分享网Netty是一个高性能的Java网络应用框架,它通过多种技术实现了“零拷贝”(Zero-Copy)机制,以提高数据传输的效率,减少CPU的使用率和内存的消耗。零拷贝指的是在数据传输过程中,避免不必要的内存拷贝,提高处
- Netty为什么性能很高?
java1234_小锋
javajava开发语言
大家好,我是锋哥。今天分享关于【Netty为什么性能很高?】面试题。希望对大家有帮助;Netty为什么性能很高?1000道互联网大厂Java工程师精选面试题-Java资源分享网Netty是一款高性能的网络通信框架,主要用于构建高性能的网络应用程序。其高性能的原因可以归结为以下几个方面:1.NIO(Non-blockingI/O)模型Netty基于JavaNIO(即非阻塞I/O)API,能够实现异步
- Java支持多继承么,为什么?
java1234_小锋
javajava开发语言
大家好,我是锋哥。今天分享关于【Java支持多继承么,为什么?】面试题。希望对大家有帮助;Java支持多继承么,为什么?1000道互联网大厂Java工程师精选面试题-Java资源分享网Java不支持类的多继承,即一个类不能同时继承自多个类。这个设计决策主要是为了避免以下问题:1.菱形继承问题(DiamondProblem)菱形继承问题发生在一个类通过继承多个类时,多个父类之间可能有相同的方法或成员
- 【LeetCode:132. 分割回文串 II + 动态规划】
硕风和炜
#递归/回溯系列#动态规划系列LeetCode每日一题打卡leetcode动态规划算法java递归记忆化搜索dp
在这里插入代码片算法题算法刷题专栏|面试必备算法|面试高频算法越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨作者简介:硕风和炜,CSDN-Java领域优质创作者,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享恭喜你发现一枚宝藏博主,赶快收入囊中吧人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?算法题目录题目链接⛲
- Python和curl 如何使用OpenAI 接口访问LLM
SmallerFL
Python相关pythonopenaillmgpt
文章目录1.安装所需的库2.设置API密钥(可选)3.编写代码4.curl命令1.安装所需的库首先,你需要确保你的环境中安装了openai库。你可以通过pip来安装它:pipinstallopenai2.设置API密钥(可选)如果访问ChatGPT需要设置密钥,如果访问本地模型不需要设置密钥!对于ChatGPT密钥要从OpenAI的官方网站获取,要按token收费。一旦你有了API密钥,可以通过环
- Java里的ArrayList和LinkedList有什么区别?
java1234_小锋
javajava开发语言
大家好,我是锋哥。今天分享关于【Java里的ArrayList和LinkedList有什么区别?】面试题。希望对大家有帮助;Java里的ArrayList和LinkedList有什么区别?1000道互联网大厂Java工程师精选面试题-Java资源分享网ArrayList和LinkedList都是Java集合框架中的常用数据结构,它们都实现了List接口,但在底层实现、性能表现和使用场景上有显著区别
- 爬虫必备数据存储
ylfhpy
爬虫项目入门爬虫python开发语言去重数据持久化
一、引言在当今信息爆炸的时代,网络数据的获取与处理变得至关重要。Python凭借其简洁的语法和丰富的库,成为了爬虫开发的首选语言。当爬虫成功获取数据后,如何高效、可靠地存储这些数据,并避免重复数据的干扰,是需要解决的关键问题。不同类型的数据和应用场景需要不同的存储方式,而数据去重则有助于提高数据质量和存储效率。本文将系统地介绍Python爬虫中常见的数据存储方式和数据去重方法。二、文本数据存储方式
- 多个python打包成exe_多个py文件生成一个可运行exe文件
演绎完美身材
多个python打包成exe
一、概述目前有一个python脚本,需要在别的电脑中运行,安装python环境太麻烦,封装成exe文件,运行比较方便。二、演示环境说明python版本:3.7.9操作系统:windows10安装模块pip3installerpyinstaller封装新建目录test,目录结构如下:./├──conf.py└──test.pyconf.py#!/usr/bin/python3#-*-coding:u
- Slurm作业调度系统常见操作(使用超算运行深度学习)
坐在云朵上的kiwi
工程项目#deeplearning深度学习服务器
1.传输下载文件sftp远程命令cd,pwd等,本地命令lcd,lpwdget远程地址本地地址put本地地址远程地址上传文件夹1.在远程建立和本地一样名称的文件夹如data/2.put-rdata/2.建立虚拟环境moduleloadpython/3.8#加载modulevirtualenv--no-downloadENV#建立一个叫ENV的虚拟环境激活虚拟环境sourceENV/bin/acti
- 《ROS2 机器人开发 从入门道实践》 鱼香ROS2——第5章内容
儒雅芝士
机器人
目录第5章ROS常用开发工具5.1坐标变换工具介绍5.1.1通过命令行使用TF5.1.2对TF原理的简单探究5.2Python中的手眼坐标变换5.2.1通过Python发布静态TF5.2.2通过Python发布动态TF5.2.3通过Python查询TF关系5.3C++中的地图坐标系变化5.3.1通过C++发布静态TF5.3.2通过C++发布动态TF5.3.3通过C++查询TF关系5.4常用可视化工
- pyQT学习笔记-----pushbutton控制Graphics view内对象移动
汉东省长达康
pyQTpyQTGraphicsviewpushbutton控制移动
pyQT学习笔记-----pushbutton控制Graphicsview内对象移动引言项目需要制作一个美观,大气,高逼格的控制界面,出于项目的需要,以及本人对于python语言的掌握程度远高于C,所以果断采用了python+pyQT这个框架,今天本人终于完成了这个控制系统二维操作的动态显示,历时三个周,前前后后试过很多的方法。第一种尝试:从lable显示图片开始,接着使用openCV,用labl
- 服务器ubuntu常见命令
can903154417
服务器linux深度学习tensorflow
新建/删除文件:mkdirA.txt/rmA.txt新建/删除文件夹:mkdirA/rm-dA移动文件或文件夹A到BmvAB打开并编辑并退出文本:via.txtiEsc保存并退出:shift加:然后!wq或者wq查询目前进行任务:top或者ps-auxtop程序停止运行:ctrl+C!!!保持程序后台运行:nohup和&一起使用,nohuppythontest.py>test.log2>&1&杀死
- 2024年Python最新PyQt5 小工具:Excel数据分组汇总器
2401_84556783
程序员pythonqtexcel
importpandasaspd编写UI界面组件布局,UI布局函数init_ui()。init_ui()的函数整体内容都贴在下面这里,大佬们可以根据自己的需要随意发挥。definit_ui(self):标题、图标设置self.setWindowTitle(‘Excel数据汇总工具公众号:[Python集中营]’)self.setWindowIcon(QIcon(‘:/data_sum.ico’))
- 常见自动化测试工具集合
2401_85613856
自动化测试工具运维
1、Appium------->AppUI自动化测试官网:http://appium.ioAppium是一个移动端自动化测试开源工具,支持iOS和Android平台,支持Python、Java等语言,即同一套Java或Python脚本可以同时运行在iOS和Android平台,Appium是一个C/S架构,核心是一个Web服务器,它提供了一套REST的接口。当收到客户端的连接后,就会监听到命令,然后
- JAVA基础学习2
Moon.8888
java学习开发语言
JAVA基础学习2包机制1.包的本质其实就是文件夹包语句的语法格式:packagepkg1[.pkg2[.pkg3...]];注意:1.一般利用公司域名倒置作为包名;例如:www.baidu.com倒置过来作为包名:com.baidu.www;2.*作为通配符导入包的的语法格式:importpackage1.[.package2...].(classname|*);JavaDoc生成文档1.Jav
- 【详解】PythonUnicodeDecodeError:‘ascii‘codeccan‘tdecodebyte0xe9inposition0解决办法
牛肉胡辣汤
javalinux前端
目录PythonUnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe9inposition0解决办法方法一:使用bytes类型方法二:使用unicode_escape编码方法三:确保使用正确的编码方式方法四:使用six库PythonUnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe9inposition0
- 【从入门到精通】Python必会的基础知识和基本语法,看这一篇就够了
天若有情673
Python是一种高级、解释型、面向对象的编程语言,具有简洁易读的语法特点。以下是Python的一些基本语法:1.注释注释用于解释代码的功能和用途,Python中有单行注释和多行注释。#这是单行注释"""这是多行注释可以写很多内容"""2.变量和数据类型变量变量用于存储数据,在Python中不需要声明变量类型,解释器会根据赋值自动推断。#定义一个整数变量num=10#定义一个字符串变量name="
- Python办公自动化案例:批量修改Word文件中的段落格式
衍生星球
pythonwordc#
案例:Python实现批量修改Word文件中的段落格式。在处理大量Word文档时,经常需要批量修改这些文档的格式,比如统一段落格式,以提升文档的一致性和专业性。使用Python来实现这一任务可以极大地提高工作效率,特别是当涉及到数百或数千个文档时。Python通过第三方库如python-docx可以方便地操作Word文档。准备工作:准备两份没有设置段落格式的Word文件。如下图所示:编写代码:#定
- 常见的Python框架--matplotlib
我有颗小粒的痣
Pythonpythonmatplotlib
matplotlib获取方法:https://matplotlib.org/users/installing.html#building-on-linuxsudoapt-getinstallpython-matplotlib#python2.sudoapt-getinstallpython3-matplotlib#python3.简介用于数据可视化#easyexampleimportmatplot
- python docx document 输出word 设置字体
南阳范宏云
pythonword开发语言
python相关学习资料:一张图生成指定动作的动态视频,MagicAnimate本地部署搭建私人助理大模型需要什么环境?GitLabCI/CD-pending的原因使用Python-docx库设置Word文档字体Python-docx是一个用于创建和更新MicrosoftWord文档的Python库。它允许我们以编程方式操作Word文档,包括设置字体样式。本文将介绍如何使用Python-docx库
- 用Python复制Word内容并使用格式设字体与大小
txlgl
网上流传的部分可以百度关键词“Python”和“word”后查看文章学习,以下内容为个人实践,修正了不能运行出错的情况。importwin32comfromwin32com.clientimportDispatch,constantsw=win32com.client.Dispatch('Word.Application')#或者使用下面的方法,使用启动独立的进程:#w=win32com.clie
- 委托者模式(掌握设计模式的核心之一)
cccccchd
设计模式
目录问题:举例:总结:核心就是利用Java中的多态来完成注入。问题:今天刷面经,刷到装饰者模式,又进阶的发现委托者模式,发现还是不理解,特此记录。举例:老板(委托者):“我有个需求要做,但具体咋做我不关心,你(被委托者)按我的规则(接口)搞定就行。”→只提要求,不亲自干活。员工(被委托者):“老板放心,我按你定的规则(接口)来办!”→遵守接口承诺,实现具体逻辑。协商的规则(接口):“需求必须通过P
- Spring学习01
nightelves11
springJavaspringjava后端
spring学习011.微服务*2.反应式框架3.云原生开发*4.web应用5.无服务器技术6.事件驱动7.批处理project(Java开发各个方面)frameworkbootdata处理数据cloud云原生security安全管理session共享会话integration集成Hateoas媒体服务restdocs文档Batch批处理CredHubStatemachine状态机-…IOC控制反
- Python--面向对象基础(上)
索然无味io
Python全栈开发python开发语言windows网络安全web安全笔记
初识面向对象类与对象定义classMessage:defsend_email(self,email,content):print(f"给{email}发邮件,内容:{content}")#实例化对象并调用方法msg=Message()msg.send_email("
[email protected]","HelloWorld")语法规范类名采用大驼峰命名法(如ClassName)类默认继承objec
- 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