简体   繁体   中英

to find out the class files associated with html page generated by web server

我有运行在我的机器上的Web应用程序(用Java编写),我需要找出与此Web服务器生成的html页面关联的类文件。如何找到这个?

If it is only for debugging purposes, put the following in JSP:

<% Thread.dumpStack(); %>

You can find the compiled JSP classes in the /work folder of the appserver in question.

If it is for business purposes, then you really need to elaborate more about the problem / functional requirement for which you think that this is the solution. Then we may come up with -much- better solutions. To the point, you need to pass this information from the business layer to the view layer yourself anyway.

I have had some use of the following snippets when trying to figure out from what parts of a page is built, struts-tiles in particular can be a hassle.

In the web.xml file of your webapp (at the very bottom), add the following:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <include-coda>/WEB-INF/myurl.jspf</include-coda>
    </jsp-property-group>
</jsp-config>

And in the WEB-INF folder add a file called myurl.jspf with the following content:

<%=request.getServletPath()%><br>
<%
String name = this.getClass().getName();
String INF = "INF";
int pos = name.indexOf("INF");
if(pos  > -1){
    name = name.substring(pos + INF.length());
    name = name.replaceAll("\\.", "/");
    name = name.replaceAll("\\_", ".");
}
out.println(name);    
%>

I know this is hack and the page name will not be exactly the printed, but it will give you a hint of where to look.

When you have the page name (part) it is a lot easier to look in configuration files for Spring, Struts or similar frameworks for the class/controller.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM