免费刷金币,请点击这里
TE社区 > 后端开发
客服QQ:1206116161

Servlet中forward(请求转发)和redirect( 重定向)总结

何须伤离别 于 2016-04-24 03:02:11 创建话题
(4159)
(2)
举报

forward:请求转发
redirect: 重定向
1.在给予"/"表示当前的路径是以jsp路径为根路径来进行请求转发,属于绝对路径。 如果没有表示当前路径是以当前客户端发送请求时的路径进行请求转发,属于相对路径。
2.从这里的请求转发可以看出,servlet主要负责的并不是现实html代码,而是为了处理具体的请求转发。大致方法获得RequestDisapatcher对象 然后用其forward方法来进行请求转发:
RequestDisapatcher rd=reqest.getRequestDisapatcher();
rd.forward(req,resp); //用这里的方法来进行转发
 
3.HttpServletResponse 对象的SendRequest(String location)方法称作重定向,如果location地址前面加上“/ ”,则表示相对于servlet容器的根来请求,即http://localhost:8080 ,如果location地址前没有加上“/”,则表示当前请求的URI来寻找地址(就是当前的项目目录中)。
4.RequestDispather的forward(request,response)方法称为请求转发。
5.请求转发和重定向的区别:
a.请求转发:整个过程在同一个请求当中。所以在用getParameter的时候的值可以随时拿到。
b. 重定向:实际上客户端会向服务器发送两个请求。第一个请求是请求serlvet,第二个请求是服务器将结果发送到请求页面。所以getParameter是不可能得到同一个请求参数的。所以最总是是用response对象中的sendRedirect方法来重定向,也即服务器响应对象来进行重定向的.
c.RequestDisapatcher是通过调用HttpServletRequest对象的getRequestDisapatcher方法得到的。是属于请求对象的方法。
d.sendRedirect方法是属于HttpServletResposne对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。


6.重定向在firebug中的会有两个请求 而请求转发只有一个。本源就是请求个数。
 
前后两个页面 有数据传递 用请求转发,没有则用重定向。
比如servlet查询了数据需要在页面显示,就用请求转发。
比如servlet做了update操作跳转到其他页面,就用重定向。

=======================================================

1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.


redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.

redirect:不能共享数据.

3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.


redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.


4.从效率来说
forward:高.


redirect:低.


本质区别


解释一

一句话,转发是服务器行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程:

转发过程:客户浏览器发送http请求----》web服务器接受此请求--》调用内部的一个方法在容器内部完成请求处理和转发动作----》将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。

重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器--》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里 location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

解释二

重定向,其实是两次request,

第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

例子:

请求转发是服务器内部把对一个request/response的处理权,移交给另外一个

对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C、D。 传输的信息不会丢失。

解释三:

转发是服务器行为,重定向是客户端行为。 

两者的内部机制有很大的区别:   
1 请求转发只能将请求转发给同一个WEB应用中的组件,
而重定向还可以重新定向到同一站点不同应用程序中的资源,甚至可以定向到一绝对的URL。   
2 重定向可以看见目标页面的URL,
转发只能看见第一次访问的页面URL,以后的工作都是有服务器来做的。  
3 请求响应调用者和被调用者之间共享相同的request对象和response对象,
重定向调用者和被调用者属于两个独立访问请求和响应过程。   
4 重定向跳转后必须加上return,要不然页面虽然跳转了,
但是还会执行跳转后面的语句,
转发是执行了跳转页面,下面的代码就不会在执行了。 


  • Mrchen
    - 03月17日 (0)

    111111

  • 呆到深处自然萌
    - 03月04日 (0)

    啦啦啦啦啦啦,我是卖报的小行家


