- MyBatis 类型处理器TypeHandler作用
冰糖心书房
Mybatis源码系列mybatis
TypeHandler是MyBatis中用于处理Java类型与JDBC类型之间转换的接口。它在MyBatis的参数绑定和结果映射过程中起着至关重要的作用。为什么需要TypeHandler?Java和数据库(JDBC)使用不同的类型系统。例如:Java中有String、Integer、Date、Boolean、enum等类型。JDBC中有VARCHAR、INTEGER、DATE、BOOLEAN、TI
- 【手把手教你-Python】如何让 Flask 根据现有表结构生成 SQLAlchemy 模型文件?
EricLing2022
pythonflask开发语言sqldatabase
首先你要具备一定Python基础,了解Flask框架,以及数据库工具SQLAchemy。为什么会有这个需求?在使用Python编写项目代码时,假设数据库中的表已经存在,我们需要根据现有的表结构来编写SQLAlchemy模型文件。为了避免逐行编写代码,我们可以使用一个工具来“一键生成”模型文件,那就是sqlacodegen。准备工作Python版本:3.11.5(只要是3.xx版本应该都可以)安装好
- 数组逆序重放
crmeb专业二开
python开发语言
数组逆序重放的意思是将数组的元素逆序排列,然后重新放回原数组中。这个操作可以在很多编程语言中实现,例如Python、Java等。下面是一个Python的示例代码,可以实现这个操作:defreverse_and_rearrange(arr):#反转数组arr.reverse()#重新放回原数组result=[]foriinrange(len(arr)):result.append(arr[i])re
- Python 程序 运行过程
iteye_20309
pythonc/c++数据库
一.Python解释器Python是一门编程语言,同时也是一个解释器的软件包。解释器是一种让其他程序运行起来的程序。当你编写了一段Python程序,Python解释器将读取程序,并按照其中的命令执行,得出结果。解释器是代码与计算机硬件之间的软件逻辑层。当Python包安装后,它包含了一些最小化的组件:一个解释器和支持的库。根据使用情况的不同,Python解释器可能采取可执行程序的形式,或者作为链接
- 手把手教你学AUTOSAR(10.1)--AUTOSAR 组件的配置与集成实例
小蘑菇二号
手把手教你学AUTOSAR原型模式
目录AUTOSAR组件的配置与集成实例1.准备工作1.1安装工具1.2创建项目2.系统设计2.1创建系统包3.添加软件组件(SWCs)3.1创建TemperatureSensorSWC3.2创建ACControlSWC4.配置通信接口4.1连接端口5.配置ECU资源5.1创建ECU资源包5.2分配资源6.生成配置文件和代码6.1生成配置文件6.2生成代码7.示例代码7.1ReadTemperatu
- Java中DDD概念之四理解仓储模式:领域与数据层的优雅桥梁
以恒1
java开发语言
Java,DDD概念之四理解仓储模式:领域与数据层的优雅桥梁一、仓储模式是什么?仓储(Repository)就像一个智能的业务数据管家。想象你经营一家图书馆,书籍的存放、检索、上架工作交给专业管理员,你只需告诉管理员:“我需要2023年出版的所有编程书籍”。仓储就是这样的管理员,把繁琐的数据操作封装起来,让业务代码专注处理核心逻辑。二、为什么需要仓储模式?1.传统开发的问题假设有一个用户管理系统:
- MyBatis 从入门到精通:详解基础与实战(完整版)
以恒1
mybatis
MyBatis从入门到精通:详解基础与实战(完整版)(新手入门篇在主页)一、MyBatis基础概念1.1什么是ORM?ORM(Object-RelationalMapping)即对象关系映射,是一种将数据库表与程序对象自动映射的技术。MyBatis作为半自动化的ORM框架,允许开发者直接编写SQL,同时自动处理对象与数据库结果的映射。1.2MyBatis核心功能SQL映射:将Java方法与SQL语
- 将一个数组逆序输出。-多语言
赔罪
Practicequestions算法数据结构pythonc语言javajavascript
目录C语言实现方法1:交换元素方法2:使用辅助数组方法3:使用递归方法4:使用标准库函数(C99及以上)总结Python实现方法1:交换元素方法2:使用切片方法3:使用reversed()函数方法4:使用list.reverse()方法方法5:使用for循环和append()总结Java实现方法1:交换元素方法2:使用Collections.reverse()方法(适用于对象数组)方法3:使用递归
- 使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
FL1623863129
深度学习YOLOflaskpython
这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示,代码仅仅有2个html文件和一个python文件,真正做到了用最简洁的代码实现复杂功能。测试通过环境:windowsx64anaconda3+python3.8ultralytics==8.3.81flask==1.1.2torch==2.3.0运行步骤:安装好环境执行pythonlogin.py后端实现代码:from
- 基于 Docker 搭建 FRP 内网穿透开源项目
xdpcxq1029
技术分享docker开源容器
有些配置项不知道该不该用,不知道该在哪用,不知道怎么用,所以我自己写个文章简单记录一下做个笔记本文介绍的是基于Docker运行frps和frpc,并通过TCP协议简单穿透SSH和HTTP,在观看本文之前请确保你的机器已经安装Docker服务端搭建frps#连接拥有公网IP的服务器,在合适的位置创建frps目录作为工作空间#创建frps目录作为工作空间$mkdirfrps#创建服务端配置文件$tou
- AI编程篇-python基础篇
cv工程师(ctrl+c\v)
AI编程python
转型AI算法后的总结-python基础篇python基础AI算法工程师的日常开发工作离不开python这门语言。python的优点:开源免费、简单易学、丰富的库。以下是我总结的python的一些基础:1.python及IDE工具安装对于初学者来说,python的安装是必不可少的,但是为了方便代码编辑和查看结果及debug,可以安装pycharm社区版暂时用来前期学习:python安装及注意事项:下
- Elasticstack-日志分析平台
尼古拉斯-邓
linuxkafkacentos
#ElasticStack-日志分析平台##1.Filebeat```shellvim/etc/hostsip1dijiaip2meimeiip3biaobei```###Filebeat安装```shellcurl-L-Ohttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.2-linux-x86_64.tar.g
- xodooIP地址定位
odoo实施
XODOOPROXodooodoopython
//src/packages/python/geoip2.rs实现特点:跨平台支持:通过Rust原生实现,兼容Windows、Linux、macOS等主流操作系统类型安全:使用Rust的Option类型处理可能缺失的字段严格校验IP地址格式自动处理编码转换性能优化:数据库文件只加载一次内存映射方式读取数据零拷贝解析技术错误处理:明确的错误类型(IOError/ValueError)友好的错误提示信
- 如何用Python绘制柱状图堆叠图?
上官美丽
技术分享python开发语言
在数据分析和可视化的过程中,柱状图是一种非常常用的图表类型。它能清晰地展示不同类别之间的比较。而堆叠柱状图则是在此基础上,能够展示各个部分在整体中的占比!今天,我们来聊聊如何使用Python绘制堆叠柱状图,帮助你更好地理解数据。我们将使用一个非常流行的库:Matplotlib。准备工作首先,你需要确保安装了Matplotlib库。如果还没有安装,可以通过以下命令来安装:pipinstallmatp
- 如何快速创建Fastapi项目
黄小耶@
fastapipythonlinux
一、环境安装安装第三方库来搭建项目依赖pipinstallfastapi#fastapi框架pipinstalltortoise-orm[accel]#数据库的ormpipinstalluvicorn#web服务器pipinstallpyjwt#权限认证pipinstallaerich#数据库迁移pipinstallaiomysql#Mysql数据库驱动二、项目结构构建大型的项目结构,文件结构如下
- C/C++框架和库推荐
大王算法
C++入门及项目实战宝典C/C++开发实战365C++
值得学习的C语言开源项目-1.WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写,代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/web
- 将本地文件上传到远程Linux服务器SCP的用法
服务器文件传输工具指南:SCP与rsync一、SCP的介绍SCP命令(SecureCopy)是一个用于在服务器和本地计算机之间传输文件的命令行工具。1.核心特性基于SSH协议的安全传输支持文件/目录传输保留基础文件属性2.基础语法scp[选项]源路径目标路径3.常用操作3.1通过scp实现文件上传3.1.1单文件上传#上传文件scp./local_diruser@host:/remote_dest
- Omnissa Horizon 8 2412 (8.14) - 虚拟桌面基础架构 (VDI) 和应用软件
虚拟化
OmnissaHorizon82412(8.14)-虚拟桌面基础架构(VDI)和应用软件之前称为VMwareHorizon,通过高效、安全的虚拟桌面交付增强您的工作空间请访问原文链接:https://sysin.org/blog/omnissa-horizon-8/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgHorizon8formerlyVMwareHorizon通过从本地
- Java编程基础第二日
13.544
java开发语言编程小白
#变量的类型转换#1.自动类型转换所需满足的两个条件:1.两种数据的类型彼此兼容2.目标类型的取值范围要大于源类型的取值范围发生自动类型转换的情况主要有:整型之间,整型转化为float,其他类型转化为double类型。2.强制类型转换(需要声明)当数据类型并不满足自动类型转换的条件,但我们仍有进行转换的需求e.g:这时候就需要我们进行强制类型转换,即将byteb=num改为byteb=(byte)
- ## VMware 虚拟机保姆级教程:从零开始玩转虚拟化
一只联想小新15呀~
运维开发
虚拟化技术已经成为现代计算不可或缺的一部分,而VMware作为虚拟化领域的领导者,其产品VMwareWorkstationPlayer和VMwareWorkstationPro更是深受广大用户喜爱。无论你是想体验不同操作系统,还是搭建测试环境,VMware都能满足你的需求。本教程将带你从零开始,一步步学习如何使用VMware虚拟机。**一、准备工作**1.**下载VMwareWorkstation
- Linux--gnome
MzKyle
Linuxlinuxchrome运维
一、Gnome核心命令概述Gnome是一款流行的Linux桌面环境,拥有一系列强大的命令来实现系统设置、终端操作、显示管理等多种功能。以下是对Gnome相关命令的分类概述:命令分类常用命令示例核心功能系统设置gsettings、gnome-control-center全局配置管理终端操作gnome-terminal启动终端显示管理gdm、gdmflexiserver图形显示管理器脚本执行gjs、g
- java字符串案例 //要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:查表法)
漫漫不慢.
java算法开发语言
packagetest13;importtest11.S;importjava.util.Scanner;publicclassNum{publicstaticvoidmain(String[]args){//IIIIIIIVVVIVIIVIIIIX//要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:查表法)//1输入数字//2有效字符判断//3运用方法转换数字Scannersc
- Java 基础到进阶&企业技巧(二)
Aphelios380
开发语言java学习idea学习方法
在Java学习的旅程中,我们逐步探索了其丰富的知识体系,从基础的数据类型、字符串操作,到流程控制、运算符的运用,每一步都为我们构建强大的编程能力奠定基石。同时,了解这些知识在Java全栈开发中的应用场景,对未来进入企业工作至关重要。目录一、字符串1.底层原理与语法2.字符串位置与拼接3.字符串数组操作二、人机交互1.接收输入-Scanner类2.课堂练习三、字符与编码1.char字符2.面试题:字
- 踩坑:VirtualBox:安装提示缺少python core和win32 api
过去的了
linuxpython
一、安装OracleVirtualBox时出现以下现象内容提示:安装OracleVMVirtualBox7.0.24的Python绑定需要先安装PythonCore包和win32api绑定。如果现在继续安装OracleVMVirtualBox7.0.24的Python绑定,那么这些依赖项需要在之后手动设置。用户可以参考OracleVMVirtualBox7.0.24SDK手册获取更多信息。如果忽视
- Java Spring Framework:高级进阶与刨根问底
墨瑾轩
一起学学Java【一】javaspring开发语言
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣引言:在Java的世界里,SpringFramework就像是一位超级英雄,默默地守护着无数开发者的心。今天,我们将踏上一场探索之旅,一起揭开SpringFramework的神秘面纱吧!刨根问底:什么是SpringFramework?你知道吗?SpringFr
- YOLO11 环境安装
你喜欢喝可乐吗?
condadeeplearning人工智能conda
1.安装Anaconda/Miniconda在Ubuntu中安装MinicondaAnaconda/Minicondapip配置清华镜像源Anaconda/Miniconda基本操作命令2.创建python虚拟环境#创建condacreate-nyolo11_envpython=3.12#激活condaactivateyolo11_env3.安装pytorch#Pytorchhttps://pyt
- 【项目实战】前后端分离实现通用上传接口到不同存储桶
本本本添哥
001-基础开发能力javaservlet前端
一、定义通用上传接口通过上传接口(UploadFileController.java)上传文件/***上传文件*@parammulFile*@paramdir文件存放目录*@paramfileType文件类型image:图片*@return*/@ApiOperation(value="上传文件")@PostMapping("/upload")public
- Spring cloud公共模块
weixin_30402085
java开发工具数据库
1.0公共的模块是公共的工具包以及实体等2.添加架包4.0.0com.java.springcloudmicroservice0.0.1-SNAPSHOTmicroservice-commonorg.springframework.bootspring-boot-starter-data-jpa3.编写实体packagecom.java.entity;importjava.io.Serializa
- Java多线程与并发编程实战——从基础到进阶
AI天才研究院
Python实战Java实战自然语言处理人工智能语言模型编程实践开发语言架构设计
作者:禅与计算机程序设计艺术1.简介互联网企业都在大力拓展自己的业务,而新的技术革命也带来了海量的数据量,因此,单机并发处理能力已经无法满足现代信息时代对高速数据的需求。大数据和云计算带来的分布式系统架构,让单台计算机不仅能够执行单个任务,而且可以横向扩展处理大量任务。在这种情况下,如何充分利用多核CPU、共享内存等资源并发地处理多项任务就成为现代系统设计者们必备技能之一。本书将以实操为导向,全面
- ARM嵌入式实时系统(RTOS) 中通过页表关闭DCACHE的方法
papaofdoudou
嵌入式系统内存管理armlinux
现在的嵌入式实时系统规模越来越大,很多在linux中使用的特性,例如虚拟内存管理,动态加载等功能也加入进来,进一步增加了RTOS开发的难度.在应用开发中,和cache相关的同步问题有两个,一个是flush操作,另一个是invalidate操作,有时候为了确认问题是否和cache同步有关,需要关闭dcache来验证.这里介绍一种经过验证过的通过页表项关闭DCACHE的实践。Cortex-A7中启用c
- 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