- 9、《参数校验的艺术:@Validated与Hibernate Validator深度实践》
wolf犭良
SpringBoothibernatejava后端
参数校验的艺术:@Validated与HibernateValidator深度实践一、参数校验的必要性在分布式系统架构中,参数校验是保障系统健壮性的第一道防线。根据生产环境事故统计,约35%的系统异常源于非法参数输入。传统的if-else校验方式存在以下痛点:校验逻辑与业务代码高度耦合重复校验逻辑难以复用错误提示格式不统一代码可读性差维护困难二、校验框架技术选型2.1JSR标准演进JSR版本特性发
- Spring事务注解配置
anyeoo
一天一点点Spring事务注解配置
一,spring基于注解式的事务配置方法:@Transactional1.xml配置2.常用事物注解:2.1readOnly主要用于查询中:@Transactional(readOnly=true)用于客户代码只读但不修改数据的情形,只读事务用于特定情景下的优化,比如使用Hibernate的时候。默认为读写事务2.2rollbackFor对于增删改查时的回滚,默认情况下checked except
- Spring 核心技术解析【纯干货版】- X:Spring 数据访问模块 Spring-Orm 模块精讲
栗筝i
栗筝i的Java技术栈#Java框架-专栏spring数据库oracle
在现代Java企业级开发中,对象关系映射(ORM)已成为处理数据库操作的主流方式。SpringORM模块作为Spring框架的重要组成部分,为开发者提供了便捷、高效的ORM框架集成方案。它不仅支持Hibernate、JPA等主流ORM框架,还提供了统一的事务管理、异常转换和数据源管理,使数据库操作更加简单和规范。本篇文章深入解析了SpringORM的核心概念、依赖关系、作用及应用场景,并通过详细的
- 深入浅出 Javax.Validation:校验注解全解析与实战指南
Dolphin_Home
生产环境_场景抽象SpringBoot代码规范开发语言javaspringboot
深入浅出Javax.Validation:校验注解全解析与实战指南javax.validation是Java提供的一套验证框架,基于BeanValidation规范(如JSR303和JSR380)。它主要用于对JavaBean的属性值进行校验,广泛应用于Spring、Hibernate等框架中。以下是使用javax.validation的指南及示例:1.引入依赖如果使用Maven项目,可以添加以下
- Java 注解使用教程
java
简介Java1.5引入了注解,现在它在JavaEE框架(如Hibernate、Jersey和Spring)中被大量使用。Java注释是该语言的一个强大特性,用于向Java代码中添加元数据。它们不直接影响程序逻辑,但可以由工具、库或框架处理,以执行特定的任务(例如代码生成、验证或自定义处理)。元注解目前有五种类型的元注解@Documented:指示使用此注解的元素应该由javadoc和类似的工具记录
- SQL Error: 17006, SQLState: 99999 列名无效
兴趣互联
hibernatehibernate
SQLError:17006,SQLState:99999列名无效今天使用hibernate进行查询的时候报了一个错误,这里简单记录下。问题描述:使用hibernate查询实体报错。原因分析:Stringsql="selectemplId,namefromemployee";try{Sessionsession=sessionFactory.getCurrentSession();SQLQuery
- java开发工程师面试自我介绍_java程序员面试自我介绍范文
阿里聚安全
java开发工程师面试自我介绍
程序员面试时一段短短的自我介绍,其实是为了揭开更深入的面谈而设计的。下面学习啦小编为你带来java程序员面试自我介绍范文的内容,希望你们喜欢。关于java程序员面试自我介绍范文篇一本人叫小冰,今年22岁,现在是吉林大学软件开发与信息管理专业方向的三年级学生,对软件开发怀有浓烈的兴趣,且对JAVA语言尤其熟悉,能熟练使用jsp、struts、struts2、sring2和hibernate3等流行的
- Django_ORM框架
Joyce Lee
Djangodjangomysql
1.ORM框架介绍对象关系映射(ObjectRelationalMapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在互不匹配的现象的技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。ORM框架:为了解决面向对象与关系数据库的互不匹配的现象的框架。当前ORM框架主要有五种:Hibernate全自动
- python有类似mybatis的框架_【MyBatis】 MyBatis入门
weixin_39917811
1、MyBatis简介MyBatis是这个框架现在的名字,而此框架最早的名字是IBatis,其名字的含义是“internet”、“abatis”两个单词的组合,是在2002年的时候开始的一个开源项目,在2010年6月16日Apache将项目交与Google进行管理,更名MyBatis。所以2010年之后,MyBatis框架逐渐成为主流,比Hibernate发展更快。IBatis和MyBatis两者
- Mybatis
一十一code
javaEEmybatis
什么是MyBatis?MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。mybatis和hibernate的比较mybati
- MongoMongo简介
lfsf802
J2EE框架/工具mongodb
简介MongMongo是一个用Java写的ODM框架,使得对MongoDB的操作更加便捷。MongoMongo努力为Java开发者提供类似于ActiveORM或者Hibernate的操作API,并且保留了MongoDB的schemaless,document-based设计,动态查询,原子修改操作等特性。当然你可以很方便的绕开MongoMongo而使用JavaDriver原生提供的功能。示例代码p
- J2EE源程序开发:Hibernate、Struts和Spring的整合实践
46497976464
本文还有配套的精品资源,点击获取简介:本项目通过整合Hibernate、Struts和Spring框架,构建了一个功能完善的在线投票系统,展示了J2EE应用程序开发中三层架构的设计模式。该系统利用了这三个框架的优势,提高了开发效率、代码复用性,并便于测试和维护。学习该项目的配置与实践,对J2EE开发者提升技术能力具有重要意义。1.J2EE三层架构设计模式在现代企业级应用开发中,J2EE架构模式扮演
- 源码层面深入分析MyBatis框架,揭示MyBatis的核心机制及其设计思路
AI天才研究院
Python实战自然语言处理人工智能语言模型编程实践开发语言架构设计
作者:禅与计算机程序设计艺术1.简介MyBatis是apache的一个开源项目,2006年就已经进入了它的官方维基,截止2020年9月1日,它已经成为最流行的ORM框架之一,是一个优秀的持久化框架。相比Hibernate、TopLink、MyBatis等框架,MyBatis更加简单易用,学习成本低,操作数据库也很方便。MyBatis可以实现定制化SQL、存储过程以及高级映射,灵活方便。它支持多种关
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程
搬砖养女人
springjavamaven
一:概述SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛。Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP。SpringMVC是Spring实现的一个Web层,相当于Struts的框架,但是比Struts更加灵活和强大!Mybatis是一个持久层的框架,在使用上相比Hibernate更加灵活,可以控制sql的编写,
- SpringDataJPA 开启批量插入及批量插入不生效解决
AK_GCC
springhibernatejava
开启配置#统计生成SQL执行情况spring.jpa.properties.hibernate.generate_statistics=true#开启批量插入spring.jpa.properties.hibernate.jdbc.batch_size=500spring.jpa.properties.hibernate.order_inserts=true代码示例org.springframew
- hibernate二级缓存
Hibernate二级缓存深度解析与技术实践核心原理与工作流程Hibernate二级缓存通过SessionFactory层建立全局数据缓冲区,采用分层存储机制实现数据库访问优化。其工作流程分为4个阶段:1️⃣查询请求到达时优先检查缓存区域2️⃣命中缓存则直接返回持久化对象3️⃣未命中时执行数据库查询并更新缓存4️⃣数据变更时同步更新缓存状态️主流缓存方案对比(中国开发者常用)特性Ehcache3.
- 架构整合要点。
jc_dreaming2
OPENSpringStrutsJavaHibernateXML
整合spring2+struts1.2+hibernate3.2程序要使用spring2,需要spring插件jar包和spring的类库外。1.web.xml配置spring的监听。org.springframework.web.context.ContextLoaderListener通过contextConfigLocation上下文参数指定spring配置文件javax.servlet.j
- spring介绍
莫得等待
springspringjava后端
什么是SpringFrameworkSpring是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还为J2EE应用程序开发提供了一个有凝聚力的框架。它可以集成其他框架,如Structs、Hibernate、EJB等,所以又称为框架的框架列举SpringFramework的优点。由于SpringFrameworks的分层架构,用户可以
- spring配合hibernate报错:sessionFactory or hibernate
Spring整合Hibernate报错"sessionFactoryorhibernateTemplateisrequired"全解指南通过分析国内技术社区(CSDN、开源中国、阿里云开发者社区)的典型案例,结合企业级项目实战经验,我们归纳出以下系统性解决方案。本文包含5大核心排查方向及对应的修复流程图。错误原理深度解析SessionFactory是Hibernate的核心接口,负责创建Sessi
- MyBatis 从入门到进阶:Java开发者必备宝典
Kale又菜又爱玩
mybatisjava开发语言
MyBatis从入门到进阶:Java开发者必备宝典前言嗨,Java开发者们!有没有被复杂的数据库操作搞得焦头烂额?今天我们来聊聊MyBatis,一个能帮你摆脱繁琐SQL手写痛苦的神器!MyBatis,简称"小麦",是Java世界里处理数据库的老大哥。它不像Hibernate那样“全自动”,但它的“半自动”风格让人倍感舒适,既能享受SQL的自由,又能避免繁琐的JDBC操作。那么,话不多说,让我们开启
- 介绍一下 Hibernate 的二级缓存
晚夜微雨问海棠呀
hibernatespringspringboot
Hibernate的二级缓存Hibernate的二级缓存是位于SessionFactory级别的缓存,与一级缓存(Session级别)不同,二级缓存可以跨多个Session共享数据。二级缓存的主要目的是减少对数据库的访问次数,从而提高应用的性能。二级缓存的工作原理缓存策略:Hibernate提供了多种缓存策略,如read-only、read-write、nonstrict-read-write和t
- 简述 Hibernate 和 JDBC 的优缺点?如何书写一个 one to many 配置文件
晚夜微雨问海棠呀
hibernatejava后端
Hibernate和JDBC的优缺点Hibernate优点:对象关系映射(ORM):Hibernate提供了强大的ORM功能,可以将Java对象与数据库表进行映射,简化了数据访问操作。事务管理:Hibernate提供了事务管理功能,可以方便地进行事务控制。懒加载:支持懒加载机制,可以按需加载数据,提高性能。缓存机制:提供了二级缓存机制,可以显著提高应用的性能。查询语言:支持HQL(Hibernat
- JAVAEE框架技术之14SSM综合案例 产品管理CRUD
teayear
毕业设计项目java-eejavaspring
SSM综合案例一、课程目标1.【掌握】SSM整合2.【√】学习Lombok使用3.【理解】Layui页面书写(备注:其他前端技术也可以)4.【理解】理解SSM综合案例表的结构5.【掌握】产品管理二、SSM整合Spring+SpringMVC+Mybatis–>SSMSpring+Struts2+Hibernate-->SSH2.1简单整合在学习springmvc时我们发现,springmvc也会像
- Hibernate不是过时了么?SpringDataJpa又是什么?和Mybatis有什么区别?
芝士汉堡 ིྀིྀ
mybatishibernatespring
一、前言ps:大三下学期,拿到了一份实习。进入公司后发现用到的技术栈有SpringDataJpa\Hibernate,但对于持久层框架我只接触了Mybatis\Mybatis-Plus,所以就来学习一下SpringDataJpa。1.回顾MyBatis来自官方文档的介绍:MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动
- Hibernate和Spring Data JPA
打伞的木头人
什么是JavaPersistenceAPI?JavaPersistenceAPI提供了一个规范,用于将数据通过Java对象持久化、读取和管理到数据库中的关系表。JPA是JavaPersistenceAPI的简称,中文名Java持久层API,是JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。Sun引入新的JPAORM规范出于两个原因:其一,简化现有JavaE
- Hibernate、JPA、Spring DATA JPA、Hibernate 代理和架构
小蜗牛慢慢爬行
hibernate架构java
大家好,今天,我们将讨论Hibernate和JPA架构。在开始我们的文章之前,我想回答一个重要的问题:为什么我们需要使用Hibernate、EclipseLink、EFcore等ORM工具?事实上,这是一个非常好的问题。我们开发人员通常有几个月的时间来创建一个新项目,或者有两周的时间来为我们的业务逻辑添加新功能。当我们考虑这个时间表时,为我们的业务逻辑编写SQL代码需要花费时间;因此,ORM工具的
- mikro-orm 和typeorm 对比
大耳朵乔乔
NodeJs#SQL#NestJsnode.js数据库
以下是Mikro-ORM和TypeORM的详细对比:设计理念与架构Mikro-ORM:基于数据映射器、工作单元和身份映射模式。这种设计使得它在管理内存中实体状态方面表现优异,能够自动处理事务,当调用em.flush()时,所有计算出的更改都会被包装在一个数据库事务中。TypeORM:支持活跃记录和数据映射器模式,深受Hibernate、Doctrine和Entity框架等传统ORM的影响。它提供了
- Spring config location file not found exception
qq361301276
MavenMaven
1downvotefavorite1Inmywebappi'mtryingtousespringsecurity.Ihavethefollowingprojectstructure:Inmyweb.xmlisettheconfigLocationslikethis:AndinmyHibernateUtil,icreatetheClassPathXmlApplicationContextliketh
- Hibernate快速入门:基于H2内存数据库的ORM实践
t0_54coder
数据库hibernateoracle个人开发
在当今的软件开发中,ORM(对象关系映射)框架已经成为简化数据库操作的重要工具之一。Hibernate作为Java领域中非常流行的ORM框架,能够帮助开发者将Java类映射到数据库表中,从而减少大量的数据库操作代码。本文将通过一个简单的示例,介绍如何使用Hibernate结合H2内存数据库,快速实现一个简单的ORM应用。一、项目依赖配置在开始之前,我们需要配置项目的依赖。这里我们使用Maven作为
- JAVA动态代理
日落前的我
java代理模式开发语言
简介:Java动态代理是一种在运行时创建代理类的机制,动态代理可以在不修改源代码的情况下,在运行时为某个接口动态生成实现类,并且可以拦截接口中的方法调用,从而实现一些特殊的功能。动态代理在Java中有着广泛的应用,比如SpringAOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。分类:java
- 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