扫码关注TE官方微博 扫码关注TE官方微博
Python实现识别手写数字 Python图片读入与处理 php文件上传类完整实例 jQuery使用$.ajax进行即时验证的方法 python判断字符串是否是json格式方法分享 Java实现在线语音识别 IntersectionObserver实现图片懒加载的示例 Oracle 10G PL_SQL正规表达式(正则表达式)手册 jsp中调用java代码小结 你必须知道的Javascript知识点之'字面量和对应类型'说明介绍 浅谈JS中的常用选择器及属性、方法的调用 php如何实现不借助IDE快速定位行数或者方法定义的文件和位置 百分比的细节--容器大小篇 JavaScript 函数模式详解及示例 JS 实现计算器详解及实例代码(一) js实现3D图片展示效果 简单谈谈Javascript函数中的arguments Android实现自定义标题栏的方法 使用jquery 简单实现下拉菜单 PHP实现伪静态方法汇总 python使用xlrd实现检索excel中某列含有指定字符串记录的方法 JavaScript声明变量时为什么要加var关键字 Angular5.1新功能分享 Node.js连接Sql Server 2008及数据层封装详解 javascript开发随笔二 动态加载js和文件 jqurey 学习笔记 传智博客佟老师附详细注释 Python3安装Pymongo详细步骤 JavaScript学习笔记之数组随机排序 JS+CSS实现滑动切换tab菜单效果 Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法 基于Ajax技术实现文件上传带进度条 Android中backgroundDimEnabled的作用 在Mac OS中安装Lua的教程 在Python的Django框架中simple-todo工具的简单使用 JS+HTML5 FileReader实现文件上传前本地预览功能 jQuery实现菜单栏导航效果 JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证) juqery 学习之四 筛选查找 Angularjs基础知识及示例汇总 Z-blog系统常量标签说明 一些简单的ASP练习 vue的props实现子组件随父组件一起变化 js仿微信抢红包功能 python特性语法之遍历、公共方法、引用 ThinkPHP中的三大自动简介 浅析jQuery EasyUI中的tree使用指南 go和python变量赋值遇到的一个问题 js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问 php实现过滤表单提交中html标签的方法 实例讲解Python中的私有属性 GridView自动增加序号(三种实现方式) 使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享 Javascript Object.extend Asp.Net 通用数据操作类 (附通用数据基类)第1_2页 基于 Ajax 的无限级菜单 Extjs优化(二)Form表单提交通用实现 php中strtotime函数用法详解 os x yosemite dp5下载地址 os x 10.10 dp5更新内容 JS获取指定月份的天数两种实现方法 对于Python的框架中一些会话程序的管理 javascript写的一个模拟阅读小说的程序 JS替换文本域内的回车示例 MySQL8.0.11版本的新增特性介绍 python文件操作整理汇总 DEDECMS修改文章TAG 给TAG加链接 去掉TAG字数限制 Python编写一个闹钟功能 idea新建maven项目时速度缓慢的解决方法 jquery中ajax学习笔记一 js实现鼠标跟随运动效果 JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并) JavaScript高级程序设计 XML、Ajax 学习笔记 javascript页面动态显示时间变化示例代码 CI框架安全类Security.php源码分析 javaScript实现复选框全选反选事件详解 JavaScript定时器实现的原理分析 JavaScript简单实现弹出拖拽窗口(二) Drupal7连接多个数据库及常见问题解决 raphael.js绘制中国地图 地图绘制方法 简单掌握JavaScript中const声明常量与变量的用法 android 中使用TableLayout实现表单布局效果示例 基于jQuery实现的Ajax 验证用户名是否存在的实现代码 使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子 JavaScript多线程运行库Nexus.js详解 浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解 Node.js开发第三方微信公众平台 JavaScript 类型的包装对象(Typed Wrappers) asp如何用discuz会员系统 JavaScript中调用函数的4种方式代码实例 require.js 加载 vue组件 r.js 合并压缩的实例 使用 JScript 创建 .exe 或 .dll 文件的方法 ASP.NET连接数据库并获取数据方法总结 如何处理百万级别的数据? jQuery使用post方法提交数据实例 js实现有时间限制消失的图片方法 关于JS数组追加数组采用push.apply的问题 苹果Mac彻底删除文件的方法 JavaScript数据操作_浅谈原始值和引用值的操作本质 在ASP.NET 2.0中操作数据之一:创建一个数据访问层 ubuntu 11.10输入法图标不显示的解决方法(图文教程) iOS开发中runtime常用的几种方法示例总结 RxSwift学习教程之基础篇 Linux系统下Flash Player崩溃的一个解决办法分享 struts2 jquery 打造无限层次的树 PHP面向对象多态性实现方法简单示例 IBM DB2 日常维护汇总(五) ASP.NET MVC中将控制器分离到类库的实现 javascript阻止scroll事件多次执行的思路及实现 JavaScript 验证浏览器是否支持javascript的方法小结 JavaScript实现列表分页功能特效 iOS中的表单按钮选项UIActionSheet常用方法整理 mysql alter table修改表命令整理 浅析Bootstrap组件之面板组件 IOS 陀螺仪开发(CoreMotion框架)实例详解 生产库自动化MySQL5.6安装部署详细教程 基于jquery的防止大图片撑破页面的实现代码(立即缩放) 学习JavaScript设计模式之状态模式 React Native使用fetch实现图片上传的示例代码 如何重置vue打印变量的显示方式 几行代码轻松搞定jquery实现flash8类似的连接效果 详解nodejs 文本操作模块-fs模块(二) Java正则表达式,提取双引号中间的部分方法 Nodejs+angularjs结合multiparty实现多图片上传的示例代码 MySQL外键约束的禁用与启用命令 详解Docker下使用Elasticsearch可视化Kibana javascript 判断数组是否已包含了某个元素的函数 Linux服务器无法登陆问题的解决方法 你应该知道的Ruby代码风格 html5 Canvas实现图片旋转的示例 JQuery中Ajax()的data参数类型实例分析 实例分析nodejs模块xml2js解析xml过程中遇到的坑 使用HTTP api简单的远程执行PowerShell脚本 PHP实现腾讯与百度坐标转换 HTML select option基础理解及使用 Python操作串口的方法 Linux系统ulimit值的正确设置方法 学习php设计模式 php实现备忘录模式(Memento) JavaScript控制Session操作方法 ASP.NET中Request.Form中文乱码的解决方法 Vue2.0 组件传值通讯的示例代码 7款吸引人眼球的jQuery_CSS3特效实例分享 支付宝支付开发IOS图文教程案例 js验证真实姓名与身份证号,手机号的简单实例 CSS 使用规则总结 基于原生js淡入淡出函数封装(兼容IE) JavaScript在form表单中使用button按钮实现submit提交方法 原生 JS Ajax,GET和POST 请求实例代码 jquery中AJAX请求 $.post方法的使用 JavaScript通过元素索引号删除数组中对应元素的方法 javascript按位非运算符的使用方法 一个不错的仿携程自定义数据下拉选择select Python动态生成多维数组的方法示例 使用ef6创建oracle数据库的实体模型遇到的问题及解决方案 Swift循环遍历集合的方法总结分享 iOS中如何使用iconfont图标实例详解 js表格排序实例分析(支持int,float,date,string四种数据类型) oracle 12c创建可插拔数据库(PDB)与用户详解 JavaScript 匿名函数(anonymous function)与闭包(closure) CORBA对象生命周期 浅谈python中的正则表达式(re模块) Jquery实现自定义窗口随意的拖拽 只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名 PHP SPL使用方法和他的威力 如何解决Linux系统下Docker占满分区的问题 css仿word首字下沉效果示例 IOS实现验证码倒计时功能(一) spring的父子容器及配置详解 PHP根据IP地址获取所在城市具体实现 PHP缓冲区用法总结 实例讲解JSP获取ResultSet结果集中的数据的方法 深入解析phpCB批量转换的代码示例 Linux折腾记(十二):桌面美化那点事儿 解析php中die(),exit(),return的区别 js脚本分页代码分享(7种样式) QQ互联一键登录审核不通过的解决方案 基于jquery实现点击左右按钮图片横向滚动 jquery 中toggle的2种用法详解(推荐) ubuntu12.04卡死的解决方法(ubuntu查看内核以及升级内核的方法) ASP .NET 可编辑输入自动匹配的下拉框 mysql中格式化数字详解 AngularJS基础 ng-keypress 指令简单示例 php简单备份与还原MySql的方法 jQuery模拟点击A标记示例参考 Lua中执行系统命令方法介绍 mysql 8.0.12 快速安装教程 phpcms教程之增加统计代码可以统计每天发表文章数量 Ruby中百分号和字面值的使用示例 用v-html解决Vue.js渲染中html标签不被解析的问题 Java_Web调用Hadoop进行MapReduce示例代码 Mac系统下Webstorm快捷键整理大全 jQuery中校验时间格式的正则表达式小结 Python基于PycURL自动处理cookie的方法 mongodb在建立一个T级别的数据库时,进程挂掉的解决方法 ExtJS 2.0实用简明教程 之Ext类库简介 artdialog的图片_标题以及关闭按钮不显示的解决方法 nodejs通过phantomjs实现下载网页 Android 中Context的使用方法详解 ASP.NET中使用GridView实现分级显示的代码 js中获取 table节点各tr及td的内容简单实例 WordPress的主题编写中获取头部模板和底部模板 纯css实现多级折叠菜单折叠树效果 Node.js REPL (交互式解释器)实例详解
jQ大屏带导航焦点图.zip jq+css3照片堆栈效果.zip jquery点击聚焦固定背景导航.zip 微信小程序 - 小程序地图定位.zip 简约大气扁平商务网站模板.zip jquery敲打空格键播放特效.zip cppkafka源代码 【ASP.NET源码】Asp.Net Forums 2 v1.1 源代码_anf2-src.zip jQuery可选择详细的价钱区间值代码.zip 精品免费旅行网站模板.zip 音乐生活娱乐网站模板.zip jquery小格子幻灯片.zip 【ASP.NET源码】苏州物流网站_logistics.zip 紫色大屏创意设计模板.zip acitivi-web入门项目 【很适合新手学习】仿coffee手机wap企业网站模板.zip jQuery美化Select下拉菜单插件.zip Java 税控发票开票管理系统,带数据库 css3彩色计算器.zip 新车上市官网网站模板.zip jQuery多风格百叶窗幻灯片.zip js div拖动动画运行轨迹效果代码.zip jQuery带动画效果文件上传插件.zip jQuery灯箱弹出窗口插件litebox.zip JS输入汉字转换成拼音首字母代码.zip 平面设计师介绍网站模板.zip jQuery左右轮播焦点图特效.zip CSS3时钟圆形立体倒计时代码.zip js图片跟随鼠标三维立体展示.zip 游艇销售公司网站模板.zip 仿百度图片放大效果(jQuery).zip jQuery自适应全屏BANNER焦点图.zip 微信小程序源码-淘票票电影 struts2.0+spring3.0+hibernate3.2框架整合Demo 人才招聘网触屏版手机wap用户登陆网站模板.zip jQuery悬停图片变焦效果.zip 微信小程序 - 腾讯云小程序一站式解决方案.zip JSP+sql网络远程作业处理系统(系统+论文+开题报告+中英文摘要+封面+目录+资料) 红色宽屏APP官网产品模板.zip jquery实现3D立体表单.zip 【PHP源码】互动维客系统(HDWiki) v2.2(UTF-8) release build 0830_hdwiki-v2.2utf8-20070830.zip 优秀企业网站模板下载.zip 投资组合CSS3模板.zip 减肥商品邮件推广html模板.zip 红色个性设计HTML5模板.zip jQuery仿淘宝icon动画图标特效.zip CSS3实现外星飞船UFO动画特效.zip 安全狗网站jQuery焦点图.zip jquery卡片式焦点图.zip CSS3实现圆形悬浮导航.zip 安卓APP应用展示网站模板.zip 【PHP源码】PHPDCS在线记账记事程序 v1.3.2_phpdcs0501.zip jQuery按钮控制单排图片切换代码.zip 农业种植CSS3网站模板.zip js+css3制作响应式导航菜单代码.zip HTML5粒子效果文字动画.zip jQuery small2big图片缩放插件.zip jQuery彩色滑动切换标签选项卡.zip Android开发第三方登录和分享 demo 仿相宜本草用品店手机wap企业网站模板.zip 微信小程序源码-企业间的计步 SK-VIP抓鸡系列课程(7课全) jquery动态文字颜色切换.zip SSM框架【Spring+SpringMVC+MyBatis】 源码 Java网络编程多线程断点下载带界面选择文件夹进度条 韩国食物模板.zip jQuery产品图片缩放切换代码.zip SpringBoot整合SSM(含数据库),含有代码生成 jquery鼠标悬停图片翻转效果.zip jQuery文本字体放大缩小.zip SSM项目框架整合(maven构建),实现基本的业务逻辑以及核心的权限控制逻辑 微信小程序源码-旅运(含后端) jQuery图片滑动手风琴代码.zip HTML5 Canvas微信运动折线图特效.zip 蓝色商务律师企业模板.zip 高端大气网站模板源码下载.zip 户外休闲驴行登山网站模板.zip 【ASP.NET源码】某社区居委会网站源码_sqjwh.zip 网站即将上线倒计时模板.zip jQuery创意爱心表白动画效果.zip jquery表单注册验证框架.zip jQuery立体相册鼠标点击切换代码.zip 夕阳下的万里长城网页模板.zip jQuery滚动鼠标垂直全屏翻页代码.zip CSS3和HTML5图片加工前后对比代码.zip 图翼网侧边jQuery返回顶部代码.zip jquery单张图片放大效果.zip jQuery响应式多级下拉导航菜单特效.zip html5时间轴设计工作记录样式.zip 网上购物系统 jsp+mysql Struts2+Spring+Hibernate 帝国CMS绿色食品企业模版.zip 婚庆企业html5网站模板.zip flash相片翻页展示效果.zip jQuery鼠标点击手风琴展开特效.zip 中商情报网jquery相册代码.zip 绿色IT网站设计公司网站模板.zip maven springMVC + spring + mybatis 完整demo 自适应性黑色简单触屏版手机wap企业网站模板.zip cxSlide带缩略图和描述焦点图.zip GitHub for Windows离线安装包 js表格列表全选反选删除.zip 一套bootstrap的后台模板源码2 jquery果冻抖动效果.zip 网上购物系统(jsp+mysql+tomcat) jQuery蓝色修边tab标签切换.zip 微信小程序源码-寄快递小程序 jQuery仿支付宝6位数字密码框代码.zip jQuery带音效的炫酷虚拟键盘代码.zip 5款自定义登录表单样式.zip 【ASP.NET源码】偶然网络.net2.0企业网站管理系统 (Vc1)_orwx_vc1.zip 蓝白清新HTML5网站模板.zip 闹钟机器html网站模板.zip 纯CSS3按钮3D效果.zip 【PHP源码】Adsense Proxy 测试版_adsenseproxy.zip SVG时钟走时图标特效.zip jQuery立体缩略图切换特效.zip jQuery带预览可拖拽文件上传代码.zip MyEclipse+MySql日程管理系统 jQuery环形旋转幻灯片.zip 绿色有机商店html模板.zip jquery右侧八屏带缩略图幻灯片.zip 【PHP源码】木翼Flash系统 v1.0_myflashv1.0.zip 超炫的Android Path Button效果 jquery实现png透明幻灯片效果.zip 微信小程序 - 图书管理系统.zip blogic博客Joomla模板.zip 大气企业CSS网页模板.zip 织梦dede企业公司行业网站通用模板(带手机版).zip java Ajax 级联菜单 CSS3悬停快速幻灯片.zip java(结合lucene)版的公交搜索系统 json本地格式化工具 Discuz! x2.5浪蓝色大气模板.zip jQuery鼠标滑动切换焦点图代码.zip jQuery企业网站半透明下拉导航.zip jQuery图片选项卡商品轮播代码.zip jquery电影相册图片预览.zip Tooltip验证提示HTML5表单.zip 【PHP源码】PHPWind Forums 7.0 GBK 正式版 Build20090116_phpwind_gbk_7.0.zip 蓝色简洁企业网站模板.zip jQuery手机端手指触摸图片放大代码.zip 毕业设计-Struts2+Hibernate4.2+Spring3的SSH2网上订餐管理系统 蓝色营销型网站模板.zip 慈善机构HTML网站模板.zip redis客户端管理工具 自主研发的Hibernate等实体生成工具,支持多数据库 大屏清爽旅游网页模板.zip 百度应用jQuery图文列表切换.zip 智能穿戴设备企业网站模板.zip 机构清爽简洁html模板.zip 积木搭建房子CSS3特效.zip jQuery带放大镜LightBox画廊代码.zip jQuery多级下拉垂直手风琴代码.zip css3 Android Logo.zip jQuery电视墙高亮幻灯片.zip 实战华电内部文档搜索系统视频教程 纯CSS3滑动开关按钮特效.zip Java开源规则引擎Drools规则动态更新实例(规则存储到数据库,在线动态更新及时生效,勿需重启服务器) 【大企业做的网站就是吊!!】仿Haier 海尔家电家居触屏版html5响应式手机wap企业网站模板.zip 右侧悬浮jquery在线客服.zip HTML5视频播放器美化插件.zip js展开叠起来分类导航.zip 360网站图片选项卡切换代码.zip 响应式图片切换jQuery选项卡.zip 将文件上传到Red5服务器的demo jQuery从页面右上角弹出的浮层代码.zip 蓝色创意广告公司html5模板.zip Bootstrap Accordion手风琴特效.zip 蓝色卡通APP网站模板.zip 微信小程序 - 页面生成器.zip 右侧8张缩略图jQuery图片轮播特效.zip jquery多种切换幻灯轮换代码.zip 【PHP源码】大型教育商务网站全站系统 v1.10_jeduv1.10.zip 韩寒ONE一个wordpress主题.zip jQuery+CSS3实现人物跳动特效.zip jquery图像标注式提示插件adhere.zip 水墨风格tab标签在线客服.zip spring3.0+mybatis3.0+springSecurity+SpringMVC 国外建筑工业CSS网站模板.zip jQuery+CSS3文字动画插件Morphext.zip 带留言功能的在线客服代码.zip jQuery缓缓弹出广告代码.zip css3彩色计算器.zip jQuery可水平垂直自由拖拽代码.zip 腾讯qq娱乐频道焦点图.zip 艺术长廊网ecshop模板.zip 微信小程序源码-悦读神器 CSS3选项动画切换效果.zip 商城侧边导航定位jquery菜单.zip jQuery文本编辑插件wangEditor.zip 纯CSS3制作萤火虫动画特效.zip HTML5 Canvas五彩烟花动画特效.zip spring cloud项目源码 jQ+css3平滑二级下拉导航.zip 纯CSS3实现精美的丝带样式特效.zip Textview实现文本间距 Metro图标导航菜单.zip Dubbo+Zookeeper+SpringMVC实现分布式服务治理框架(附件含源码) ztree+jstree最简单htm实例 jquery弹出层分享.zip
举报X