我刚刚开始进行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文件(如果存在),并根据操作(Action
,DispatchAction
,LookupDispatchAction
),必须找到其映射并查看Struts调用的方法。
在您的示例中,我的假设是您的landing.do
是Action
类型。因此,请阅读execute()
方法的作用。实际上,所有操作都是Struts的execute()
。其他动作只是Template Method
模式,它知道通过某些映射调用哪种方法。
关于java - JSP:转发问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3976938/