简单地说,我已经编译好了一个javaBean,生成了.class文件,并在jsp页面中成功调用和访问了。现在我又通过这个.class文件编译生成了一个.jar包,并放在了tomcat的安装目录下的common\lib,比如是 D:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib下。在jsp程序中,在预编译语句中添加了 <%@page import="mm.hi"%> 这句话。结果总说找不到包(Only a type can be imported. mm.hi resolves to a package)。现在我想问问,有谁知道如何在jsp中访问一个自己编译好的包?考虑到我领悟力奇低,请尽量详细点。假如现有一个名叫 hi.java 的文件,里面内容如下:
public class hi
{
private String myWords;
public hi()
{
myWords = "Hello. This is a pretty world!";
System.out.println(myWords);
}
public String getMyWords()
{
return myWords;
}
}
经过编译后生成了hi.class文件;已经可以通过javaBean的调用成功访问了;
现在应该如何生成一个正确的.jar文件并可在jsp中正常访问呢?在dos下编译时要注意哪些地方呢?
生成好的.jar文件应该放置在什么位置比较正确?
在jsp中调用语句怎么写才是正确的?无论对错,请尽量回答。考虑到本人天生迟钝异常,请尽可能地详细点。拜托了。
public class hi
{
private String myWords;
public hi()
{
myWords = "Hello. This is a pretty world!";
System.out.println(myWords);
}
public String getMyWords()
{
return myWords;
}
}
经过编译后生成了hi.class文件;已经可以通过javaBean的调用成功访问了;
现在应该如何生成一个正确的.jar文件并可在jsp中正常访问呢?在dos下编译时要注意哪些地方呢?
生成好的.jar文件应该放置在什么位置比较正确?
在jsp中调用语句怎么写才是正确的?无论对错,请尽量回答。考虑到本人天生迟钝异常,请尽可能地详细点。拜托了。
for example:package com.tom.www;public class hi
{...
在jsp页面中导入你相应的类就可以了
现在应该如何生成一个正确的.jar文件并可在jsp中正常访问呢?
jar -cvf kkk.jar xxx.class在dos下编译时要注意哪些地方呢?
注意包的层次生成好的.jar文件应该放置在什么位置比较正确?
如果是B/S程序,只能放在web-inf/lib目录中
如果是c/s程序,放到classpath中在jsp中调用语句怎么写才是正确的?
import 包名/类名(com.tom.Class)
{
private String myWords;
public hi()
{
myWords = "Hello. This is CJ's world!";
System.out.println(myWords);
}
}然后我把这个文件放在了 D:\jsp\WEB-INF\lib 下;我设置的虚拟路径是 <Context path="/jsp" docBase="D:/jsp/" debug="0" reloadable="true" crossContext="true">
通常我把我写的javaBean(.class文件)都放在 D:\jsp\WEB-INF\classes 目录下;而现在我把hi.java放在了 D:\jsp\WEB-INF\lib 下;然后在命令提示符下,我进入到了 D:\jsp\WEB-INF\lib 下,现执行 javac hi.java,生成了 hi.class; 然后运行 jar cfv mine.jar hi.class,生成了mine.jar;然后在jsp页面中我在预编译行中加上了 <%@page import="com.tom.mine"%> 这句话。最后重启 tomcat,运行jsp页面,最后的结果还是说找不到类: Only a type can be imported. com.tom.mine resolves to a package我又把 hi.java 放到了tomcat安装目录下的common/lib 下(当然系统变量 classpath 已经正确设置),再进入dos,再进入正确的目录,再编译;再重启 tomcat;再运行页面;还是报相同的错。有谁知道我到底什么地方做错了呢?到底该如何正确地调用自己编译的包呢?
放入WEB-INF/lib目录 要进行配置
web.xml
里面要有一个WEB-INF文件夹,在下面建立一个classes文件夹,一个lib文件夹,一个web.xml,你的类放在classes里面就可以了,比如是package c.b.a
如果引用了别的包,放在lib文件夹里面
JSP里面import c.b.a就可以
web.xml开始可以用TOMCAT例子里的
com.tom.mine 是肯定不对的,这只是包的名字,后面还要加上类的名字,其码要com.tom.mine.*
<%@page import="com.tom.mine.hi"%>
{
private String myWords;
public hi()
{
myWords = "Hello. This is a pretty world!";
System.out.println(myWords); //这句话无所谓的;
}
public String getMyWords()
{
return myWords;
}
}我把它保存在了 D:\jsp\WEB-INF\lib 下;我设置的虚拟路径是 <Context path="/jsp" docBase="D:/jsp/" debug="0" reloadable="true" crossContext="true">
通常我把我写的 javaBean(.class文件)都放在 D:\jsp\WEB-INF\classes 目录下;而现在我把 hi.java 放在了 D:\jsp\WEB-INF\lib 下;然后在命令提示符下,我进入到了 D:\jsp\WEB-INF\lib 下,再执行 javac hi.java,生成了 hi.class; 然后运行 jar cfv mine.jar hi.class,生成了mine.jar;然后在jsp页面中我在预编译行中加上了 <%@page import="com.tom.mine.*"%> 这句话;并在下面的源程序中添加了如下几句话:hi myHi; // 这句话通过了;没报错;
String tem = myHi.getMyWords(); // 这句话不行了,说是没定义方法 getMyWords()
String tem2 = hi.getMyWords(); // 这句话也挂了,理由同上;没定义方法然后我重启tomcat,运行页面,结果就出现了上述的错误,shuo说是类hi没定义方法 getMyWords() ,原句如下: The method getMyWords() is undefined for the type hi 还重复了两遍。有谁知道到底该怎么调用这个包吗?正确的方法是怎样的呢?考虑到本人天生迟钝异常,请尽量详细点好吗?
String tem = myHi.getMyWords(); // 这句话不行了,说是没定义方法 getMyWords()
String tem2 = hi.getMyWords(); // 这句话也挂了,理由同上;没定义方法
myHi没有初始化啊
改成hi myHi=new hi()试试