Servlets
The servlet probe splits the call tree for different URL invocations, so you can analyze different requests
separately. What constitutes a "different" request is governed by the "URL splitting" setting of the servlet
probe. By default, only the request path is retained, and all parameters are discarded.
When you select the option to split the servlet request with scripts, you can click on the "Edit scripts"
button to set up one or more scripts that determine how the call tree is split. The
[Add] button shows you a number
of pre-defined templates that are useful starting points. For example, the "Split by request URI" script
has the same effect as the default mode for URL splitting.
In reality, there may be certain request parameters that should be retained for URL splitting, such as parameters
that do not identify user input, but determine the type of the request. For example, you may have a
dispatcher servlet and a parameter "controller" that determines the type of the request. In that case,
you would probably like to retain the parameter "controller" and change the script to
servletRequest.getRequestURI() + "/controller=" + servletRequest.getParameter("controller")
The script is passed two parameters, first an instance of com.jprofiler.api.agent.ScriptContext
that allows you to store data across subsequent requests, and - more importantly - an instance of
javax.servlet.http.HttpServletRequest that gives you access to all information regarding the
intercepted servlet request.
When you add a second script, a second splitting level is introduced. For example, the first script could split by
session ID, and the second script by request URI. In that way, you could look at the activity generated by a
specific user in isolation. At the top, you could add a third script that splits by the context path. This
would enable you to analyze multiple deployed web applications separately.
You can temporarily disable scripts with the "Disable selected" action in the tool bar or in the context menu.
This allows you to experiment with multiple scripts without deleting and re-entering the script entries.
All nodes in the call tree that are created by URL splitting are prefixed with "HTTP:".