- 用Python抓取网页标题:使用`requests`库的实用指南
清水白石008
pythonPython题库python开发语言
用Python抓取网页标题:使用requests库的实用指南在数据获取的时代,网页抓取(WebScraping)成为了一项重要的技能。无论是获取新闻标题、产品价格,还是数据分析,网页抓取都能提供丰富的信息。本文将详细介绍如何使用Python的requests库编写一个简单的爬虫,抓取某个网站的标题。我们将通过实例和代码片段,使整个过程清晰易懂,帮助你快速上手网页抓取。一、了解网页抓取网页抓取是指通
- python 使用Nginx和uWSGI来运行Python应用
weixin_33738555
运维python操作系统
参考:http://zmrenwu.com/post/20/uWSGI是一个Web应用服务器,它具有应用服务器,代理,进程管理及应用监控等功能。它支持WSGI协议,同时它也支持自有的uWSGI协议,该协议据说性能非常高,而且内存占用率低,为mod_wsgi的一半左右,我没有实测过。它还支持多应用的管理及应用的性能监控。虽然uWSGI本身就可以直接用来当Web服务器,但一般建议将其作为应用服务器配合
- laravel框架查询数据集转为数组
小浮夸
框架laravel
$website_data=DB::table('fb_website')->where('website_status',1)->get()->map(function($value){return(array)$value;})->toArray();
- 前端应用更新通知机制全解析:构建智能化版本更新策略
斯~内克
前端前端
引言:数字时代的更新挑战在持续交付的现代软件开发模式下,前端应用平均每周产生2-3次版本迭代。但据Google研究报告显示,38%的用户在遇到功能异常时仍在使用过期版本的应用。如何优雅地实现版本更新通知,已成为提升用户体验的关键技术挑战。本文将深入探讨从基础到进阶的更新通知方案,结合最新Web技术提供完整的解决方案。一、核心检测机制剖析1.1版本标识策略语义化版本控制:采用major.minor.
- 吴大仙带你三分钟学会swoole框架
大仙带你飞
phpswoole
前言最近在学习swoole这个东西,就写点心得吧。基于swoole的开源框架很多,优缺点自己百度,凡是有用到websocket和消费队列选择基于swoole的框架是不错的选择。好吧话不多说,吴大仙就介绍一下swoole的一个简单入门吧正文swoole有两个部分。一个是PHP扩展,用C开发的,这是核心。另一个是框架,像yii、TP、Laravel一样,是PHP代码写的。swoole扩展本身提供了we
- laravel基础
m0_65977885
lavarel
#laravel基础###一、MVC设计模式在php的的主流框架中,大多都采用MVC的设计模式,它可以将代码解耦,让视图代码和逻辑代码分开编写,为后期的维护带来了极大的便利。**MVC是模型(model)、视图(view)、控制器(controller)是组合**,它表示将软件系统分成3个核心部分。-模型model,用于数据处理-视图view,用于显示数据-控制器controller,接收用户请求
- PHP前置知识-HTML学习
freesec
html学习前端
HTML学习1、因特网和万维网1.1、Internet因特网:全球资源的总汇,连接网络的网络1.2、TCP/IP协议簇:传输层/网络层协议1.3、万维网:www(worldwideweb)HTTP超文本传输协议作用:接受和发布HTMl页面URL统一资源定位符协议://域名:端口号/文件路径/文件名.文件后缀http://www.QQ.com.cn:80/tq/index.html1.4、W3C组织
- 【设计模式精讲】开源实战之剖析MyBatis框架:MyBatis中的设计模式之Builder模式
mybatis
文章目录第七章开源实战7.2剖析MyBatis框架中用到的经典设计模式7.2.1MyBatis回顾7.2.1.1MyBatis与ORM框架7.2.1.1MyBatis的基础使用7.2.2MyBatis中使用到的设计模式7.2.2.1Builder模式个人主页:道友老李欢迎加入社区:道友老李的学习社区第七章开源实战7.2剖析MyBatis框架中用到的经典设计模式7.2.1MyBatis回顾7.2.1
- CAPL系统事件-01 on preStart
正当少年
CAPLCAPL
在CAPL(CANAccessProgrammingLanguage)中,onpreStart事件是一个特殊的事件处理程序,用于在仿真节点(SimulationNode)启动之前执行特定的初始化操作。这个事件通常用于设置仿真环境的初始状态、初始化变量、配置总线参数等。1.onpreStart事件的基本功能触发时机:在仿真节点启动之前触发。主要用途:初始化变量和信号。配置总线参数(如波特率、通道模式
- Nginx:高性能 Web 服务器的秘密武器
Hello-ZHE
nginx前端服务器
在当今互联网世界,高性能、高并发的Web服务是成功的关键。而Nginx,作为一款轻量级、高性能的Web服务器和反向代理服务器,正扮演着越来越重要的角色。本文将带你深入了解Nginx,掌握其基本概念、常用配置和一些高级用法。什么是Nginx?Nginx(发音为"engine-x")是一个开源的、高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。与其他Web服务器相
- 使用 jQuery 实现一键复制功能
几度泥的菜花
jquery前端javascript
在现代Web应用中,一键复制功能是一个常见的交互设计,能够显著提升用户体验。例如,在订单页面中,用户可以通过点击按钮快速复制订单号,避免了手动选择文本的繁琐操作。本文将详细讲解如何实现一键复制功能,并通过代码优化和用户体验改进,确保功能的稳定性和易用性。1.一键复制功能的核心逻辑一键复制功能的实现主要包括以下步骤:获取要复制的内容:从DOM元素中提取需要复制的文本。创建临时输入框:将文本放入一个临
- 当 Selenium 的 click() /send_keys()等方法失效时:JavaScript 在 UI 自动化测试中的神奇用法
做测试的小薄
测试高阶seleniumjavascriptui自动化测试
引言在使用Selenium进行WebUI自动化测试时,我们通常依赖Selenium提供的原生方法(如click()、send_keys()等)来操作页面元素。然而,在某些复杂场景下,这些方法可能会失效。例如:元素被遮挡或隐藏。页面加载延迟导致元素无法正常交互。某些特殊的动态行为无法通过Selenium原生方法触发。这时,JavaScript就成为了我们的“救星”。通过driver.execute_
- Java创造型模式之原型模式详解
菜就多练少说
设计模式java开发语言
设计模式是面向对象设计中的一种标准方法,用于解决常见的设计问题。原型设计模式(PrototypePattern)是23种经典设计模式之一,属于创建型模式,它允许通过复制现有对象来创建新对象,而不是通过构造函数或工厂方法来创建。这样,开发者可以在运行时通过复制原型对象来快速生成新的对象,极大地提高了程序的灵活性和性能。本文将深入讲解Java中的原型设计模式,解释其概念、使用场景、以及如何在Java中
- 设计模式-适配器模式
小九没绝活
设计模式设计模式适配器模式java
适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端期望的另一个接口,使得原本不兼容的类可以协同工作。它的核心思想是通过中间层(适配器)解决接口不匹配的问题,类似于电源插头转换器。核心思想适配器模式通过以下方式实现接口的兼容:定义目标接口(Target):客户端期望使用的接口。引入适配者类(Adaptee):需要被适配的现有类(接口不兼容)。创建适配器类(Adapter):将适配者的接口
- 设计模式及其分类
小九没绝活
设计模式设计模式
什么是设计模式?设计模式是在软件设计过程中,针对特定问题场景和需求提出的一套被公认的解决方案。设计模式旨在提高代码的可读性、可维护性、可拓展性和重用性。设计模式的主要作用:提供可复用的解决方案设计模式提供了经过验证的解决方案,可以帮助开发人员更快速地解决常见的设计问题。促进代码的组织和理解设计模式规范了代码组织和结构,使代码更易理解和维护。提高代码的质量设计模式强调良好的设计原则,可以帮助开发人员
- 设计模式 - 装饰器模式
菜鸟小码
设计模式设计模式装饰器模式java
首先,欢迎各位来到我的博客!本文深入理解设计模式原理、应用技巧、强调实战操作,提供代码示例和解决方案,适合有一定编程基础并希望提升设计能力的开发者,帮助读者快速掌握并灵活运用设计模式。如有需要请大家订阅我的专栏【设计模式】哟!我会定期更新相关系列的文章文章目录引言一、装饰器模式的基本概念二、装饰器模式的实现1.定义组件接口2.定义具体组件3.定义装饰器4.定义具体装饰器5.客户端代码三、装饰器模式
- 【SpringMVC】_简单示例计算器
_周游
SpringJavaEEjava-eemvcspring
目录1.需求分析2.接口定义3.请求参数4.响应数据5.服务器代码6.前端页面代码7.运行测试为阶段性总结与应用,现将以SpringMVC项目创建一个可以实现加法的计算器为例1.需求分析加法计算器功能,对两个整数进行相加,需要客户端提供参与计算的两个数,服务器返回这两个整数计算的结果。2.接口定义(1)请求路径:cala/sum(2)请求方式:GET/POST(3)接口描述:计算两个整数相加3.请
- Java高级编程深度解析:JVM底层原理、设计模式与Java 8+新特性实战
幼儿园扛把子\
jdkjavajava开发语言
Java语言高级(面向高级开发者)文章目录Java语言高级(面向高级开发者)1.JVM内存管理1.1内存区域1.2垃圾回收(GC)2.并发编程进阶2.1线程池2.2CAS与原子类3.设计模式3.1创建型模式3.2结构型模式4.注解与序列化4.1自定义注解4.2序列化5.Java8+新特性5.1Lambda表达式5.2StreamAPI6.总结1.JVM内存管理1.1内存区域区域作用特点堆(Heap
- spring(三)AOP、spring声明式事务、Webflux的执行流程和核心API
·小脑斧·
springjavaspringaop
AOP切面编程什么是AOP AOP是面向切面编程。全称:AspectOrientedProgramming 面向切面编程指的是:程序是运行期间,动态地将某段代码插入到原来方法代码的某些位置中。这就叫面向切面编程。一个简单计算数功能加日记 准备计算器相关类计算接口publicinterfaceCalculate{publicintadd(intnum1,intnum2);publicintmu
- Java JDK代理、CGLIB、AspectJ代理分析比较
骚年编程去
JAVA之美springjavaaop动态代理ASPECTJ
前言什么是代理,在DesignpatternsInjava这个本书中是这样描述的,简单的说就是为某个对象提供一个代理,以控制对这个对象的访问。在不修改源代码的基础上做方法增强,代理是一种设计模式,又简单的分为两种。静态代理:代理类和委托类在代码运行前关系就确定了,也就是说在代理类的代码一开始就已经存在了。动态代理:动态代理类的字节码在程序运行时的时候生成。静态代理先来看一个静态代理的例子,Calc
- 用SpringMvc做一个简易计算器
little 源
springmvc
用SpringMvc做一个简易计算器一.domain类packagessm1.domain;publicclassJiSuan{privateintnumOne;privateintnumTwo;privateStringyunSuan;privateintresult;publicintgetNumOne(){returnnumOne;}publicvoidsetNumOne(intnumOne
- SpringMVC
皮不卡球秋
javaSpringSpringMVCSpringBootspringboot
SpringMVC一。概念:SpringWebMVC是一个Web框架,简称为SpringMVCMVC定义:MVC就是把一个项目分成三部分MVC是一种思想,Spring进行实现,因此称为SpringMVCSpringBoot是创建SpringMVC项目当前时期MVC已经发生了变化,后端人员不涉及前端页面的开发,所以就没有了view层所以View层有一种解释,之前返回的是视图,现在返回的是视图所需要的
- SpringMVC基本使用
沉下心来学技术
tomcatspringjava
SpringMVC是什么?SpringMVC是Spring框架中的一个模块,用于构建基于MVC(Model-View-Controller)设计模式的Web应用程序。它分离了应用程序的业务逻辑、用户界面和用户输入,使开发更加模块化和易于维护。核心组件Model:负责封装应用数据,通常与业务逻辑交互。View:负责渲染数据,生成用户界面(如JSP、Thymeleaf)。Controller:处理用户
- WebRTC 介绍
KillFuckBugs
webrtc
WebRTC简介WebRTC(WebRealTimeCommunication,网页实时通信)是一个开源项目和技术标准,旨在为浏览器和应用程序提供实时通信功能,无需额外的插件或第三方软件。它最初由Google在2011年发起,现由W3C(万维网联盟)和IETF(互联网工程任务组)共同维护和标准化。WebRTC的核心目标是实现低延迟、高质量的音视频通信以及点对点数据传输,广泛应用于视频会议、实时聊天
- Tomcat新手入门指南:从零开始安装与基本配置
金枪鱼net
tomcat
Tomcat新手入门指南:从零开始安装与基本配置Tomcat是一个广泛使用的Javaservlet容器,用于运行Web应用服务器。它将JavaBean转换为Servlet,并作为JVM的一个虚拟进程运行。以下是一步一步的教程,帮助您快速安装和配置Tomcat。第一步:准备环境安装JavaDevelopmentKit(JDK)打开命令提示符或Terminal。输入以下命令并按回车键:brewinst
- JavaScript 性能优化实战【详细指南】
AI筑梦师
JavaScriptjavascript性能优化开发语言
#JavaScript性能优化实战#JavaScript性能优化实战JavaScript作为现代Web开发的核心技术,其性能优化涉及多个层面,包括计算效率、DOM操作、异步处理、内存管理、网络请求优化等。随着Web发展,越来越多的新技术(如WebAssembly、OffscreenCanvas、StreamsAPI、V8TurboFan优化等)正在提升JavaScript的性能。本指南涵盖从基础优
- 对接马来西亚、印度、韩国、越南等全球金融数据示例
CryptoPP
金融pythonwindows
Python对接StockTV全球金融数据API的封装实现及使用教程:importrequestsimportwebsocketsimportasynciofromtypingimportDict,List,Optional,UnionfromdatetimeimportdatetimeclassStockTVClient:"""StockTV全球金融数据API客户端支持股票、外汇、期货、加密货币
- 安装(python 版)
C-haidragon
mysql
安装安装sudoapt-getinstallmysql-servermysql-client然后按照提示输入管理服务启动servicemysqlstart停止servicemysqlstop重启servicemysqlrestart允许远程连接找到mysql配置文件并修改sudovi/etc/mysql/mysql.conf.d/mysqld.cnf将bind-address=127.0.0.1注
- Python搭建静态web服务器
7 号
Pythonpython
Python内置的web静态服务器Python内置的`http.server`模块可以快速启动一个简单的HTTP服务器。在Python3中,打开命令行或终端,在你想要作为静态服务器根目录的文件夹下,运行以下命令:python-mhttp.server8000这将会在当前目录启动一个HTTP服务器,监听端口8000,端口可以随意指定。你可以在浏览器中访问`http://localhost:8000`
- 扫盲系列--Web3智能合约+Solidity简介
「已注销」
前端框架
前言这几天web3智能合约这个概念,频繁映入我的眼帘。web3.0这个概念我听说过,核心特征是去中心化、开放性、隐私保护和数据所有权回归个人。Web1.0是信息浏览时代,Web2.0是用户参与和社交网络时代,Web3.0是去中心化与智能化时代。在Web3.0这一新的互联网架构下,用户不再仅仅是内容的消费者,更是自己数字身份和数据的拥有者。Web3.0旨在构建一个更加透明、安全且高效的信息网络。我对
- 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