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


  


是什么


  
  上面的线吗?
  page =“ landing.do?”实际指的是什么?
  问号是什么?在“ landing.do”旁边?表示?
  


正如Bozho正确指出的那样,在我的web.xml中,一个名为“ action”的servlet被映射为处理“ * .do”(如下所示)。


<servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

</servlet-mapping>



现在


  我如何找出与“ landing.do”相对应的servlet“动作”的实际作用?


谢谢。

最佳答案

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

我还需要提到的是,在您的示例中,如果要指定相对网址,则在/声明中的第一个字符应为page



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

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

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

更多信息here



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


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

关于java - JSP:转发问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3976938/

10-12 01:08