[Opensource] Embedding JavaCodes in JSP

Baiju baiju.tg at tatainfotech.com
Fri Dec 19 20:23:42 PST 2003


hi

Tomcat Server does not allow you to use java class from default package. You have to include your class inside a package like follows.

package mypackage;
public class ShiftTable extends java.lang.Object{
        protected int numb;
        public ShiftTable(){ }

        public void setNumb(String s)
        {
                this.numb=Integer.parseInt(s);
        }
        public String padBinary(int n){
                String tmp="00000000000000000000000"+Integer.toBinaryString(n);
                return tmp.substring( tmp.length()-32);
        }
        void buildRow(StringBuffer sb,String hdr, int n){
                sb.append("<tr><th");
                sb.append(hdr);
                sb.append("/th><td>");
                sb.append(Integer.toString(n));
                sb.append("</td><td>");
                sb.append( padBinary( n ));
                sb.append("</td></tr>\r\n");
         }
         public java.lang.String getTable(){
         StringBuffer sb=new StringBuffer();
         sb.append("\r\n\r\n<table align=\"center\" border=\"2\""+
                "cellpadding=\"5\">\r\n<caption>");
         sb.append("Shifting"+numb+"<br>\r\n");
         sb.append("</caption>\r\n<tr><th>Operation</th><th>Decimal</th>"+
         "<th>Hex</th>32 bit Binary</th></tr> \r\n");
         buildRow( sb, "Original",numb);
         buildRow( sb, "Shift &lt;&lt; 1",numb<<1 );
         buildRow( sb, "Shift &gt;&gt; 1", numb>>1 );
         buildRow( sb, "Shift &gt;&gt;&gt; 1", numb >>> 1);
         sb.append("</Table>\r\n");
         return sb.toString();
         }
}

and in your jsp page 

<HTML>
<HEAD>
<TITLE>Table Building</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<FONT FACE=VERDANA>
<H@ ALIGN=CENTER>Java Shift Operators
</h2><br>
<%@ page import="mypackage.*"%>

<%@ page language="java" errorPage="error.jsp"%>
<jsp:useBean id="tableBean" scope="page" class="mypackage.ShiftTable">
</jsp:useBean>
<jsp:setProperty name="tableBean" property="*" /> 
<%= tableBean.getTable() %>
</BODY>
</HTML>

You have to keep the class file inside the web-inf/classes/mypackage directory.


then it will work.

bye

regards
baiju







  ----- Original Message ----- 
  From: padmasini 
  To: opensource at jcorporate.com 
  Sent: Friday, December 19, 2003 12:08 PM
  Subject: [Opensource] Embedding JavaCodes in JSP


  Hi


  This is my JSP codes
  <HTML>
  <HEAD>
  <TITLE>Table Building</TITLE>
  </HEAD>
  <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
  <FONT FACE=VERDANA>
  <H@ ALIGN=CENTER>Java Shift Operators
  </h2><br>
  <%@ page language="java" errorPage="error.jsp"%>
  <jsp:useBean id="tableBean" scope="page" class="ShiftTable">
  </jsp:useBean>
  <jsp:setProperty name="tableBean" property="*" /> 
  <%= tableBean.getTable() %>
  </BODY>
  </HTML>


  Shift TAble.java

  public class ShiftTable extends java.lang.Object{
          protected int numb;
          public ShiftTable(){ }

          public void setNumb(String s)
          {
                  this.numb=Integer.parseInt(s);
          }
          public String padBinary(int n){
                  String tmp="00000000000000000000000"+Integer.toBinaryString(n);
                  return tmp.substring( tmp.length()-32);
          }
          void buildRow(StringBuffer sb,String hdr, int n){
                  sb.append("<tr><th");
                  sb.append(hdr);
                  sb.append("/th><td>");
                  sb.append(Integer.toString(n));
                  sb.append("</td><td>");
                  sb.append( padBinary( n ));
                  sb.append("</td></tr>\r\n");
           }
           public java.lang.String getTable(){
           StringBuffer sb=new StringBuffer();
           sb.append("\r\n\r\n<table align=\"center\" border=\"2\""+
                  "cellpadding=\"5\">\r\n<caption>");
           sb.append("Shifting"+numb+"<br>\r\n");
           sb.append("</caption>\r\n<tr><th>Operation</th><th>Decimal</th>"+
           "<th>Hex</th>32 bit Binary</th></tr> \r\n");
           buildRow( sb, "Original",numb);
           buildRow( sb, "Shift &lt;&lt; 1",numb<<1 );
           buildRow( sb, "Shift &gt;&gt; 1", numb>>1 );
           buildRow( sb, "Shift &gt;&gt;&gt; 1", numb >>> 1);
           sb.append("</Table>\r\n");
           return sb.toString();
           }
  }

  i  compiled my ShiftTabe.java and included the class file in the same directory in which table1.jsp is available

  but on loading table1.java i am geeting the error as 





  Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error

------------------------------------------------------------------------------



  type Exception report

  message Internal Server Error

  description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

  exception 

org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.


An error occurred at line: 10 in the jsp file: /table1.jsp

Generated servlet error:
C:\Program Files\Apache Tomcat 4.0\work\localhost\mywebapp\table1$jsp.java:64: Class org.apache.jsp.ShiftTable not found.
                ShiftTable tableBean = null;
                ^


An error occurred at line: 10 in the jsp file: /table1.jsp

Generated servlet error:
C:\Program Files\Apache Tomcat 4.0\work\localhost\mywebapp\table1$jsp.java:67: Class org.apache.jsp.ShiftTable not found.
                    tableBean= (ShiftTable)
                                ^


An error occurred at line: 10 in the jsp file: /table1.jsp

Generated servlet error:
C:\Program Files\Apache Tomcat 4.0\work\localhost\mywebapp\table1$jsp.java:72: Class org.apache.jsp.ShiftTable not found.
                            tableBean = (ShiftTable) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "ShiftTable");
                                         ^
3 errors, 1 warning

	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:285)
	at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
	at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
	at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
	at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
	at java.lang.Thread.run(Thread.java:536)



------------------------------------------------------------------------------

           

  Plz help me out in this as soon as possible


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.jcorporate.com/pipermail/opensource/attachments/20031220/198b06b6/attachment-0002.htm


More information about the Opensource mailing list