首页
学习
活动
专区
圈层
工具
发布

JSP:前题
EN

Stack Overflow用户
提问于 2010-10-20 10:42:51
回答 3查看 655关注 0票数 0

我刚刚开始对web应用程序的开发。我有一个只有一行的index.jsp。

什么是

  • 上面的行行吗?
  • page="landing.do?"实际上指的是?
  • "landing.do?"旁边的问号"“意味着什么?

正如Bozho正确指出的那样,名为“action”的servlet映射为处理中的"*.do" (如下图所示)。

动作*.do

现在

我如何找出与"landing.do"对应的servlet“操作”实际做了什么?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-20 11:24:18

<jsp:forward>将客户端请求转发给page属性上声明的url。

我还需要提到的是,在您的示例中,如果要指定一个相对的/,即:

实际上,它被转换为重定向(如果是localhost)。

http://localhost:8080/MyAPP/landing.do?(你的会被翻译成http://localhost:8080/MyAPPLanding.do吗?)

?允许您将application/x-www-form-urlencoded参数附加到声明中。

更多信息,这里

要了解landing.do的功能,请执行以下操作:

  • 转到您的struts-config.xml (在项目中的WEB-INF文件夹中找到)文件,并找到path="/landing"属性的任何操作(<action>)。
  • 一旦找到您的操作,就会有一个名为type的属性(在该操作中)。类型是Struts调用以执行操作的动作类的类名。类名是完全限定的名称。
  • 打开类的java文件(如果存在的话),根据操作(ActionDispatchActionLookupDispatchAction),您必须找到它的映射并查看Struts调用的方法。
  • 在您的示例中,我的假设是您的landing.doAction类型的。因此,阅读execute()方法所做的工作。实际上,所有的操作都是Struts的execute()。其他操作只是Template Method模式,它知道通过某种映射调用什么方法。
票数 4
EN

Stack Overflow用户

发布于 2010-10-20 10:54:11

这一行将把用户转发到站点的另一页,特别是landing.do。

page="landing.do?“实际上是指网站landing.do的某些页面。我相信这个页面是用Struts框架编写的。(但也可以是其他的)

问号是什么?旁边是"landing.do?“在这种情况下没有任何意义。一般在"?“之后应该有一个请求参数列表。在这种情况下,只会没有参数。

servlet更新:更新:您应该找到servlet类,它被映射到那个servlet名称。在此之后,您将能够尝试理解servlet类的功能。此外,查看Struts教程或规范,了解Struts框架工作流。

票数 1
EN

Stack Overflow用户

发布于 2010-10-20 10:54:43

  • 您可能映射了一个servlet来处理您的*.do中的web.xml。
  • ?在这里没有任何意义-通常它标志着get参数的开始(比如?param=value)
  • forward用指定的内容更改当前页面,而客户端不知道发生了更改。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3976938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档