2013-04-11 29 views
0

我有一个项目,我可以看到JSP的......然而Jboss的显示我的servlet所以在地址栏中所有我可以看到JSP网页是:如何知道哪些是显示我的servlet

“appservleer?= AppDev”

这是一个不是实际地址的例子......但是只有那些信息,我怎么知道JBoss当时正在显示哪个JSP。

还是我错误地理解了这个Jboss,servlet,JSP?

一些指导将不胜感激。

谢谢。

+0

感谢您的答案家伙。 – 2013-04-11 16:13:28

回答

2

除非开发人员决定给出提示,否则您无法知道哪个jsp正在显示。

A jsp只是servlet用来呈现响应的视图技术。也就是说,通常,jsp将被解析并生成html。但是,servlet的开发人员可能会决定自己写入响应。因此,即使您的网址为www.mydomain.com/page.jsp,也无法真正了解您是从jsp还是从其他来源获得的。没有什么能保证您在浏览器中看到的回复是从jsp生成的。

+0

正是我的观点......我不确切知道生成该特定网页的具体内容。但是我可以访问代码,因此我可以访问我所做的web.xml,并且我发现地址栏上显示的名称,但我不知道下一步该如何查找正在显示的JSP。 – 2013-04-11 16:06:39

+0

@StevenHernandez你可以通过'url-mapping'元素将'Servlet'映射到哪个url的循环。如果您可以访问servlet代码,那么可以查看它们的实现并检查它们可能通过“RequestDispatcher”转发给哪个'jsp'。会有一些相对路径指向它。 – 2013-04-11 16:07:58

+0

ahhh有道理,所以@pravat在他的回答中有一些逻辑。但是所有这些添加过程都是通过跟踪在地址栏中显示的servlet名称从web.xml完成​​的? – 2013-04-11 16:10:41

1

确定使用哪个JSP进行渲染的唯一方法是查看映射到(在您的示例中)"appservleer"下的servlet的源代码。

查看web.xml哪个servlet与此路径映射,并打开此servlet的源代码。然后找出执行路径,从doGet(...)doPost(...)方法开始,并查看它最终转发到哪个JSP ...

祝你好运。

+0

是的,我找到了web.xml和servlet的名称,但这是我的源代码中的确切名称?所以它会是appservleer.java? – 2013-04-11 16:12:00

+0

应将servlet定义为包含元素的元素。 元素的内容是您正在寻找的确切类。例如。 “com.mycompany.AppServleer”。然后查看Web项目的源代码目录并打开相应的java文件,例如“src/com/mycompany/AppServleer.java” – 2013-04-12 08:06:40

1

您应该始终从web.xml文件开始,该文件最终会引导您显示实际的jsp文件。从servlet映射开始,检查为哪个servlet调用了url。然后深入到servlet中,找出它被重定向到的jsp。如果您正在使用任何应用程序框架,请查找实现以查找映射。对于例如在春季,Spring配置文件或控制器类将告诉你呼叫被重定向到的位置。

+0

也许你是对的,我需要跟踪实际的JSP然而@Sotorios说了一些关于不能够知道它是否真的由JSP生成的......那么,其他可能是? – 2013-04-11 16:09:04

+0

我同意。响应也可以由servlet本身生成,这不是一个好习惯,但是,你无法阻止它。而且,无论它是由jsp还是servlet生成的,如果从web.xml开始,则始终可以跟踪到根。 – pravat 2013-04-11 16:42:35

+0

恰恰是因为这意味着如果servlet本身显示网页,通过到达servlet我会做回溯。 – 2013-04-11 16:45:12

相关问题