MVC/JavaServlet编译报错:程序包不存在

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 包名+文件名进行编译,编译结果如下:

img

报错如下:

img

再尝试不加“.;”编译,报错如下:

img


直接找不到Bean的所在包了。
网上找的教程说是和maven有关系,按照部分教程进行操作后也无济于事。
才疏学浅,初接触JSP,对一些报错的解决方向毫无头绪,恳请页友高抬贵手。

你命令写错了,用 javac -cp .;servlet-api.jar 包名+文件 试一下(-cp后面是有空格的)
也可能是你java版本太低了,用 javac -classpath .;servlet-api.jar 包名+文件 试一下

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
根据您提供的信息,可能有以下问题导致编译报错:

  1. 没有在编译命令中添加 servlet-api.jar 的路径

按照您提供的信息,编译命令为:

javac -cp.;servlet-api.jar 包名+文件名

根据报错信息来看,它找不到类 tom.jiafei.ClassTest6_Bean,这可能是因为没有在编译命令中添加 servlet-api.jar 的路径所致。可以尝试将编译命令改为:

javac -cp ".;servlet-api.jar" 包名+文件名

确保 servlet-api.jar 的路径正确添加。

  1. Bean 所在的包路径与导入路径不匹配

根据您的代码,ClassTest6_Bean 所在的包为 moon.sum.tom.jiafei,但是在 servlet 中导入的是 tom.jiafei。这可能会导致找不到类的问题。

您可以将导入语句修改为:

import moon.sum.tom.jiafei.ClassTest6_Bean;

并重新编译。

如果以上两种方法还是无效,可以尝试以下操作:

  1. 检查您的项目配置,确保 servlet-api.jar 已经添加到了项目依赖中。

  2. 检查您的 Bean 类是否编译成功,路径是否正确。

希望对您有所帮助。
如果我的回答解决了您的问题,请采纳!