1

I am currently "assessing" a JSP application. I am no jsp expert, i have some experience in jsp with jsf development only. I suspected that the technology of this application was in very old j2ee. Is there anyway to find out the detail version, technology, or platform from source code? Or roughly how old of the jsp version is this application? For following is some the ui code. Please take a look, i find it that it's ridiculously complicated compared with current jsp and jsf platform.

<jsp:include page='header.jsp'></jsp:include>
<%
  StringBuffer htmlBuffer = new StringBuffer();
 // get viewbean interface and cast it to view bean object accordingly
 com.nihb.mtrd.bean.AdminVB vb = 
 (com.nihb.mtrd.bean.AdminVB)session.getAttribute(com.nihb.mtrd.bean.AbstractBean.VIEW_BEAN);
 //display message if there is any
 String message = vb.getMessage();
 if(message == null){ 
  message = new String("");
 } 
 htmlBuffer.append("<p><b><font face='Verdana' size='1' color='#cc0000'>");
 htmlBuffer.append( message );
 htmlBuffer.append("</font></b></p>");
 htmlBuffer.append("<div align='center'>");
 htmlBuffer.append("<center>");
 htmlBuffer.append("<table border='3' cellspacing='0' style='border-collapse: collapse' width='800 ' cellpadding='0' id='AutoNumber7' height='9' bgcolor='#E8F3FF' bordercolor='#E8F3FF'>");
 htmlBuffer.append("<TR><td width='800' height='7' colspan='8'>");
 htmlBuffer.append("<br>");
 if( vb.getIndicator() != 0){
  htmlBuffer.append("<a href='MtrdHome.jsp?mysubmit=");
  htmlBuffer.append(com.nihb.mtrd.bean.AbstractBean.ACTION_HYPERLINK_CHANGE_PASSWORD); 
  htmlBuffer.append("' >");
 }
 htmlBuffer.append("<b><font face='Verdana' size='2'>Change Password</font></b>");
 if( vb.getIndicator() != 0){
  htmlBuffer.append("</a>");
 } 

 htmlBuffer.append("</td></TR>"); 

thanks all!

Update: here are the top lines of my web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp">
    <!-- snip -->
</web-app>
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
Jack
  • 177
  • 4
  • 19

1 Answers1

3

What you're facing is indeed a bad design. All that HTML has got to be placed plain in the JSP file. Those beans has just to be prepared by a servlet or eventually <jsp:useBean> and accessed by EL (those ${} things). The flow control has got to be done by JSTL taglib.

As to the concrete question, the JSP version is basically definied in root declaration of web.xml which must indicate the Servlet version. The JSP version is coupled to the Servlet version. Here's an overview:

Servlet  JSP  J2EE/Java EE (releasedate)
3.0      2.2  Java EE 6 (Dec 2009)
2.5      2.1  Java EE 5 (May 2006)
2.4      2.0  J2EE 1.4 (Nov 2003)
2.3      1.2  J2EE 1.3 (Sep 2001)

Update: as per your edit, that's clearly Servlet 2.3. It's however good to know that you can redeclare it as Servlet 2.4 or higher whenever the servletcontainer in question supports it. If it is for example Tomcat 5.5, then you can redeclare it as Servlet 2.4 and utilize JSP 2.0. Or if it is for example Tomcat 6.0, then Servlet 2.5/JSP 2.1. Or Tomcat 7.0 with Servlet 3.0/JSP 2.2.

Community
  • 1
  • 1
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • thank u for the reply. Is this "http://java.sun.com/dtd/web-app_2_3.dtd" what you meant? – Jack Jan 22 '11 at 04:46
  • can u tell me how old is this technology? – Jack Jan 22 '11 at 04:49
  • It's *ancient* (out of life, actually). I added dates to the overview. Servlet 2.5 is basically the minimum standard nowadays. It would however be a world of difference if you'll be able to upgrade to Servlet 2.4, when EL (those `${}` things) was builtin in JSP 2.0. Otherwise you're dependent on taglibs like JSTL 1.0 or, worse, *scriptlets* as you're facing now. – BalusC Jan 22 '11 at 04:51
  • You're welcome. By the way, the HTML `` tag is been deprecated since 1998... – BalusC Jan 22 '11 at 04:55