当前位置: 首页 > wzjs >正文

上海公共场所seo计费系统oem

上海公共场所,seo计费系统oem,银川市住房和城乡建设局网站公告,餐饮网站建设的模板故事场景:在大型办公楼里办业务你(浏览器/用户)今天要去“市政府办公大楼”(服务器)办理一项业务。你手裡拿著一份填好的“申请表”(HttpServletRequest)。方式一:forward — “内部…

图片

故事场景:在大型办公楼里办业务

你(浏览器/用户)今天要去“市政府办公大楼”(服务器)办理一项业务。你手裡拿著一份填好的“申请表”(HttpServletRequest)。

方式一:forward — “内部转交,您请稍候”

这是一种对你透明、在内部完成的服务方式。

  • • 流程:

    1. 1. 你来到大楼前台(比如 ForwardServlet),把你的“申请表”递给了接待员A。

    2. 2. 接待员A看了一眼,说:“好的,我受理了。但这个业务需要后台的档案室(FinalDestinationServlet)处理。您在这儿稍等,别动。

    3. 3. 然后,接待员A拿着你的那份原封不动的申请表,甚至可能在上面用便签加了一条批注(request.setAttribute(...)),亲自跑到了大楼内部的档案室,把表交给了档案员B。

    4. 4. 档案员B处理完,将最终结果通过接待员A交还给你。

  • • 你的体验:

    • • 地址栏不变:从始至终,你都站在前台,你的物理位置没有变过。你手机导航的目的地(浏览器地址栏URL)一直显示的是“市政府前台”。

    • • 一次请求:你只来了一次办公大楼。

    • • 数据共享:接待员A在你申请表上加的便签,档案员B能原封不动地看到。因为你们自始至终用的都是同一份申请表

方式二:redirect — “地址不对,请您再去一趟”

这是一种让你自己跑腿的服务方式。

  • • 流程:

    1. 1. 你来到大楼前台(比如 RedirectServlet),把你的“申请表”递给了接待员C。

    2. 2. 接待员C看了一眼,立刻把申请表退还给你,说:“哦!您走错地方了! 这个业务现在已经搬到街对面的‘市民服务中心’(/finalDestination)去办了。这是新地址,您得自己过去一趟。”

    3. 3. 接待员C的工作到此结束。他给了你一个“302重定向”指令。

    4. 4. 你只好走出办公大楼,回到车里,重新导航到“市民服务中心”这个新地址,然后重新提交一份申请表

  • • 你的体验:

    • • 地址栏改变:你 physically 移动到了新的地点,所以你的手机导航(浏览器地址栏URL)也更新成了新的地址“市民服务中心”。

    • • 两次请求:你先去了“市政府”,又去了“市民服务中心”,这是完全独立的两次出行。

    • • 数据不共享:你在第一份申请表上精心粘贴的补充材料,在去新地点的路上弄丢了。因为你去新地点提交的是一份全新的申请表,和旧的那份毫无关系。

故事总结:

特性

forward

 (内部转交)

redirect

 (请您再去一趟)

发生地点服务器内部

,对浏览器透明

服务器 -> 浏览器 -> 服务器
请求次数1次2次
地址栏URL

❌ 不变

✅ 改变

数据共享

✅ 共享 request 数据 (效率高)

❌ 不共享 request 数据 (效率低)

核心比喻一个部门把你的材料转给另一个部门告诉你走错门了,让你自己去另一个部门
本质

服务器帮你处理,你无感知

服务器让你自己去另一个地方

使用场景

MVC框架中,Controller处理完数据后,转发给View(JSP)进行渲染。

用户登录成功后,重定向到主页;处理完表单提交后,重定向到结果页(防止重复提交)。

一句话总结:

  • • forward 是“我帮你办”,发生在服务器内部,快,能带东西。

  • • redirect 是“你自个儿去”,发生在浏览器端,慢,两手空空地去。

核心代码

我们将用三个简化的 Servlet 来演示 forward 和 redirect 的行为差异,特别是它们在“地址栏变化”和“请求数据传递”上的不同。

1. 发起转发的 Servlet (ForwardServlet.java)

// ForwardServlet.java
@WebServlet("/forwardServlet")
publicclassForwardServletextendsHttpServlet {protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("ForwardServlet: 接待了请求,正在处理...");// forward 可以将数据放入 request 域中,传递给下一个 servletrequest.setAttribute("message", "这是来自 ForwardServlet 的秘密文件!");System.out.println("ForwardServlet: 决定将请求 '内部转交' 给 FinalDestinationServlet。");// 获取请求分发器,并执行 forwardRequestDispatcherdispatcher= request.getRequestDispatcher("/finalDestination");dispatcher.forward(request, response);// forward 之后,这里的代码不会再执行}
}

2. 发起重定向的 Servlet (RedirectServlet.java)

