- Spring Boot 配置文件常用配置属性详解(application.properties / application.yml)
前言SpringBoot的一大优势就是通过简单的配置文件即可快速定制应用行为,而无需编写大量XML配置或Java代码。SpringBoot使用application.properties或application.yml作为核心配置文件,支持丰富的配置属性。本文将详细介绍SpringBoot常用的配置属性,包括:服务器配置数据源配置JPA/Hibernate配置日志配置Thymeleaf/模板引擎配
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
Eric_xiaoQ
框架spring
转自:http://www.javaeye.com/topic/493282?page=1简单来说,自己的软件产品是一个基于互联网的SaaS协同软件平台,操作简单,支持流程定义,管理和多种客户端-像短信,MSN,智能手机什么的(我这里就不多做什么广告了),也有一个企业版的版本,使用的技术框架是hibernate+Spring+Wicket,下面是Linux和MySQL,还有云计算的平台的使用,以支
- Java 开发必备:Hibernate 实战技巧大揭秘
AI开发架构师
javahibernate开发语言ai
Java开发必备:Hibernate实战技巧大揭秘关键词:Hibernate、ORM、Session、事务管理、缓存优化、HQL、延迟加载摘要:本文从实战角度出发,结合生活案例与代码示例,深度解析Hibernate核心机制与开发技巧。无论你是Hibernate新手还是需要进阶的开发者,都能通过本文掌握从概念理解到项目落地的全流程技能,重点解决N+1查询、缓存优化、事务管理等高频问题,助你成为Jav
- Java 反射(Reflection)
YiHanXii
java后端开发java开发语言
什么是反射?反射(Reflection)是Java提供的一种机制,允许程序在运行时动态地检查类的信息,以及操作类的属性、方法和构造器。通过反射,程序可以动态地访问和修改对象的行为,而不需要在编译时确定具体的类型或行为。反射是Java的动态性特性之一,常用于框架(如Spring、Hibernate等)和工具类库中,实现高度灵活的功能。反射的核心类反射的核心类和接口都在java.lang.reflec
- hibernate中session增删改操作及事务提交的问题
一、问题回顾Sessionsession=MySessionFactory.getSession();//Transactiontx=null;//try{//Stringhql="deleteformtd_reportwhereID=1";//tx=session.beginTransaction();//Connectioncon=session.connection();//Prepared
- Spring @Repository注解深度解析与实践
bemyrunningdog
springbootsql数据库
以下是在您提供的@Repository注解解析基础上补充完善的系统化学习笔记,结合核心机制、实践细节及扩展场景,保留原有框架的同时增强深度与实用性:一、核心作用与定位(增强解析)组件注册与异常转换的双重角色Bean注册:继承自@Component,被@ComponentScan扫描后注册为SpringBean。异常统一化:通过AOP代理捕获JDBC/JPA/Hibernate等原生异常,转换为Sp
- 存储过程都有什么替代方案?
瑞信卡券提货系统
存储过程
存储过程的替代方案主要有以下几种:ORM(对象关系映射):ORM框架,如Hibernate、EntityFramework等,在客户端逻辑和数据库之间插入了一个层。这些框架能够生成SQL语句以在数据库上执行,从而避免了直接编写存储过程。使用ORM,开发人员可以在应用层表达复杂的业务逻辑,而无需将逻辑分散到存储过程中。ORM框架允许开发人员使用面向对象的方式操作数据库,提供了更高层次的抽象,使得代码
- 《MyBatis的运行原理》
一.MyBatis是什么?MyBatis是⼀个开源、轻量级的数据持久化框架,是JDBC和Hibernate的替代⽅案,MyBatis内部封装了JDBC,简化了加载驱动、创建连接、创建statement等繁杂的过程,开发者只需要关注SQL语句本身。二.MyBatis执行流程1.MyBatis与JDBC想要学习了解MyBatis,我们首先需要从JDBC入手并立足于JDBC,才能深入的理解MyBatis
- 高校毕业设计选题管理系统的SSH框架实现
Kiki-2189
本文还有配套的精品资源,点击获取简介:该系统基于SSH架构(Struts2、Spring和Hibernate)建立,旨在简化和优化高校毕业设计的选题流程,提高教学管理效率。系统根据角色(管理员、教师、学生)分配不同功能与权限,涵盖用户管理、课题发布与审核、文档提交和评估等。采用了JSP技术进行用户界面的构建,并利用SSH框架的特性简化了开发流程,提高了系统的稳定性和交互性。1.SSH框架应用于Ja
- spring-data-jpa+spring+hibernate+druid配置
参考链接:http://doc.okbase.net/liuyitian/archive/109276.htmlhttp://my.oschina.net/u/1859292/blog/312188最新公司的web项目需要用到spring-data-jpa作为JPA的实现框架,同时使用阿里巴巴的开源数据库连接池druid。关于这两种框架的介绍我在这里就不多赘述。直接进入配置页面:spring的配置
- ORM框架实战:MyBatis与JPA深度对比及企业级开发全攻略(终极优化版)
Android洋芋
mybatistomcatjavaORM框架数据库优化
一、ORM框架技术演进与选型策略1.1ORM框架的演进史JDBC时代:手动管理连接池、事务、SQL注入风险。Hibernate/JPA:2006年JPA标准化,推动ORM框架自动化。MyBatis:2010年诞生,强调SQL控制权,解决Hibernate“过度自动化”问题。2020年后趋势:MyBatis-Plus:提供Lambda表达式、自动分页等功能。SpringDataJPA:通过方法名自动
- JAVA——JAVA知识点集锦(下)
Faith_chao
JAVA基础JAVA基础知识点
转自:http://blog.csdn.net/Scythe666/article/details/51994782这部分主要是开源JavaEE框架方面的内容,包括Hibernate、MyBatis、Spring、SpringMVC等,由于Struts2已经是明日黄花,在这里就不讨论Struts2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇
- 数据库面试题06为什么要用MyBatis框架?
MyBatis是一个优秀的持久层框架(虽然常被归类为“半自动化”ORM,但其核心更侧重于SQL映射),它在Java开发中广泛应用,尤其在需要精细控制SQL、处理复杂查询或与遗留数据库交互的场景中备受青睐。选择MyBatis的主要原因可以总结为以下几点:对SQL的完全控制权(核心优势):开发者手写SQL:MyBatis要求开发者直接编写SQL语句(在XML映射文件或注解中)。这与Hibernate/
- Java 领域 Hibernate 的事务传播行为详解
Java大师兄学大数据AI应用开发
javahibernate开发语言ai
Java领域Hibernate的事务传播行为详解关键词:Hibernate、事务传播、Spring事务、PROPAGATION_REQUIRED、PROPAGATION_REQUIRES_NEW、事务隔离级别、数据库事务摘要:本文将深入探讨Hibernate框架中的事务传播行为机制。我们将从基础概念出发,详细解析七种标准的事务传播行为类型,包括REQUIRED、SUPPORTS、MANDATORY
- 01.SpringBoot集成持久层框架MyBatis详细指南
全栈凯哥
全栈项目springbootmybatis后端
文章目录1.MyBatis简介1.1什么是MyBatis?1.2MyBatis的核心特点1.3MyBatisvsJPA/Hibernate1.3.1MyBatis的优势1.3.2JPA/Hibernate的优势1.4MyBatis核心组件1.4.1SqlSessionFactory1.4.2SqlSession1.4.3Mapper接口1.4.4Configuration2.SpringBoot集
- MyBatis初识:为什么选择它?
双力臂404
mybatis基础mybatis开发语言
前言在Java持久层框架的江湖中,MyBatis像一位特立独行的侠客——它既不像JDBC那样需要开发者赤手空拳打天下,也不似Hibernate般用ORM大法将SQL完全封装。这种"中间派"的定位,恰恰解决了开发者在两个极端之间的长期困扰。JDBC的"三座大山"//典型JDBC代码片段Connectionconn=null;PreparedStatementps=null;ResultSetrs=n
- application.yml 文件配置解析
前端小努力
springboot
application.yml文件配置解析application.yml文件是SpringBoot应用程序中用于配置各种属性的主要文件之一。它可以配置的内容非常广泛,包括但不限于以下几类:服务器配置端口号服务器地址会话管理SSL配置数据源配置数据库URL用户名和密码JDBC驱动类名连接池配置JPA和Hibernate配置DDL自动更新策略SQL显示方言配置日志配置日志级别日志文件路径安全性配置基本
- Java 里 Hibernate 的多租户架构实现
AI大模型应用实战
javahibernate架构ai
Java里Hibernate的多租户架构实现关键词:Java、Hibernate、多租户架构、多租户实现、数据隔离摘要:本文深入探讨了在Java中利用Hibernate实现多租户架构的相关技术。首先介绍了多租户架构的背景和意义,包括目的、预期读者、文档结构以及相关术语。接着阐述了Hibernate多租户的核心概念,给出了原理和架构的文本示意图与Mermaid流程图。详细讲解了核心算法原理,通过Py
- Hibernate中save与saveOrUpdate的差异解析
代码的余温
hibernateoracle数据库
在Hibernate中,save()和saveOrUpdate()都是用于持久化对象的方法,但它们的适用场景和行为有显著差异:1.save()方法核心行为:仅适用于瞬时态(Transient)对象(即新创建、未与Session关联的对象)。会立即为对象分配一个标识符(ID),并计划在事务提交时执行INSERT操作。若尝试对已持久化(Persistent)或游离态(Detached)对象调用save
- Java:动态代理Proxy
十秒耿直拆包选手
JavaProgrammingupjava
动态代理在Java中有着广泛的应用,比如SpringAOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。基本概念假设有一个表示接口的Class对象(有可能只包含一个接口),它的确切类型在编译时无法知道。要想构造一个实现这些接口的类,就需要使用newInstance方法或反射找出这个类的构造器。但
- MyBatis 简介
hweiyu00
技术栈杂谈mybatis
MyBatis简介MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,能够帮助开发者将Java对象与数据库表进行灵活映射,简化数据持久化操作。以下从多个维度详细介绍MyBatis:一、核心定位与优势轻量级框架:相比Hibernate等全自动ORM框架,MyBatis更“轻”,开发者需手动编写SQL语句,灵活性更高,便于优化性能。ORM映射功能:通过XML或注解方式,将J
- No row with the given identifier exists 解决方法
dazhong2012
博客分类:异常、错误处理Hibernate有两张表,a和b.产生此问题的原因就是a里做了关联或者(特殊的多对一映射,实际就是一对一)来关联b.当hibernate查找的时候,b里的数据没有与a相匹配的,这样就会报Norowwiththegivenidentifierexists这个错.(一句话,就是数据的问题!)假如说,a里有自身的主键id1,还有b的主键id2,这两个字段.如果hibenrate
- Hibernate ORM 映射深度解析
后端
在Java持久层技术体系中,Hibernate作为经典的ORM(对象关系映射)框架,通过自动化对象与数据库表的映射关系,显著提升了数据访问层的开发效率。本文从核心映射机制、高级特性、性能优化及面试高频问题四个维度,结合源码与工程实践,系统解析Hibernate的ORM映射原理与最佳实践。一、核心映射机制1.1基础映射类型映射类型描述示例注解实体映射将Java类映射到数据库表@Entity,@Tab
- 分库分表之-ShardingJDBC技术详解
ShardingJDBC技术详解一、ShardingJDBC简介ShardingJDBC是一款轻量级的分布式数据库中间件,定位为在Java的JDBC层提供额外服务。它以客户端直连数据库的方式,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。适用于任何基于JDBC的ORM框架,如JPA、Hibernate、Mybatis、SpringJDB
- 基于 SSH 框架的保险业务管理系统设计与实现:从需求到落地的全栈解析
一、引言:保险行业数字化转型的迫切需求随着保险行业竞争的白热化,传统手工管理模式在客户信息处理、订单跟踪、赔偿审核等环节暴露出效率低下、数据安全隐患等问题。据统计,国内中小型保险公司平均每天需处理数千条客户数据,手工录入错误率高达5%,严重影响业务效率。在此背景下,基于SSH框架(Struts+Spring+Hibernate)和B/S架构的保险业务管理系统应运而生,通过信息化手段实现业务流程规范
- 掌握Spring Boot数据库集成:用JPA和Hibernate构建高效数据交互与版本控制
2的n次方_
springboot数据库hibernate
在现代应用开发中,数据库操作是核心环节之一。SpringBoot提供了简化数据库集成的强大工具,而JPA(JavaPersistenceAPI)和Hibernate是两种非常流行的ORM(对象关系映射)框架,可以帮助我们将对象与数据库表关联,实现自动化的持久化操作。本文将详细介绍如何通过SpringBoot集成JPA和Hibernate,构建高效的数据交互系统,并讨论数据迁移与版本控制的最佳实践。
- 【java】乐观锁的实现和注意细节
CC大煊
技术方案java数据库
文章目录1.前言乐观锁vs.悲观锁:基本概念对比使用场景及优势简述2.基于版本号的乐观锁实现代码示例注意事项3.基于CAS机制的乐观锁实现核心思想代码示例关键点说明4.框架中的乐观锁实践MyBatis中基于版本号的乐观锁实现示例代码JPA(Hibernate)中的乐观锁@Version注解关键点与底层原理示例代码5.乐观锁使用中的注意细节并发冲突后的重试机制与失败处理事务管理中的注意事项数据持久化
- Spring Boot 参数验证
阿乾之铭
SpringBootSpringMVCmysqljava数据库
一、依赖配置首先确保在pom.xml中添加了以下依赖:org.springframework.bootspring-boot-starter-validation这个依赖包含了HibernateValidator(JSR-380规范的实现)和必要的Spring验证支持。验证执行流程:当请求到达Controller方法时,Spring会检查方法参数上的@Valid或@Validated注解触发Met
- Java ORM框架深度解析:Hibernate、MyBatis与Spring Data JPA对比
樽酒ﻬق
java面试javahibernatemybatis
目录JavaORM框架深度解析:Hibernate、MyBatis与SpringDataJPA对比引言:ORM在Java开发中的作用理解对象关系映射(ORM)主流JavaORM框架概览HibernateMyBatisSpringDataJPAEclipseLinkOpenJPA其他值得注意的框架主要特性综合比较易用性和学习曲线性能特点灵活性和定制选项社区支持和文档事务管理缓存机制延迟加载和即时加载
- Hibernate简介
yuren_xia
前端技术hibernatejava后端
Hibernate是一个开源的对象关系映射(ORM)框架,用于将Java对象映射到关系型数据库,简化数据库操作。它避免了直接编写SQL的繁琐,通过面向对象的方式操作数据。核心概念对象关系映射(ORM)将Java类映射到数据库表,类的属性映射到表的字段。SessionFactory线程安全的全局对象,用于创建Session(类似数据库连接池)。Session数据库操作的核心接口,提供CRUD方法(非
- 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