[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 << 1",numb<<1 );
buildRow( sb, "Shift >> 1", numb>>1 );
buildRow( sb, "Shift >>> 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 << 1",numb<<1 );
buildRow( sb, "Shift >> 1", numb>>1 );
buildRow( sb, "Shift >>> 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