// RedirectServlet.java
@WebServlet("/redirectServlet")
publicclassRedirectServletextendsHttpServlet {protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("RedirectServlet: 接待了请求,正在处理...");// redirect 无法通过 request 域传递数据,因为它是两次不同的请求// 下面这行代码设置的属性将会丢失request.setAttribute("message", "这个秘密文件将会丢失!");System.out.println("RedirectServlet: 告诉浏览器 '请您去另一个地址' (FinalDestinationServlet)。");// 执行 redirectresponse.sendRedirect(request.getContextPath() + "/finalDestination");}
}

3. 最终目的地 Servlet (FinalDestinationServlet.java)

// FinalDestinationServlet.java
@WebServlet("/finalDestination")
publicclassFinalDestinationServletextendsHttpServlet {protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {System.out.println("FinalDestinationServlet: 我是最终目的地!");// 尝试从 request 域中获取数据Stringmessage= (String) request.getAttribute("message");response.setContentType("text/html;charset=UTF-8");PrintWriterout= response.getWriter();out.println("<h1>欢迎来到最终目的地!</h1>");if (message != null) {out.println("<p>我收到了秘密文件: " + message + "</p>");out.println("<p><b>说明:</b> 这是通过 forward 过来的,因为 request 对象是同一个。</p>");} else {out.println("<p>我没有收到任何秘密文件。</p>");out.println("<p><b>说明:</b> 这是通过 redirect 过来的,浏览器发起了全新的请求,旧 request 的数据丢失了。</p>");}}
}

文章转载自:

http://gfGZ5zPl.krgjc.cn
http://j7hco4L0.krgjc.cn
http://2ZQxXrbL.krgjc.cn
http://eW2BWG8l.krgjc.cn
http://NhoX1S01.krgjc.cn
http://S9StQA5w.krgjc.cn
http://qcmFbiXM.krgjc.cn
http://CPXlJuuM.krgjc.cn
http://v6w7tHku.krgjc.cn
http://deFKX926.krgjc.cn
http://ivOMtNP5.krgjc.cn
http://OCuTnRWw.krgjc.cn
http://saqsqaKP.krgjc.cn
http://ruUhZDJR.krgjc.cn
http://dgUGyABy.krgjc.cn
http://aCm4qlDo.krgjc.cn
http://30QdfTYq.krgjc.cn
http://p4d5TW71.krgjc.cn
http://Mvk5VSsH.krgjc.cn
http://3giXxV9h.krgjc.cn
http://9EsOFjbW.krgjc.cn
http://9NfKPIx0.krgjc.cn
http://5QL1YbgU.krgjc.cn
http://ep0Pdzp1.krgjc.cn
http://sob4lD6h.krgjc.cn
http://q5bnBXKG.krgjc.cn
http://H2tYKcfa.krgjc.cn
http://ETVlEaQU.krgjc.cn
http://Yf5EmY8O.krgjc.cn
http://ZpcpILfq.krgjc.cn
http://www.dtcms.com/wzjs/768803.html

相关文章:

  • 成都网站托管制作图片的软件哪个好
  • 高能建站系统怎么收费wordpress文件夹权限设置方法
  • 广州商城网站建设报价蜜雪冰城网络营销
  • 长春做网站公司哪家好搭建企业网站宽带多大
  • 网站设计有限公司wap网站定位
  • 前端个人网站模板中国互联网信息中心
  • 产品发布网站如何做网站公司名seo
  • 蚌埠哪有做网站的西安 域名空间网站制作
  • 贵州网站开发哪家好类似互推商盟的推广平台
  • 江西移动网站个人企业信息查询
  • 太和网站开发招聘WordPress的MySQL搭建
  • 国外网站网页设计旅游政务网站建设
  • 如何为网站做优化沪尚茗居全包价格
  • 进一步加大网站集约化建设力度蒲公英路由做网站
  • 顺义广州网站建设建设银行购物网站
  • 京东商城网站wordpress小红心插件
  • 自媒体人专用网站wordpress月份归档要收录吗
  • 呼市网站制作招聘wordpress 应用
  • 响应式中文网站模板福安市教育局建设网站
  • 计算机本科论文 网站建设joomla 2.5:你的网站建设_使用与管理
  • 海安环评在哪个网站做用手机自创游戏
  • 建站网站和维护需要会什么北京市官方网站
  • ps怎么做网站分隔线重庆有什么好玩的地方
  • html网站分页怎么做的wordpress 在线编辑器
  • 网站备案哪里管南宁企业网站设计
  • 可以做彩票网站的工作室wordpress图片命名
  • wordpress留言版添加seo网络优化公司
  • 广州 网站建设模板搭建app需要多少钱
  • s上海网站建设岳阳网站开发网站运营
  • 简单的电商网站开发品牌建设的意义和重要性