daoweiqu_ 2022-05-23 07:51 采纳率: 100%
浏览 46
已结题

The type javax.servlet.jsp.PageContext cannot be resolved.错误

问题遇到的现象和发生背景

做smartupload上传图片的时候一直出现The type javax.servlet.jsp.PageContext cannot be resolved.错误。按照网上的说法导入了包也不行,请问是怎么回事呢?(代码应该没错)

问题相关代码,请勿粘贴截图
upload_do.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%@ page import="java.text.*"%>
<%@ page import="com.jspsmart.upload.SmartUpload" %>
<%@ page import="com.jspsmart.upload.Request" %>
<%@ page import="com.jspsmart.upload.File" %>
<html>
<head><title>处理上传的文件</title></head>
<body>
<h2>处理上传的文件</h2>
<hr>
<%
    /*******************************************************/
    /*     该实例中尽可能多地用到了一些方法,在实际应用中            */
    /*     我们可以根据自己的需要进行取舍!                         */
    /*******************************************************/
    // 新建一个SmartUpload对象,此项是必须的
    SmartUpload myupload = new SmartUpload();
    // 初始化,此项是必须的
    myupload.initialize(pageContext);
    // 限制每个上传文件的最大长度
    myupload.setMaxFileSize(1024*1024);
    // 限制总上传数据的长度
    myupload.setTotalMaxFileSize(5*1024*1024);
    // 设定允许上传的文件(通过扩展名限制)
    myupload.setAllowedFilesList("doc,txt,jpg,gif");
    // 设定禁止上传的文件(通过扩展名限制)
    myupload.setDeniedFilesList("exe,bat,jsp,htm,html");

    try{
        myupload.upload();  //上传文件,此项是必须的
        int count = myupload.getFiles().getCount();    //统计上传文件的总数
        Request myRequest = myupload.getRequest();  //取得Request对象
        String rndFilename,fileExtName,fileName,filePathName,memo;
        Date dt = null;
        SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        for (int i=0;i<count;i++){//逐一提取上传文件信息,同时可保存文件
            File file = myupload.getFiles().getFile(i);    //取得一个上传文件
            if (file.isMissing()) continue;    //若文件不存在则继续
            fileName = file.getFileName();//取得文件名
            filePathName = file.getFilePathName(); //取得文件全名
            fileExtName = file.getFileExt();// 取得文件扩展名
            dt = new Date(System.currentTimeMillis()); //取得随机文件名
            Thread.sleep(100);
            rndFilename= fmt.format(dt)+"."+fileExtName;
            memo = myRequest.getParameter("memo"+i);

            //显示当前文件信息
            out.println("第"+(i+1)+"个文件的文件信息:<br>");
            out.println("文件名为:"+fileName+"<br>");
            out.println("文件扩展名为:"+fileExtName+"<br>");
            out.println("文件全名为:"+filePathName+"<br>");
            out.println("文件大小为:"+file.getSize()+"字节<br>");
            out.println("文件备注为:"+memo+"<br>");
            out.println("文件随机文件名为:"+rndFilename+"<br><br>");
            //将文件另存,以应用的根目录作为上传文件的根目录(需确保目录存在)
            file.saveAs("/upload/" + rndFilename, myupload.SAVE_VIRTUAL);
        }
        out.println(count+"个文件上传成功!<br>");
    }catch(Exception ex){
        out.println("上传文件超过了限制条件,上传失败!<br>");
        out.println("错误原因:<br>"+ex.toString());
    }
%>
</body>
</html>

img

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • sinJack 2022-05-23 08:42
    关注

    myupload.initialize(pageContext);
    pageContext这个对象来自于哪里?

    upload_do.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
     
    <%@ page import="java.text.*"%>
    <%@ page import="com.jspsmart.upload.SmartUpload" %>
    <%@ page import="com.jspsmart.upload.Request" %>
    <%@ page import="com.jspsmart.upload.File" %>
    <html>
    <head><title>处理上传的文件</title></head>
    <body>
    <h2>处理上传的文件</h2>
    <hr>
    <%
        /*******************************************************/
        /*     该实例中尽可能多地用到了一些方法,在实际应用中            */
        /*     我们可以根据自己的需要进行取舍!                         */
        /*******************************************************/
        // 新建一个SmartUpload对象,此项是必须的
        SmartUpload myupload = new SmartUpload();
        // 初始化,此项是必须的
        ServletConfig config=getServletConfig();
        myupload.initialize(config,request,response);
        // 限制每个上传文件的最大长度
        myupload.setMaxFileSize(1024*1024);
        // 限制总上传数据的长度
        myupload.setTotalMaxFileSize(5*1024*1024);
        // 设定允许上传的文件(通过扩展名限制)
        myupload.setAllowedFilesList("doc,txt,jpg,gif");
        // 设定禁止上传的文件(通过扩展名限制)
        myupload.setDeniedFilesList("exe,bat,jsp,htm,html");
     
        try{
            myupload.upload();  //上传文件,此项是必须的
            int count = myupload.getFiles().getCount();    //统计上传文件的总数
            Request myRequest = myupload.getRequest();  //取得Request对象
            String rndFilename,fileExtName,fileName,filePathName,memo;
            Date dt = null;
            SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            for (int i=0;i<count;i++){//逐一提取上传文件信息,同时可保存文件
                File file = myupload.getFiles().getFile(i);    //取得一个上传文件
                if (file.isMissing()) continue;    //若文件不存在则继续
                fileName = file.getFileName();//取得文件名
                filePathName = file.getFilePathName(); //取得文件全名
                fileExtName = file.getFileExt();// 取得文件扩展名
                dt = new Date(System.currentTimeMillis()); //取得随机文件名
                Thread.sleep(100);
                rndFilename= fmt.format(dt)+"."+fileExtName;
                memo = myRequest.getParameter("memo"+i);
     
                //显示当前文件信息
                out.println("第"+(i+1)+"个文件的文件信息:<br>");
                out.println("文件名为:"+fileName+"<br>");
                out.println("文件扩展名为:"+fileExtName+"<br>");
                out.println("文件全名为:"+filePathName+"<br>");
                out.println("文件大小为:"+file.getSize()+"字节<br>");
                out.println("文件备注为:"+memo+"<br>");
                out.println("文件随机文件名为:"+rndFilename+"<br><br>");
                //将文件另存,以应用的根目录作为上传文件的根目录(需确保目录存在)
                file.saveAs("/upload/" + rndFilename, myupload.SAVE_VIRTUAL);
            }
            out.println(count+"个文件上传成功!<br>");
        }catch(Exception ex){
            out.println("上传文件超过了限制条件,上传失败!<br>");
            out.println("错误原因:<br>"+ex.toString());
        }
    %>
    </body>
    </html>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 5月23日

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败