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 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持