- 转载和积累系列 - L4负载均衡的设计与实现
老码农zhuli
转载和积累系列
目录简介一、LVS的局限性1.数据包转发性能问题2.HA-主备结构的浪费3.转发模式的优缺点二、googlemaglev负载均衡MaglevConsistentHashGoogle下一步是什么?三、facebookkatran第一代L4LB四、设计高性能负载均衡附录:简介负载均衡分为L4负载均衡(例如LVS)、L7负载均衡(例如nginx),L4负载均衡工作在传输层其主要功能就是转发,本文讲述的负
- 转载和积累系列 - 技巧:java删除jdk后无法重装情况解决
老码农zhuli
转载和积累系列
环境:win操作:不小心暴力删除jdk文件夹情况:无法重新安装解决:下载windowinstallercleanup,打开软件,然后把里面关于java的项全删掉
- 转载和积累系列 - M3U8文件
阿里十年老码农zhuli
转载和积累系列
1.Playlistfile一个M3U的Playlist就是一个由多个独立行组成的文本文件,每行由回车/换行区分。每一行可以是一个URI空白行或是以”#“号开头的字符串,并且空格只能存在于一行中不同元素间的分隔。一个URI表示一个媒体段或是”variantPlaylistfile“(最多支持一层嵌套,即一个mm3u8文件中嵌套另一个m3u8),以”#EXT“开头的表示一个”tag“,否则表示注释,
- 转载和积累系列 - eclispce 常用快捷键
阿里十年老码农zhuli
转载和积累系列
【Ctrl+T】搜索当前接口的实现类1.【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2.【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。3.【Ctrl+/】快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的
- 转载和积累系列 - 为什么 HashMap 加载因子是0.75?而不是0.8,0.6?
阿里十年老码农zhuli
转载和积累系列
目录为什么HashMap需要加载因子?解决冲突有什么方法?1.开放定址法2.再哈希法3.建立一个公共溢出区4.链地址法(拉链法)为什么HashMap加载因子一定是0.75?而不是0.8,0.6?那么为什么不可以是0.8或者0.6呢?有很多东西之前在学的时候没怎么注意,笔者也是在重温HashMap的时候发现有很多可以去细究的问题,最终是会回归于数学的,如HashMap的加载因子为什么是0.75?本文
- 转载和积累系列 - HTTPS原理和HTTP缓存机制
阿里十年老码农zhuli
转载和积累系列
目录HTTPS原理HTTPSHTTPS的实现原理为什么数据传输是用对称加密?为什么需要CA认证机构颁发证书?HTTP缓存机制和原理HTTP报文缓存规则解析强制缓存ExpiresCache-Control对比缓存Last-Modified/If-Modified-SinceEtag/If-None-Match(优先级高于Last-Modified/If-Modified-Since)原理总结之前转载
- 转载和积累系列 - 深入理解HTTP协议、HTTP协议原理分析(转)
阿里十年老码农zhuli
转载和积累系列
http协议学习系列1.基础概念篇1.1介绍HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。它的发展是万维网协会(WorldWideWebConsortium)和Internet工作小组IETF(InternetEngineeringTaskForce)合作的结果,(他们)最终发布了一系列的RFC,RFC1945定义了HTTP/1.0版本。其中最著名的就是RF
- 转载和积累系列 - 分析服务器日志常用命令
阿里十年老码农zhuli
转载和积累系列
1、查看有多少个IP访问:awk'{print$1}'log_file|sort|uniq|wc-l2、查看某一个页面被访问的次数:grep"/index.php"log_file|wc-l3、查看每一个IP访问了多少个页面:awk'{++S[$1]}END{for(ainS)printa,S[a]}'log_file>log.txtsort-n-t''-k2log.txt配合sort进一步排序4
- 转载和积累系列 - TCP粘包和拆包问题
阿里十年老码农zhuli
转载和积累系列
问题产生一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和封包问题。下面可以看一张图,是客户端向服务端发送包:1.第一种情况,Data1和Data2都分开发送到了Server端,没有产生粘包和拆包的情况。2.第二种情况,Data1和Data2数据粘在了一起,打成了一个大的包发送到Server端,这个情况就是粘包。3.第三种情况,D
- 转载和积累系列 - Linux 大规模请求服务器连接数相关设置
阿里十年老码农zhuli
转载和积累系列
【原创】Linux大规模请求服务器连接数相关设置作者:heiyeluren一般一个大规模Linux服务器请求数可能是几十万上百万的情况,需要足够的连接数来使用,所以务必进行相应的设置。默认的Linux服务器文件描述符等打开最大是1024,用ulimit-a查看:[viewuser@~]$ulimit-acorefilesize(blocks,-c)0#coredump文件大小datasegsize
- 转载和积累系列 - luci框架-LUA的一个web框架使用
weixin_30374009
http://blog.csdn.net/initphp/article/details/17527639LUCI这个在百度上搜索除了一篇我的百度文库luci的介绍文章之外,前三页都是些不知所云的名词(足见百度在专业领域的搜索之烂),我却在大学毕业的大半年的大部分时间里与它纠结,由于开始的发懵到后来逐渐感觉到这家伙还很好玩的,现在就把我对luci的浅显认识介绍给大家。官网:http://luci.
- 转载和积累系列 - LuCI简介
阿里十年老码农zhuli
转载和积累系列
LuCI作为“FFLuCI”诞生于2008年3月份,目的是为OpenWrt固件从Whiterussian到Kamikaze实现快速配置接口。Lua是一个小巧的脚本语言,很容易嵌入其它语言。轻量级LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。UCI是OpenWrt中为实现所有系统配置的一个统一接口,英文名UnifiedConfigur
- 转载和积累系列 - 秒杀系统设计思路
阿里十年老码农zhuli
转载和积累系列
目录前言一:秒杀应该考虑哪些问题1.1:超卖问题1.2:高并发1.3:接口防刷1.4:秒杀url1.5:数据库设计1.6:大量请求问题二:秒杀系统的设计和技术方案2.1:秒杀系统数据库设计2.2:秒杀url的设计2.3:秒杀页面静态化2.4:单体redis升级为集群redis2.5:使用nginx2.6:精简sql2.7:redis预减库存2.8:接口限流2.9:令牌桶算法限流2.10:异步下单2
- 转载和积累系列 - 分库分表的细节讲解
阿里十年老码农zhuli
转载和积累系列
目录数据库瓶颈分库分表水平分库水平分表垂直分库垂直分表分库分表工具分库分表带来的问题事务一致性问题跨节点关联查询Join问题跨节点分页、排序、函数问题全局主键避重问题数据迁移、扩容问题什么时候考虑分库分表能不分就不分数据量过大,正常运维影响业务访问随着业务发展,需要对某些字段垂直拆分数据量快速增长数据库瓶颈不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承
- 转载和积累系列 - 缓存穿透、缓存并发、热点缓存之最佳招式
阿里十年老码农zhuli
转载和积累系列
目录一、缓存常见问题缓存穿透缓存并发缓存失效问题汇总二、缓存穿透与并发方案三、热点缓存解决方案一、缓存常见问题我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:缓存穿透缓存并发缓存失效缓存穿透注:上面三个图会有什么问题呢?我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果
- 转载和积累系列 - OpenWrt常用命令
阿里十年老码农zhuli
转载和积累系列
ucisetnetwork.lan.ipaddr=[lanip]使用pppoe设置Shell代码ucisetnetwork.wan.proto=pppoe//设置wan口类型为pppoeucisetnetwork.wan.username=[上网帐户]ucisetnetwork.wan.password=[上网密码]//这两行设置pppoe用户名和密码如果要挂在上级路由下面,就需要进行下面的设置S
- 转载和积累系列 - 如何设计一个安全的对外接口
阿里十年老码农zhuli
转载和积累系列
目录前言安全措施如何实现1.数据加密2.数据加签3.时间戳机制4.AppId机制5.限流机制6.黑名单机制7.数据合法性校验前言最近有个项目需要对外提供一个接口,提供公网域名进行访问,而且接口和交易订单有关,所以安全性很重要;这里整理了一下常用的一些安全措施以及具体如何去实现。安全措施个人觉得安全措施大体来看主要在两个方面:一方面就是如何保证数据在传输过程中的安全性;另一个方面是数据已经到达服务器
- 转载和积累系列 - 八大排序算法
initphp
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;1.插入排序—直
- 转载和积累系列 - 内存对齐
initphp
1.内存对齐(DataStructureAlignment)是什么内存对齐,或者说字节对齐,是一个数据类型所能存放的内存地址的属性(Alignmentisapropertyofamemoryaddress)。这个属性是一个无符号整数,并且这个整数必须是2的N次方(1、2、4、8、……、1024、……)。当我们说,一个数据类型的内存对齐为8时,意思就是指这个数据类型所定义出来的所有变量,其内存地址都
- 转载和积累系列 - 基于JavaScript的DDoS攻击
initphp
基于JavaScript的DDoS攻击DDoS,即DistributedDenialofService,中文译为分布式拒绝服务攻击,是一种常见的网络攻击方式。它的基本思想就是像一台服务器发送大量的请求,服务器大量的服务资源被占用,导致正常用户的请求无法得到回应。近几年来,基于JavaScript的DDoS攻击事件常用发生。和其他DDoS攻击方式不同,基于JavaScript的DDoS攻击利用的工具
- 转载和积累系列 - TCP协议详解
initphp
原文地址:http://www.cnblogs.com/kzloser/articles/2582957.htmlTCP(TransmissionControlProtocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1]另一个重要的传输协议。
- 转载和积累系列 - Linux 大规模请求服务器连接数相关设置
initphp
【原创】Linux大规模请求服务器连接数相关设置作者:heiyeluren一般一个大规模Linux服务器请求数可能是几十万上百万的情况,需要足够的连接数来使用,所以务必进行相应的设置。默认的Linux服务器文件描述符等打开最大是1024,用ulimit-a查看:[viewuser@~]$ ulimit -acore file size (blocks, -c) 0 #coredu
- 转载和积累系列 - Redis内核之数据结构实现
initphp
redis基础数据结构简单动态字符串(SDS)Redis 没有直接使用 C 语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。定义:SDS与C字符串的区别1、 常数复杂度获取字符串长度(C 字符串不记录自身的长度信息,要获取其长度需遍历整个字符串,复杂度O(N);SDS的l
- 转载和积累系列 - linux 内核参数调整优化网络
initphp
Linux系统内核设置优化tcp网络,#vi/etc/sysctl.conf,添加以下内容net.ipv4.tcp_syncookies=1表示开启SYNCookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;net.ipv4.tcp_tw_reuse=1表示开启重用。允许将TIME-WAITsockets重新用于新的TCP连接,默认为0,表
- 转载和积累系列 - Linux tcpdump命令详解
initphp
简介用简单的话来定义tcpdump,就是:dumpthetrafficonanetwork,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tcpdump普通情况下,直接启动tcpdump将监视
- 转载和积累系列 - HTTP application/x-www-form-urlencode和multipart/form-data
initphp
application/x-www-form-urlencode我们在提交表单的时候,form表单参数中会有一个enctype的参数。enctype指定了HTTP请求的Content-Type。默认情况下,HTML的form表单的enctype=application/x-www-form-urlencoded。application/x-www-form-urlencoded是指表单的提交,并且
- 转载和积累系列 - linux 生成KEY的方法与使用
initphp
转载和积累系列
服务器A:192.168.1.1服务器B:192.168.1.2服务器A:配置:ssh-keygen-b2048-trsa#这里的-b2048是密钥加密的长度,最好设大点,有消息称美国有黑客解决ssh的密钥进行破解。#http://bbs.yuloo.com/thread-860154-1-1.html直接回车3次key文件会保存在/root/.ssh目录下这时候.ssh目下会多出几个文件id_r
- 转载和积累系列 - linux 生成KEY的方法与使用
initphp
服务器A:192.168.1.1服务器B:192.168.1.2 服务器A:配置:ssh-keygen-b2048-trsa #这里的-b2048是密钥加密的长度,最好设大点,有消息称美国有黑客解决ssh的密钥进行破解。#http://bbs.yuloo.com/thread-860154-1-1.html直接回车3次key文件会保存在/root/.ssh目录
- 转载和积累系列 - 高性能网络库Libevent初探
initphp
高性能网络库Libevent初探作者:zza(360电商技术组)libevent是一个基于事件触发的轻量级高性能开源网络库,很多著名的软件如Chromium、memcached、Netchat等都是基于libevent开发的。 之所以受到如此多的关注和青睐,主要是libevent具有的一些显著亮点:1) 事件驱动(event-driven),超高的性能;2) 轻量级,专注于网络,短小精干;3) 跨
- 转载和积累系列 - 大数据时代的 9 大Key-Value存储数据库
initphp
在过去的十年中,计算世界已经改变。现在不仅在大公司,甚至一些小公司也积累了TB量级的数据。各种规模的组织开始有了处理大数据的需求,而目前关系型数据库在可缩放方面几乎已经达到极限。 一个解决方案是使用键值(Key-Value)存储数据库,这是一种NoSQL(非关系型数据库)模型,其数据按照键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的
- 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