java - 如何从源代码中找出具体的jsp技术?

标签 java jsp servlets

我目前正在“评估”一个 JSP 应用程序。我不是jsp专家,我只有jsf开发的jsp经验。我怀疑这个应用程序的技术是在非常古老的 j2ee 中。有没有办法从源代码中找出详细的版本、技术或平台?或者这个应用程序的 jsp 版本大概有多少?以下是一些 ui 代码。请看一下,我发现它与当前的 jsp 和 jsf 平台相比复杂得离谱。

<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>"); 

谢谢大家!

更新:这是我的 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>

最佳答案

你面对的确实是一个bad design .所有这些 HTML 都必须放在 JSP 文件中。这些 bean 只需由 servlet 或最终准备好 <jsp:useBean>并被 EL 访问(那些 ${} 东西)。流控制必须由 JSTL taglib 完成。

具体问题,JSP版本基本定义在web.xml的根声明中它必须指示 Servlet 版本。 JSP 版本耦合到 Servlet 版本。这是一个概述:

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)

更新:根据您的编辑,这显然是 Servlet 2.3。不过,只要所讨论的 servletcontainer 支持,您可以将其重新声明为 Servlet 2.4 或更高版本,这很好。例如,如果是 Tomcat 5.5,那么您可以将其重新声明为 Servlet 2.4 并使用 JSP 2.0。或者如果是 Tomcat 6.0,则 Servlet 2.5/JSP 2.1。或带有 Servlet 3.0/JSP 2.2 的 Tomcat 7.0。

关于java - 如何从源代码中找出具体的jsp技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4766175/

相关文章:

java - 每秒 3K 传入请求的重复检测,推荐的数据结构/算法?

java - 如何将 google OAuth 与 java servlet 集成?

java - 为什么 org.ietf、org.omg、org.w3c 和 org.xml 是 POJO 的一部分?

java - 在未来的代码中使用同步/锁

java - 检查 Type 实例是否等于泛型类型

html - body onLoad 什么时候被调用?

javascript - 表单提交后从下一页删除浏览器工具栏

java - GAE 中远程 API servlet 的备用路径?

java - 如何将 JsonNode 作为电子邮件附件发送

java - 如何在 Struts 2 中处理表单上的索引属性按钮