0

I am making a bulletin board using Apache Tomcat 10 version jsp language in Eclipse environment. I'm trying to create a file upload and download function, but the multipartrequest shows a red line. please tell me how to solve. ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ

My code:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="bbs.BbsDAO"%>
<%@ page import="file.FileDAO" %>
<%@ page import="java.io.File" %>
<%@ page import="bbs.Bbs"%>
<%@ page import="java.io.PrintWriter"%>
<%
    request.setCharacterEncoding("UTF-8");
%>
<%@ page import ="file.FileDAO" %>
<%@ page import ="file.FileDTO" %>
<jsp:setProperty name="bbs" property="bbsTitle" />
<jsp:setProperty name="bbs" property="bbsContent" />

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 게시판 웹사이트</title>
    </head>

<body>
<%
String userID = null;
if(session.getAttribute("userID")!=null);{
userID = (String) session.getAttribute("userID");
}
BbsDAO bbsDAO = new BbsDAO();
Bbs bbs= new Bbs();
bbs.setBbsID(bbsDAO.getNewNext());
int bbsID = bbs.getBbsID();
String directory = application.getRealPath("/upload/"+bbsID+"/");

File targetDir = new File(directory);
if(!targetDir.exists()){
    targetDir.mkdirs();
}

int maxSize = 1024 * 1024 * 500;
String encoding = "UTF-8";

MultipartRequest multipartRequest
= new MultipartRequest(request, directory, maxSize, encoding,
                new DefaultFileRenamePolicy());

String fileName = multipartRequest.getOriginalFileName("file");
String fileRealName = multipartRequest.getFilesystemName("file");

String bbsTitle = multipartRequest.getParameter("bbsTitle");
String bbsContent = multipartRequest.getParameter("bbsContent");
bbs.setBbsTitle(bbsTitle);
bbs.setBbsContent(bbsContent);

if(userID == null){
    PrintWriter script = response.getWriter();
    script.println("<script>");
    script.println("alert('로그인을 하세요')");
    script.println("location.href='login.jsp'");
    script.println("</script>");
} else{
    
    System.out.println("write action : check bbs parameter" + bbs.getBbsTitle());
    
    if(bbs.getBbsTitle() == null || bbs.getBbsContent() == null){
        PrintWriter script = response.getWriter();
        script.println("<script>");
        script.println("alert('입력이 안 된 사항이 있습니다.')");
        script.println("history.back()");
        script.println("</script>");
    }else{
        
        System.out.println("getNewNext before bbsDAO.write : " + bbs.getBbsID());
        int result = bbsDAO.write(bbs.getBbsTitle(), userID, bbs.getBbsContent());
        
        
        
        new FileDAO().upload(fileName, fileRealName, bbs.getBbsID());
        out.write("filename : " + fileName + "<br>");
        out.write("realfilename : " + fileName + "<br>");
        
        if (result==-1){
            PrintWriter script = response.getWriter();
            script.println("<script>");
            script.println("alert('글쓰기에 실패했습니다.')");
            script.println("history.back()");
            script.println("</script>");    
        }
        else{
            PrintWriter script = response.getWriter();
            script.println("<script>");
            script.println("location.href = 'bbs.jsp'");
            script.println("</script>");
        }
    }
}
%>  
</body>
</body>
</html>

Error code:

    The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from required .class files
The type javax.servlet.ServletRequest cannot be resolved. It is indirectly referenced from required .class files
The constructor MultipartRequest(HttpServletRequest, String) refers to the missing type HttpServletRequest
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:498)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:397)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:777)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
bin
  • 3
  • 3
  • Tomcat 10 is JakartaEE based not JavaEE and as such no `javax.servlet` exists but a `jakarta.servlet`. Or in other words you are using incmopatible things. – M. Deinum Oct 07 '22 at 10:05

0 Answers0