- Python爬虫:高效获取1688商品详情的实战指南
数据小爬虫@
python爬虫开发语言
在电商行业,数据是商家制定策略、优化运营的核心资源。1688作为国内领先的B2B电商平台,拥有海量的商品信息。通过Python爬虫技术,我们可以高效地获取这些商品详情数据,为商业决策提供有力支持。一、为什么选择Python爬虫?Python以其简洁易读的语法和强大的库支持,成为爬虫开发的首选语言之一。利用Python爬虫,可以快速实现从1688平台获取商品详情的功能,包括商品标题、价格、图片、描述
- python模块triton安装教程
2401_85863780
1024程序员节tritonwhl
Triton是一个用于高性能计算的开源库,特别适用于深度学习和科学计算。通过预编译的whl文件安装Triton可以简化安装过程,尤其是在编译时可能会遇到依赖问题的情况下。以下是详细的安装步骤:安装前准备:Python环境:确保已经安装了Python,并且Python版本与whl文件兼容。pip:确保已经安装了pip,这是Python的包管理器,用来安装外部库。下载whl文件:从可靠的来源下载适用于
- python模块mediapipe安装教程
2401_85863780
python开发语言mediapipe
安装MediaPipe通过.whl文件的方法与安装其他Python库相似。下面是详细的步骤,指导你如何通过.whl文件安装MediaPipe。1.确认Python和pip已经安装首先,确保你的系统上已经安装了Python和pip。你可以通过打开命令行(对于Windows用户,这可以是CMD或PowerShell;对于macOS和Linux用户,这可以是终端)并运行以下命令来检查:python--v
- 蓝桥杯篇---8位 ADC/DAC转换芯片 PCF8591
Ronin-Lotus
蓝桥杯篇嵌入式硬件篇蓝桥杯单片机职场和发展嵌入式硬件cPCF8591ADC/DAC转换
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言特点1.4路模拟输入2.1路模拟输出3.I2C接口4.低功耗PCF8591引脚说明1.VDD2.VSS3.A0-A34.AIN0-AIN35.AOUT6.SCL7.SDAPCF8591寄存器1.控制寄存器2.数据寄存器PCF8591与IAP25F2K61S2的连接1.SCL2.SDAPCF8591示例代码代码说明注意事项1
- 【C/C++】创建链表例题学习
奇变偶不变0727
c语言链表开发语言
题目:函数接口定义:voidinput();该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:structstud_node{intnum;/*学号*/charname[20];/*姓名*/intscore;/*成绩*/structstud_node*next;/*指向下个结点的指针*/};单向链表的头尾指针保存在全局变量head和tail中。输入为若干个学生
- 【prompt示例】智能客服+智能质检业务模版
姚瑞南
prompt实战应用案例prompt前端
本文原创作者:姚瑞南AI-agent大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权)整体结构说明:序号结构说明备注1prompt主体提示词主体主要包含定义角色+背景描述+目标+输出内容2变量变量主要提取知识库文档流程里涉及的⼀些判断项,需要接口的部分3注意事项常规注
- 【whl文件】python各版本whl下载地址汇总
2401_85863780
pythonlinux开发语言
whl文件,全称为wheel文件,是Python分发包的一种标准格式。它是预编译的二进制包,包含了Python模块的压缩形式(如.py文件和编译后的.pyd文件)以及这些模块的元数据,通常通过Zip压缩算法进行压缩。whl文件的出现,使得Python包的安装过程变得更为简单和高效,因为它允许用户快速安装Python包及其依赖项,而无需从源代码开始编译。此外,whl文件还具有良好的跨平台兼容性,可以
- Day48_20250130【回校继续打卡】_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II
Yoyo25年秋招冲冲冲
代码随想录刷题记录算法数据结构javaleetcode动态规划
Day48_20250130_单调栈part1_739.每日温度|496.下一个更大元素I|503.下一个更大元素II20250130补完739.每日温度题目给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升置用0来代替。示例1:输入:temperatures=[73,74,
- 第六篇:数字逻辑的“矩阵革命”——域控制器中的组合电路设计
天天爱吃肉8218
学习笔记矩阵线性代数汽车笔记
副标题:用卡诺图破解车身域控制器的逻辑迷宫,揭秘华为DriveONE的“数字特工”▍开篇:黑客帝国世界观映射>"WelcometotheRealWorld."——Morpheus>在数字逻辑的世界里,组合电路就是构建Matrix的底层代码。当新能源汽车的域控制器需要同时处理车门锁、灯光控制、热管理信号时,就像Neo同时躲避多个特工的追击——只有最优化的逻辑设计,才能让系统在纳秒级响应中游刃有余。核
- JAVA学习-类型信息.动态代理
守护者170
java学习java学习开发语言
在Java中,动态代理是一种通过在运行时生成代理对象来拦截对目标对象的访问的技术。Java中的动态代理基于反射机制,利用反射生成代理类来实现对目标对象的代理。一、Java中的动态代理主要有两种方式:基于接口的动态代理和基于类的动态代理。它们的特点如下:1.基于接口的动态代理(JDK动态代理):基于接口的动态代理要求目标对象实现一个或多个接口。JDK动态代理使用'java.lang.reflect.
- 2020-10-09
weixin_45660257
笔记
java学习集合的目标1.会使用集合存储数据2.会遍历集合,把数据取出来3.掌握每种集合的特性集合框架的学习方法方式1.学习顶层:学习顶层接口,抽象类中共性的方法,所有的子类创建对象使用Collection接口定义的是所有的单列集合中共性的方法所有的单列集合都可以使用共性的方法没有带索引的方法继承:子类共性抽取形成父类(接口)List接口1.有序的集合(存储和取出元素顺序相同)2.允许存储重复的元
- Ubuntu下 Python 版本切换
Tobey袁
Ubuntushellubuntulinux
在Ubuntu的开发环境下,由于Python2和Python3很多不兼容,经常会需要我们手动切换Python版本。sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python2100sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python315
- python中set的用法_Python中set的用法
weixin_39876645
python中set的用法
python的集合类型和其他语言类似,是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。1先看下python集合类型的不重复性,这方面做一些去重处理非
- python set用法小结
Super_Meredith
pandasset
1.创建集合set()>>>set('python'){'o','p','h','n','t','y'}>>>set(['python']){'python'}#去重>>>list1=[11,11,12,13,14,14,15]>>>set(list1){11,12,13,14,15}2.添加add(),update()#add():把传入的元素做为一个整体添加到集合中>>>set1=set('p
- Java实现日志全链路追踪.精确到一次请求的全部流程
王会举
javalog4j
广大程序员在排除线上问题时,会经常遇见各种BUG.处理这些BUG的时候日志就格外的重要.只有完善的日志才能快速有效的定位问题.为了提高BUG处理效率.我决定在日志上面优化.实现每次请求有统一的id.通过id能获取当前接口的全链路流程走向.实现效果如下:一次查询即可找到所有关键信息.不再被多线程日志进行困扰了.1:日志打印框架log4j->logbacklogback是springboot默认自带的
- python 集合概念set用法
shuwenting
python基础
Python中set的用法python的集合类型和其他语言类似,是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。1先看下python集合类型的不重复
- python set operation
screaming
PythonSet
Setcanbeconvertedtolistbylist(set)add(elem)¶Addelementelemtotheset.remove(elem)Removeelementelemfromtheset.RaisesKeyErrorifelemisnotcontainedintheset.discard(elem)Removeelementelemfromthesetifitispres
- Python Web开发记录 Day12:Django part6 用户登录
Code_流苏
#---PythonWeb开发---#Django项目探索实验室python前端django
名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡《竹枝词》创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)目录1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置4、登录验证5、注销登录6、图片验证码①Pillow库②图片验证码的实现7、补充:图片验证码的作用和扩展①作用②其他类型的验证码8、验证码校验在上一篇博客中我们实现
- Ubuntu中如何使用pip切换不同的python版本建立虚拟环境
挪威的深林
【Linux】操作命令linux问题python教程pipvirtualenvpython
一.前言最近遇到非常头疼的问题,在ubuntu中运行不同的项目或者downloadgithub的项目时,总是需要不同版本的python,不同版本的pkgs.因此,为不同的项目建立各自的虚拟环境是一个比较方便的事情.对于建立虚拟环境,目前本人所掌握的主要是conda,以及pip,如果使用conda去建立虚拟环境,则需要安装anaconda,或则minianaconda.在安装anaconda后才能够
- SpringCould openFeign 配置动态路由实现本地调试
Resean0223
日常问题解决实际项目问题汇总java开发语言
概述现在很多项目都基于微服务开发,而对于开发来说,最困扰的就是本地服务间的调试。在此之前在网上给出的方案都是直接在feign调用接口写死url,但这会出现团队成员不小心将调试的url提交到仓库中,无形的增加了产线事故的产生。本文将介绍一下我自身基于项目改造的可配置feign路由的方案。Openfeign的初始化在项目启动阶段,OpenFeign框架会发起一个主动的扫包流程,从指定的目录下扫描并加载
- 代码随想录day3
mvufi
python开发语言
203.移除链表元素虚拟头结点:增加删除都很容易python不用new,直接=ListNode(...)#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defremoveElements(self,h
- [LeetCode-Python版]Hot100(2/100)——128. 最长连续序列
古希腊掌管学习的神
LeetCode-Pythonleetcodepython算法
题目给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例2:输入:nums=[0,3,7,2,5,8,4,6,0,1]输出:9题目链接思路因为题目要求O(n)的时间复杂度,所以
- [LeetCode-Python版]Hot100(1/100)——49. 字母异位词分组
古希腊掌管学习的神
LeetCode-Pythonleetcodepython算法
题目给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的所有字母得到的一个新单词。示例1:输入:strs=[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”]输出:[[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]示例2:输入:strs=[“”]输出:[[“”]]示例3:输入:strs=
- 阿里云通用平衡增强型g6e服务器网络收发包能力PPS对照表详解
m0_60889071
阿里云服务器
阿里云服务器通用平衡增强型g6e实例是阿里云新推出的第六代云服务器,最大网络收发包能力达到2400万PPS,g6e实例CPU内存比1:4适用于高网络包收发场景等应用场景,InstanceTypes分享阿里云g6e通用平衡增强型云服务器网络收发包PPS能力汇总:阿里云g6e实例网络收发包什么是网络收发包?网络收发包PPS即packetspersecond每秒发包数量,网络信息最终都是按照包为单位发送
- ubuntu系统切换python版本的方法
lkasi
Ubuntuubuntulinux运维
1.查看所有的python版本终端输入ls/usr/bin/python*结果2.切换版本终端输入sudoupdate-alternatives--configpython结果输入对应的选择编号即可切换python版本
- python版本升级
HiSiri~
pythonpython开发语言
python版本升级背景在对centos机器升级Python版本从3.6到3.10后,pip安装出现了一些问题[解决pipisconfiguredwithlocationsthatrequireTLS/SSL问题]操作下载在官方主站找到合适的版本,并下载https://www.python.org/ftp/python/wgethttps://www.python.org/ftp/python/3
- Python集合之set()使用方法详解
lmseo5hy
python培训python集合
set是一个无序且不重复的元素集合,它有可变集合(set())和不可变集合(frozenset)两种,可以对set()集合进行创建、添加、删除、交集、并集和差集的操作,非常实用,以下是具体用法:一、创建集合setpythonset类是在python的sets模块中,新的python版本可以直接创建集合,不需要导入sets模块。具体用法:1.set('old')2.set(‘o’,’l’,’d’)二
- 紫光展锐面试——软件岗
fpga和matlab
★求职2:大厂笔试面试总结面试java职场和发展紫光展锐面试紫光展锐笔试
目录面试案例1面试案例2笔试一面二面三面四面面试案例3三面面试案例11、自我介绍2、问项目、方向3、static关键字4、volatile关键字5、final关键字6、synchronized关键字7、进程和线程的区别8、进程通信方式的区别(共享内存、消息队列优缺点)9、线程通信方式10、接口和抽象类的区别11、设计模式熟悉吗?说完之后讲下单例模式?12、拿过什么奖吗13、发过论文和专利吗14、能
- Day19 第六章 二叉树part07
TAK_AGI
算法力扣
一.学习文章及资料530.二叉搜索树的最小绝对差501.二叉搜索树中的众数236.二叉树的最近公共祖先二.学习内容1.二叉搜索树的最小绝对差递归法:二叉搜索树中序遍历后,其实就是一个有序数组。在一个有序数组上求两个数最小差值,可以用一个pre节点记录一下cur节点的前一个节点,然后计算差值,每一次有更小的就更新minclassSolution{intmin=Integer.MAX_VALUE;;T
- [LeetCode-Python版]动态规划——0-1背包和完全背包问题总结
古希腊掌管学习的神
LeetCode-Pythonleetcodepython动态规划
0-1背包有n个物品,第i个物品的体积为wiw_iwi,价值为viv_ivi,每个物品至多选一个,求体积和不超过capacity时的最大价值和状态转移:dfs(i,c)=max(dfs(i−1,c),dfs(i−1,c−w[i])+v[i]dfs(i,c)=max(dfs(i-1,c),dfs(i-1,c-w[i])+v[i]dfs(i,c)=max(dfs(i−1,c),dfs(i−1,c−w[
- 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