奇怪,我把jspsmartupload下的WEB-INF/classes/下的文件全部烤到examples下的WEB-INF/classes/下后,不再报package com.jspsmart.upload does not exist
错误。
但是如果我把相应的东西烤到root目录下的WEB-INF/下确不行(root下的WEB-INF没有子目录classes,只好新建一个classes,烤到classes里面的文件也和先前examples环境下是一样),为什么这样确仍旧会报package com.jspsmart.upload does not exist
难道是我没有在server.xml和web.xml里设置一个文件夹作为整个jsp的文件夹,还是什么原因?
错误。
但是如果我把相应的东西烤到root目录下的WEB-INF/下确不行(root下的WEB-INF没有子目录classes,只好新建一个classes,烤到classes里面的文件也和先前examples环境下是一样),为什么这样确仍旧会报package com.jspsmart.upload does not exist
难道是我没有在server.xml和web.xml里设置一个文件夹作为整个jsp的文件夹,还是什么原因?
1。把jspsmartupload下的WEB-INF/classes/下的文件(com目录)全部拷到tomcat_home/common/classes/下2。是把jspsmartupload下的WEB-INF/classes/下的文件(com目录)全部拷到root下的classes之后要修改tomcat_home/conf/server.xml文件,去掉
<!--
<Context path="" docBase="ROOT" debug="0"/>
-->
两边的注释符号,再还可能要修改tomcat_home/conf/web.xml去掉
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
两边的注释
但是,还有别的错误:
C:\jakarta-tomcat-4.1.24\work\Standalone\localhost\_\1\upload_jsp.java:9: package DBstep.iDBManager2000 does not exist
[javac] import DBstep.iDBManager2000.*;
[javac] ^
[javac] C:\jakarta-tomcat-4.1.24\work\Standalone\localhost\_\1\upload_jsp.java:88: package DBstep does not exist
[javac] DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
[javac] ^
[javac] C:\jakarta-tomcat-4.1.24\work\Standalone\localhost\_\1\upload_jsp.java:88: package DBstep does not exist
[javac] DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
[javac] ^
[javac] 3 errors
不知道,iDBManager2000();是什么,我是按在别人的例子代码写的。
你自己写一个,然后名字改成你自己的
package DBstep does not exist表示你自己的环境里没有这个目录或者你没有打这样一个包,所以如果你没有DBstep这个目录的话,就不要照着别人的写,自己新建目录就行了。
这里为何用“?”
还有,prestmt.setString(1, "aaa1");为何两个参数,各表示什么
prestmt.setString(2, "0000");为何两个参数,各表示什么
prestmt.setInt(3, fileSize);为何两个参数,各表示什么
prestmt.setString(4, DbaObj.GetDateTime());
prestmt.setBinaryStream(5,fis,(int)file.length());怎么三个参数,各表示什么含义?
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
//实例化上载bean
com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
//设置上载的最大值
mySmartUpload.setMaxFileSize(500 * 1024*1024);
//上载文件
mySmartUpload.upload();
//循环取得所有上载的文件
for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
//取得上载的文件
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
if (!myFile.isMissing())
{
//取得上载的文件的文件名
String myFileName=myFile.getFileName();
//取得不带后缀的文件名
String suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
//取得后缀名
String ext= mySmartUpload.getFiles().getFile(0).getFileExt();
//取得文件的大小
int fileSize=myFile.getSize();
//保存路径
String aa=getServletContext().getRealPath("/")+"jsp\\";
String trace=aa+myFileName;
//取得别的参数
String explain=(String)mySmartUpload.getRequest().getParameter("text");
String send=(String)mySmartUpload.getRequest().getParameter("send");
//将文件保存在服务器端
myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
//下面的是将上载的文件保存到数据库中
//将文件读到流中
java.io.File file = new java.io.File(trace);
java.io.FileInputStream fis = new java.io.FileInputStream(file);
out.println(file.length());
//打开数据库
ResultSet result=null;
String mSql=null;
PreparedStatement prestmt=null;
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
//将文件写到数据库中
mSql="insert into list (name,password,size,date,MarkBody) values (?,?,?,?,?)";
prestmt =DbaObj.Conn.prepareStatement(mSql);
prestmt.setString(1, "aaa1");
prestmt.setString(2, "0000");
prestmt.setInt(3, fileSize);
prestmt.setString(4, DbaObj.GetDateTime());
prestmt.setBinaryStream(5,fis,(int)file.length());
DbaObj.Conn.setAutoCommit(true) ;
prestmt.executeUpdate();
DbaObj.Conn.commit();
out.println(("上载成功!!!").toString());
}
else
{ out.println(("上载失败!!!").toString()); }
}//与前面的if对应
%>这里面哪个是数据库的名称,用户和口令。
还有 prestmt.setBinaryStream(5,fis,(int)file.length());中的fis是什么东西,没有看到那里有定义么?
String mSql=null;
PreparedStatement prestmt=null;
DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
DbaObj.OpenConnection();
怎么没有数据库名和口令用户?