在Web开发中,Servlet扮演着重要角色,用于处理客户端的请求并生成响应。
在实际应用中,有时需要在Servlet之间进行跳转,以实现更复杂的业务逻辑。
本文将详细介绍Servlet跳转的相关概念、方法以及注意事项。
Servlet跳转是指在一个Web应用中,从一个Servlet跳转到另一个Servlet的过程。
这种跳转可以是前进式跳转(forward)或重定向式跳转(redirect)。
前进式跳转是在服务器内部完成,URL不会发生变化;而重定向式跳转会涉及到客户端浏览器,URL会发生变化。
前进式跳转是通过RequestDispatcher对象实现的。
当一个请求到达Servlet A时,可以通过RequestDispatcher将请求转发给另一个Servlet B。
前进式跳转的代码示例如下:
```java
RequestDispatcher dispatcher = request.getRequestDispatcher(/targetServlet);
dispatcher.forward(request, response);
```
在前进式跳转中,原始请求和响应对象会传递给目标Servlet,因此两个Servlet之间的共享数据可以通过这些对象进行传递。前进式跳转的优点是可以保持请求和响应的连续性,提高处理效率。但需要注意的是,由于前进式跳转在服务器内部完成,因此无法改变URL地址。
重定向式跳转是通过响应对象的sendRedirect方法实现的。
当需要从一个Servlet跳转到另一个Servlet时,可以通过sendRedirect方法告诉浏览器重新发起一个到目标URL的请求。
重定向式跳转的代码示例如下:
```java
response.sendRedirect(argetServlet);
```
重定向式跳转的优点是可以改变URL地址,适用于不同模块之间的跳转。但需要注意的是,由于重定向式跳转涉及到客户端浏览器,因此会生成新的请求,可能导致表单数据丢失。由于重定向式跳转是通过浏览器发起的,因此两个Servlet之间无法共享请求和响应对象。
在某些情况下,跳转后页面出现空白可能是由于路径错误或资源加载失败导致的。
解决这个问题的方法是检查跳转路径是否正确,以及目标Servlet是否能够正确生成响应。
还需要检查服务器日志以获取更多错误信息。
在使用重定向式跳转时,可能会遇到表单数据丢失的问题。
这是因为重定向式跳转会生成新的请求,原来的请求数据不会保留。
解决这个问题的方法是将需要保留的数据存储在会话(Session)或cookie中,然后在目标Servlet中重新获取这些数据。
也可以考虑使用前进式跳转来保持请求的连续性。
1.选择适当的跳转方式:根据实际需求选择前进式跳转或重定向式跳转。
前进式跳转适用于同一业务模块内的页面跳转,而重定向式跳转适用于不同模块之间的跳转。
2.避免频繁跳转:频繁跳转可能导致性能下降和资源浪费。
在设计业务逻辑时,应尽量优化代码结构,减少不必要的跳转。
3.注意路径问题:在跳转时需要注意路径的正确性,确保目标Servlet能够正确访问。
还需要注意路径的相对性和绝对性,以避免出现混淆和错误。
六、总结与展望未来的探讨方向)走向企业现代化大讲堂带您在内部代码新特性和前端界面框架分析开发效率提升的路径。
前端框架(ReactJS和VueJS)比较优势和局限性和对后端开发带来的冲击。
)了解VueJS与ReactJS的区别和优劣以及如何在不同的项目需求下选择适合的前端框架等前沿话题一直是开发人员关注的热点话题之一在现代web开发中前端框架已成为开发者必备的利器它们使得开发效率大大提升以及带来用户体验的大幅提高且可以为企业现代化贡献大量技术与实用效果一般来说一个通用的讨论热点是未来更深度探索代码的无感化避免开发人员直接编写重复性高无价值感的代码使得开发者将更多的精力投入到更具创造性的工作中实现更高效的开发模式为企业的数字化转型贡献更多力量现代技术能够帮助开发人员消除低效乏味的过程并解决更具创新的问题的开发这将帮助我们进一步提高技术水平从而提升个人能力总结全文中要突出点有两个第一个问题是你应该如何理解和处理Servlet之间的跳转特别是当你遇到一些诸如空白页面和表单数据丢失等常见问题时第二个问题是讨论现代前端框架对开发效率和用户体验的改进作用以及在数字化转型中的作用以此来推动企业现代化进程通过本文对这些问题进行深度探讨我们可以更好地理解现代web开发中的技术挑战和机遇从而推动我们的个人发展并为企业的数字化转型做出贡献。
, 在接下来的文章中我们将深入探讨这些问题我们将分析如何更好地理解和处理servlet之间的跳转解决常见的问题如空白页面和表单数据丢失等同时我们还将探讨现代前端框架如reactjs和vuejs等在开发效率和用户体验方面的优势以及对企业现代化进程的推动作用通过深入探讨这些问题我们可以更好地理解现代web开发中的技术挑战并寻找解决方案以提高开发效率和推动企业的数字化转型)的解凑文本(要求是衔接自然的)未来的探索方向在不断前行的时代车轮之下引言提及的话题像探索星辰指引着开发人员寻找解决方案Servlet间的数据流转虽然有时候会遇上如空白页面或者表单数据的丢失这类困境但随着技术不断发展问题也就随之迎刃而解未来探索的道路上不光需要理解传统技术还需要将视线投向那些能够为前端带来极大便利的现代框架ReactJS与VueJS便是其中的佼佼者它们为企业现代化进程带来了极大的推动力它们不仅提升了开发效率还优化了用户体验使得开发人员能够专注于更具创新性的工作避免了重复性劳动当然在追求现代化的过程中我们也应关注如何更好地利用这些技术来解决实际问题提高技术水平推动数字化转型的步伐在接下来的文章中我们将深入探讨这些问题并寻找解决方案以期为企业的数字化转型贡献一份力量共同迎接更加美好的未来随着技术的不断进步web开发领域必将迎来更多的机遇与挑战而我们也需要不断探索和学习以适应这个瞬息万变的时代总的来说未来的发展将会更加注重技术与创新的融合让我们共同期待这个充满无限可能的未来!在这个数字化的时代把握机遇积极应对挑战努力提升自身能力才能在这个快速发展的时代中立足并实现个人价值为企业的数字化转型贡献自己的力量共同推动社会的进步与发展!四、关于文章的结构安排整篇文章将按照以下结构进行安排:一、引言介绍文章的主题和背景二、介绍servlet的基础知识包括什么是servlet以及servlet的作用三、详细介绍servlet之间的跳转方式包括前进式跳转的代码示例和注意事项以及重定向式跳转的代码示例和常见问题解析如空白页面问题和表单数据丢失问题等等四、对现代前端框架如ReactJS和VueJS等进行介绍分析它们的优势和局限性以及对企业现代化进程的推动作用五、总结与展望总结全文的要点展望未来技术的发展对开发效率和用户体验的提升对推动企业现代化的作用通过本文的学习我们将更好地理解和应用servlet及现代前端框架提高个人技术能力为企业数字化转型做出贡献!在结束之际我想再次强调不断学习新技术的重要性随着时代的不断发展技术的更新换代速度也越来越快只有不断学习才能跟上这个时代的步伐并在竞争中脱颖而出本文虽然讨论了Servlet及现代前端框架的一些基本概念但Web开发领域仍然有很多新技术值得我们探索希望读者能够通过本文的引导继续深入学习Web开发相关技术为自己的职业生涯和企业的发展贡献更多的力量!最后祝愿大家在Web开发的道路上越走越远实现个人价值的提升为企业的数字化转型做出更大的贡献!赋能社会的进步与发展!]
关于“跳转Servlet”的文章(含扩展内容)可能内容过多不便一次性撰写完成,可以将内容拆分至多篇系列文章进行连载发表更为妥当。
下面是第一篇的主体框架概述和内容概述: 便于了解整篇文章的整体规划并作出合适的拆分方案;开头可采用较为宽泛的背景导入然后逐项阐述主要内容 一、背景介绍: 二、servlet的基础知识和作用 三、servlet之间的跳转方式(重点包括前进式和重定向式的详细解释及相关代码示例 四、遇到的常见问题解析与处理策略 五、(留白内容)后续将介绍现代前端框架的优势及其对开发效率的提升等详细内容待续……希望符合您的要求接下来可以按照此框架逐步填充具体内容形成一篇完整的文章根据您的需求依次撰写更多相关方面的论述随着文章内容的不断扩展渐渐展现出更深层次的技术内涵与应用前景从而实现系列文章的构建方案待您确认后我将按照此方案进行文章的撰写和编辑工作。
,接下来我们可以开始详细撰写文章了。
以下是文章的详细内容:一、背景介绍随着互联网的快速发展和普及Web应用程序已经成为人们日常生活中不可或缺的一部分而Servlet作为Java Web开发的核心技术之一在Web应用程序中扮演着重要角色它负责接收客户端的请求并处理响应以完成特定的业务逻辑本文将详细介绍关于Servlet及其跳转的基础知识及其在Web开发中的应用价值二、什么是Servlet以及其作用在现代软件开发领域中后端编程显得尤为重要特别是在处理服务器与客户端交互的业务逻辑时Servlet是一种基于Java的后端技术它能够接收客户端的请求并对请求进行处理然后返回响应结果给客户端在这个过程中Servlet扮演着非常重要的角色它能够处理各种形式的请求包括GETPOSTPUTDELETE等并且可以根据不同的请求类型执行不同的操作例如查询数据库文件操作等在实际应用中开发人员可以通过编写不同的Servlet来处理不同的业务逻辑实现各种功能三、Servlet之间的跳转方式在Web开发中有时需要在不同的Servlet之间进行跳转以实现更复杂的业务逻辑这个过程可以通过前进式和重定向式两种方式来实现前进式跳转的代码示例如下首先我们需要获取到RequestDispatcher对象然后调用其forward方法即可实现请求的分发最终实现了两个Servlet之间的互相调用优点是可以保持原有的请求信息和会话状态信息传递完整而且安全性较高适用于同一业务模块内的页面跳转缺点是无法改变URL地址如果需要在不同模块间进行页面跳转则需要使用重定向式跳转向浏览器发送一个新的请求地址浏览器会重新发起请求到新的地址这种方法可以修改URL地址优点在于能够解决跨模块间页面传递的问题但缺点在于会产生新的请求无法共享原有的请求信息和会话状态信息对于敏感信息的传递可能存在安全隐患另外在处理过程中还需要注意常见的表单数据丢失等问题以便正确处理数据确保用户体验四、遇到的常见问题解析与处理策略在进行Servlet之间跳转时可能会遇到一些常见问题如空白页面问题和表单数据丢失问题等这些问题的解决需要我们对相关技术有深入的理解并能够灵活应用首先对于空白页面问题我们需要检查请求的URL是否正确以及目标Servlet是否能够正确生成响应如果URL错误或者目标Servlet出现问题都可能导致页面空白此外还需要检查服务器日志以获取更多错误信息对于表单数据丢失的问题我们需要将需要保留的数据存储在会话或者Cookie中并在目标Servlet中重新获取这些数据同时我们也可以考虑使用Ajax等技术来实现页面的无刷新更新减少页面重载对于未来的发展趋势我们可以看到随着技术的不断进步将会有更多的新技术和新思想不断涌现我们将面临更多的机遇和挑战作为开发者我们需要不断学习新技术提高个人技术能力以适应这个瞬息万变的时代同时我们也要关注现代前端框架的发展如ReactJS和VueJS等它们将为我们带来更高的开发效率和更好的用户体验助力企业
背景:我们经常会遇到当前页面未加载完毕时跳转路由或者返回操作,但是通过network会发现,若网络环境较差的情况下,会一直pending,切换路由后在network中添加新的请求但是正在pending的请求依然存在.当我们在项目中做了一个上拉加载分页的时候会一直加载中,用户等待不耐烦后可能会主动触发返回操作,但是此刻即使用户触发返回操作,加载分页的请求还是存在,页面还是会一直提示加载中,直到该请求加载成功或超时才肯罢休。 最终给用户造成一些不必要的结果,同时也对web性能造成一定的影响。
那么如何解决这个问题呢,方法就是监听路由,在路由切换前将上个页面的请求取消。
第一步:
axios请求头设置
第二步:
利用vuex,新建一个,将取消方法cancel放到数组中,然后在路由守卫中把数组中存有的cancel方法都执行
第三步:
监听路由
到此就可以解决路由跳转后上个页面的请求还在pending的状态啦
如果想去掉控制台的
至此完美解决,亲测有效!!!
前端下载地址按路由跳转怎么办
热门频道
首页
博客
研修院
问答
下载
社区
推荐频道
活动
招聘
专题
打开CSDNAPP
Copyright?1999-2020,,AllRightsReserved
打开APP
VUE怎么解决路由跳转时及跳转到外部链接,再返回的页面缓存问题原创
2020-07-2420:03:39
1点赞
阿权有想法
码龄4年
关注
本地路由跳转时,可以在中加入以下代码,即可解决本地路由跳转时的缓存问题
但是当跳转到外部链接时(不是本地项目)如网络,再返回时路由缓存就不管用啦,这不是vue的问题,是浏览器的问题,怎么解决这种情况呢?(记录下自己的心路历程)
第一种方法用axios访问网络,但前提是解决跨域问题,网上有很多方法,但我一个都没成功,我太菜啦
第二种方法本来我是打算在后端上记录路由跳转的数据,返回时再把这些数据传回来(VUE就是基于数据的)但发现这有悖前后端分离的初衷,前后端又掺杂在啦一起,那咋办呢,后来灵光一动,我为嘛不打开个新的标签页呢?哈哈,打开新标签页,本页面不关闭,不就不用返回,这不就解决缓存问题啦
打开新标签页的代码
文章知识点与官方知识档案匹配
Vue入门技能树首页概览
人正在系统学习中
打开CSDN,阅读体验更佳
vue页面跳转实现页面缓存操作
业务需求打野在A页面野区进行一波骚操作打了一只蓝爸爸,然后点击导航栏跑到B页面的野区秀操作打了一只红爸爸,然后他又回到A野区,希望A野区还是只有一只蓝爸爸被打的状态,其他野没被偷第一步在路由里面设置需要缓存的页面第二步使用keep-alive属性包裹需要缓存的页面使用v-if判断,为true的是需要缓存的,false是不需要缓存的第三步在需要缓存的页面设置导航钩子,在A野区离开时将值设置为false保证离开当前野区不被偷第四步在其他野区浪一波离开时设置为true,保证回到A野区的时候野区不被刷新,还是原来的状态补充知识:vuekeep–alive使用只有从固
vue跳转到外部后回跳
微信vue跳转到外部后回跳,比如登陆授权操作。 需要路由先跳转到一个中间页面后再跳转到授权服务器!而不能跳转前的页面与回跳后的页面相同不然回跳可能会出现空白路由不解析。 转载于:...
继续访问
[Vue]vue跳转外部链接
vue跳转外部链接vue跳转外部链接问题,当跳转的时候会添加在当前地址后面。varurl=//跳转=url//跳转(url);(url);//跳转(url,_blank);//跳转4vara=(a);
继续访问
最新发布关于vue路由跳转后的页面不会刷新的解决办法
关于vue路由跳转后的页面不会刷新的解决办法
继续访问
【VUE】vue中实现路由跳转到外部链接界面
项目中用前端的是vue框架,有一个需求是,当点击一个按钮后,跳转到原来已经发布过的ionic界面上。如果是vue页面中的内部跳转,可以用this.$()实现,但是如果我们还用这种方法跳到外部链接,就会报错,因为外部页面中是有HTTP等前缀的,那么我们如何跳转到外部链接呢,我们只需用=‘url’来实现,具体代码如下://在data...
继续访问
vue点开链接跳转到外网页面
继续访问
使用vuex做页面缓存,当路由发生跳转的时候,跳转回的页面也是之前的离开的页面。(比如:从活动页面的第二页离开,再次回来的时候还是在第二页)
1、首先建立一个store文件夹,然后定义一个modules文件夹,在里面定义不同的页面模块,最后在store中暴露出来。 2、在每个定义的页面模块中,把需要被缓存的页面的页码记录下来。 3、页面使用首先在页码公共组件中存下这个参数,然后在每个页面中调用这个signal函数,改变页码数。 里面的这个changePage函数是我在页面中拿来存页面页码改变的函数。 4、最后在列表中传参就传...
继续访问
vue中ios系统后跳转外链后点击系统返回按钮后存在的问题
在实际开发中,在ios系统上出现了一个问题:当从外链页面B点击系统返回键到页面A时,路由钩子函数没有执行,同时created和mounted生命周期钩子中的部分代码也没有执行
继续访问
vue项目中解决页面回退后不缓存以及重复请求
需求:一级页面mounted或者created中发送页面请求获取数据渲染完成后,点击进入二级页面,当回退一级页面的时候再次重复请求。解决方式三种:一、缓存所有页面,在中使用keep-alive标签包裹动态路由二、选择性缓存部分页面1、使用属性,在中做选择性缓存判断2、中如下设置:3、使用vue-router2.0的新特性,提供了include/exclude两个属性可以针对性..
继续访问
vue项目上线路径跳转无效(404问题)
在近期做的一个小项目中,本地路由跳转没有任何问题,使用nginx部署上线后出现很多路由无法跳转的问题。 经过一番研究,发现可以通过以下两种方式解决。 法一.将路由改为hash模式vue-router默认hash模式——使用URL的hash来模拟一个完整的URL,于是当URL改变时,页面不会向后端发出请求。 为什么hash模式下没有问题routerhash模式我们都知道是用符号#表示的,如/#/login,hash的值为#/login它的特点在于:
继续访问
内部跳转(请求转发)和外部跳转(重定向)的区别?
总结归纳要点1、内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象,也可以获取到请求中的属性和参数。而外部跳转的时候实际上是第一次请求后,服务器端向客户端发送了一个指令,让客户端再次请求了一次服务器端,这个时候服务器第二次拿到的request对象已经不是第一次请求的request对象了,所以无法获取到第一次请...
继续访问
当我们在文件中,如果是vue页面中的内部跳转,可以用this.$()实现,但是如果我们还用这种方法跳到外部链接,就会报错,我们一看链接的路径,原来是我们的外部链接前面加上了这一串导致跳转出现问题,那么我们如何跳转到外部链接呢,我们只需用=‘url’来实现,具体代码如下:span
继续访问
vue中跳转路由再次回到原页面,进行缓存相关问题
vue中跳转路由再次回到原页面,进行缓存相关问题
继续访问
微信小程序跳转到外部连接和外部链接跳回小程序
微信小程序跳转到外部连接和外部链接跳回小程序1、跳转外部连接1.1、新建一个页面wxml存放web-view组件(page1)1.2需要跳转的页面,跳转到page11.3添加业务域名1.3.1在域名服务器根目录上传微信验证文件1.3.2添加业务域名2、外部连接跳回微信小程序2.1显示的HTML增加微信JSSDK的js代码2.2如若是2.1用的是,会触发web-viewapi的bindmessage方法,在bindmessage中跳转到
继续访问
解决vue路由跳转然后返回后不缓存页面信息
需要使用keep-alive实现。 问题1:解决vue路由跳转然后返回后不缓存页面信息详见大神博客、写的超级清晰明了奥。 :两步即可完成。 (1)在router/里面设置:{path:/Form02,na...
继续访问
Vue跳转到另一页面后如何返回原来的页面
将跳转前的url路径编码后作为query参数传到另一页面中,在另一页面中解码参数获得跳转前的url路径,利用()跳转回原来的页面。2.解码
继续访问
Vue如何在原窗口与新窗口打开外部链接
Vue如何在原窗口与新窗口打开外部链接
继续访问
vue使用keep-alive在列表中进入详情页中返回后在进入其他详情页面发现还是上一次的详情,被缓存了如何解决呢
直接写重点:使用keep-alive如果你想页面不仅刷新页面还保存原来的搜索内容,则是要使用activated生命周期函数,那么用在什么地方呢,你在哪个周期函数里面去调用api获取数据的,就把那个周期函数给替换成activated就可以了,一般都是在created和mounted中获取数据,就直接用activated就可以了...
继续访问
【vue路由跳转外部链接】
vue-router跳转外部链接
继续访问
vue跳转外部链接
支持安卓
继续访问
写评论
踩
分享
axios不能拦截403错误这个在Vue中很简单的就解决了,直接引入router,然后,但是在React中,我们要使用进行跳转(不使用=‘/login’?,但是怎么在中拿到props呢?又是个问题。
在axios中做统一拦截,在响应拦截中,判断后端返回的状态码code是否为403,403的话表示sessionId过期,我们需要让页面跳转到登录页面,凡是返回403有两种:
1、第一种是浏览器返回的403;
2、第二种是后端开发人员返回的403;
所以我们将响应拦截改成这样即可:
importaxiosfromaxios
importhttpsfromhttps;
import{message}fromantd;
importeventBusfrom@/utils/eventBus
*如果有多个请求都是403就需要这个开关来控制message的展示个数
*展示一个之后关闭阀门
letmessageFlag=false;
*props是页面传入的
*用于路由跳转当403的时候进行路由跳转
letprops=;
*当使用这个js的时候会监听这个自定义事件
*改变props的值
eventBus.$on((propsObj)={
props=propsObj
},axiosInterceptorsFun)
constgoLoginFun=()={
if(messageFlag===false){
(登录已过期,请重新登录!)
messageFlag=true
setTimeout(()={
messageFlag=false
=*5;//设置默认超时10s
constinstance=({
rejectUnauthorized:false,
(function(response){
(response,接口返回)
let{data:{code}}=response
if(code===403){
goLoginFun()
returnresponse
},function(error){
(error,error3)
if(==403){
goLoginFun()
}elseif(){
if(==403){
goLoginFun()
goLoginFun()
登录后复制
主要是在这个js中我们监听了自定义事件axiosInterceptorsFun:
eventBus.$on((propsObj)={
props=propsObj
},axiosInterceptorsFun)
登录后复制
这个事件我们可以在跟组件中进行挂载的时候监听触发:
importeventBusfrom@/utils/eventBus
componentDidMount(){
eventBus.$emit(axiosInterceptorsFun,)
登录后复制
当跟组件实例化的时候,axios已经开始监听axiosInterceptorsFun这个事件,在中触发,所以在中我们已经拿到了props这个对象,这个对象上有我们需要的路由跳转方法。
内容:
consteventBus={
evnetList:[],
//监听事件
$on(callbackFun,name){
callbackFun
//触发事件
$emit(name,data){
(element={
if(name===){
exportdefaulteventBus
登录后复制
*@Descripttion:
*@version:
*@Author:ZhangJunQing
*@Date:2021-12-0914:04:03
*@LastEditors:ZhangJunQing
*@LastEditTime:2022-03-0814:42:56
consteventBus={
evnetList:[],
//监听事件
$on(callbackFun,name){
//同名事件过滤
if((i====name)){
=(i=!==name)
=[,{name,callbackFun}]
//触发事件
$emit(name,data=){
if(!name){
returnfalse;
(element={
if(name===){
//取消事件监听
$remove(name=){
//(name,取消事件监听)
=[(i=!==name)]
exportdefaulteventBus
登录后复制
这篇文章是对eventBus的解释:
React非父子组件之间的事件传递
toke过期失效---提示并跳转到登录页面token过期自动跳转到登录页面
设置token有效期为2小时,超过两小时token失效,接口返回结果:{code:0,msg:token过期,}
每次路由跳转都会对token进行判断,设置一个全局的beforeEach钩子函数,如果token存在就跳到你所需要的页面,否则直接跳转到登录页面,让用户重新存取token
全局路由钩子
(async(to,from,next)={
??????//获取token
??????consthasToken=getToken()
??????if(hasToken){
????????//token存在,如果当前跳转的路由是登录界面
????????if(===/login){
??????????//ifisloggedin,redirecttothehomepage
??????????next({
????????????path:/
????????}else{
??????????//在这里,就拉去用户权限,判断用户是否有权限访问这个路由
????????}catch(error){
??????????//removetokenandgotologinpagetore-login
??????????(user/resetToken)
??????????(error||HasError)
??????????next(`/login?redirect=${}`)
??????}else{
????????//token不存在
????????if(()!==-1){
??????????//如果要跳转的路由在白名单里,则跳转过去
??????????next()
????????}else{
??????????//否则跳转到登录页面
??????????next(`/login?redirect=$
debug启动单步调试,确认后台代码执行完跳到前台页面 F12 看你的页面是否有bug导致加载失败
你先把你在servlet里面的那个跳转页面改成一个新建成的页面然后页面随便打点东西,test一下,如果显示了,那说明你servlet没有问题问题是你的jsp页面那就应该是jsp页面有错误信息,你可以利用火狐test一下,他会提示报错位置如果你jsp页面使用了jstl el 这写标签库的话,有可能写做了.把他们去掉试试排错一步一步走,把问题,细化那样问题就暴露了
标签: 跳转servlet、 跳转servlet空白、本文地址: https://yihaiquanyi.com/article/92efae4fc8a9c3ee7570.html
上一篇:门户网站是新媒体吗门户网站是新媒体平台吗...