JSP初学者,java servlet编译遇到找不到包的问题。
先上代码:
package moon.sum;
import tom.jiafei.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/classtestsix")
public class ClassTest6_Servlet extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
ClassTest6_Bean digitBean=null;
digitBean=new ClassTest6_Bean();
request.setAttribute("digitBean",digitBean);
String sideone=request.getParameter("sideone");
String sidetwo=request.getParameter("sidetwo");
String sidethree=request.getParameter("sidethree");
if(sideone==null||sidetwo==null||sidethree==null)
return;
if(sideone.length()==0||sidetwo.length()==0||sidethree.length()==0)
return;
double sideA=Double.parseDouble(sideone);
double sideB=Double.parseDouble(sidetwo);
double sideC=Double.parseDouble(sidethree);
if(sideA+sideB<sideC||sideA+sideC<sideB||sideB+sideC<sideA)
return;
double area=0;
double re=0;
re=(sideA+sideB+sideC)/2;
area=Math.sqrt(re*(re-sideA)*(re-sideB)*(re-sideC));
digitBean.setSideone(sideA);
digitBean.setSidetwo(sideB);
digitBean.setSidethree(sideC);
digitBean.setArea(area);
RequestDispatcher dispatcher=request.getRequestDispatcher("ClassTest6.jsp" );
dispatcher.forward(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
doPost(request,response);
}
}
创建了一个JavaBean对象“digitBean”,用于存储输入的边和计算出的面积,Bean所在的包是tom.jiafei。
按照课本的说法,需要在servlet的父目录输入javac -cp.;servlet-api.jar 包名+文件名进行编译,编译结果如下:
报错如下:
再尝试不加“.;”编译,报错如下:
你命令写错了,用 javac -cp .;servlet-api.jar 包名+文件
试一下(-cp后面是有空格的)
也可能是你java版本太低了,用 javac -classpath .;servlet-api.jar 包名+文件
试一下
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
根据您提供的信息,可能有以下问题导致编译报错:
按照您提供的信息,编译命令为:
javac -cp.;servlet-api.jar 包名+文件名
根据报错信息来看,它找不到类 tom.jiafei.ClassTest6_Bean,这可能是因为没有在编译命令中添加 servlet-api.jar 的路径所致。可以尝试将编译命令改为:
javac -cp ".;servlet-api.jar" 包名+文件名
确保 servlet-api.jar 的路径正确添加。
根据您的代码,ClassTest6_Bean 所在的包为 moon.sum.tom.jiafei,但是在 servlet 中导入的是 tom.jiafei。这可能会导致找不到类的问题。
您可以将导入语句修改为:
import moon.sum.tom.jiafei.ClassTest6_Bean;
并重新编译。
如果以上两种方法还是无效,可以尝试以下操作:
检查您的项目配置,确保 servlet-api.jar 已经添加到了项目依赖中。
检查您的 Bean 类是否编译成功,路径是否正确。
希望对您有所帮助。
如果我的回答解决了您的问题,请采纳!