Feedback on a design decision?
I have reached a stalemate with a coworker in a discussion about a
particular design issue and I'm interested in getting a few other
opinions. We are developing an MVC web application using servlets and
JSP. Currently, we use a servlet as a controller that instantiates a
singleton data access bean which returns data transfer objects. The
point of contention is the use of a "constants" class which contains
configuration information. A typical "constants" object looks something
like this:
public class MyDemoApplicationConstants {
public static final String DSN = "myDsn";
public static final String PARAMETERS_JSP =
"selectSomeReportParameters.jsp";
public statc final String DISPLAY_REPORT_JSP =
"reportDisplay.jsp";
}
This is it. There are no methods in this class. It contains only public
static final variables.
Our servlet would have something like this:
....
public void handlePageRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException,
JspException {
// instantiate data access object
MyDataAccessObject whatever = new
MyDataAccessObject(MyDemoApplicationConstants.DSN);
String pageAction = request.getParameter("pageAction");
if (pageAction.equals("showReportParametersForm")) {
// processing
// forward to JSP
this.goToPage(MyDemoApplicationConstants.PARAMETERS_JSP ,
request, response);
return;
}
else if (pageAction.equals("showReport")) {
// read in variables and call appropriate methods on data
access bean
// set result in request
this.goToPage(MyDemoApplicationConstants.DISPLAY_REPORT_JSP, request,
response);
return;
}
}
Now, the specific issue here is what are the advantages and
disadvantages of keeping the configuration in a separate "constants"
class? Keep in mind that this configuration is not application-wide,
but is specific to the servlet and may be required by objects
instantiated by the servlet. Why not keep it in the servlet? I'm also
interested in any opinions on the use of a configuration parameter for
the filenames of JSP's. Keep in mind there is no logic to dynamically
change the JSP that we are forwarding to. Why use a variable instead of
just writing the name? Any feedback is greatly appreciated.