Java Web 怎么获取从jsp页面 上传文件的路径

public Workbook read(String fileName, boolean flag) throws Exception {
Workbook wb = null;
String extraFileName = "";
if (flag) {
extraFileName = this.getExtensionName(fileName);
if (!"XLS".equals(extraFileName.toUpperCase())) {
throw new BusinessException("文件格式不正确,必须为2003版的excel文件");
}

        File f = new File(fileName);
        FileInputStream is = new FileInputStream(f);
        POIFSFileSystem fs = new POIFSFileSystem(is);
        wb = new HSSFWorkbook(fs);
        is.close();
    } else {
        extraFileName = this.getExtensionName(fileName);
        if (!"XLSX".equals(extraFileName.toUpperCase())) {
            throw new BusinessException("文件格式不正确,必须为2007版的excel文件");
        }

        wb = new XSSFWorkbook(fileName);
    }

             就是怎么获取这个filename?我是从jsp页面上传的文件

5个回答

你Web层用的什么框架?

qq_35516286
qq_35516286 spring MVC
2 年多之前 回复

一般不是有个文本框来接受文件路径吗?如果没有文本框的话,建议使用个隐藏域,将你获取到的filename 赋值给你那个隐藏域。

在java后台代码里返回你文件上传后所在的路径
类似这样,

jsp上上传的文件 http请求 相当于把他存在了request里 你要的路径是什么路径?看你方法参数名 就文件名称的形式 ,request里也能去到路径,只不过这个路径是文件在服务器上的临时位置。
web的上传 你这个方法肯定不行!!!! 而且上传时要把request中存的文件内容 用i/o 流 写进目的地址。
楼主搜搜度娘吧

你是要问上传之前的路径 还是上传之后的路径 老哥 问题 问清楚呀

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java项目(ps:不是web项目),是开发接口的,项目中没有jsp页面,那访问时路径该怎么写呢?
java项目(ps:不是web项目),是开发接口的,项目中没有jsp页面,那访问时路径该怎么写呢?
Java Web 后台controller中的方法返回一个jsp页面后。。。。。
Java项目jsp页面使用window.location="url路径“跳转后,经过后台controller中的方法返回一个新的jsp页面,但是新页面不立即加载,而是把同样的URL请求不断地重复发向后台同样的方法中很多次后才加载,而且页面内容(一个表格)重复加载,导致前台页面卡死(因为加载了很多同样的表格,查看页面源代码是一个body里面加载了很多table,而我的jsp页面就一个table的代码,页面过长滚动条的滑块都变得很小,卡的拉不动),请问是什么原因。我用的是chrome浏览器,换成Firefox后就不会出现这种情况。 在图片中的代码第9行断点调试时,按F8后页面没加,此时同样的请求再次进入方法,9行断点再次触发,如此十几次,页面倒是出现了,但是重复加载了很多。 ![图片说明](https://img-ask.csdn.net/upload/201612/06/1481031503_497292.png)
java web 图片上传控制台不报错但文件传不出去
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全 String savePath = this.getServletContext().getRealPath("/WEB-INF/upload"); File file = new File(savePath); //判断上传文件的保存目录是否存在 if (!file.exists() && !file.isDirectory()) { System.out.println(savePath+"目录不存在,需要创建"); //创建目录 file.mkdir(); } //消息提示 String message = ""; try{ //使用Apache文件上传组件处理文件上传步骤: //1、创建一个DiskFileItemFactory工厂 DiskFileItemFactory factory = new DiskFileItemFactory(); //2、创建一个文件上传解析器 ServletFileUpload upload = new ServletFileUpload(factory); //解决上传文件名的中文乱码 upload.setHeaderEncoding("UTF-8"); //3、判断提交上来的数据是否是上传表单的数据 if(!ServletFileUpload.isMultipartContent(request)){ //按照传统方式获取数据 return; } //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项 List<FileItem> list = upload.parseRequest(request); for(FileItem item : list){ //如果fileitem中封装的是普通输入项的数据 if(item.isFormField()){ String name = item.getFieldName(); //解决普通输入项的数据的中文乱码问题 String value = item.getString("UTF-8"); //value = new String(value.getBytes("iso8859-1"),"UTF-8"); System.out.println(name + "=" + value); }else{//如果fileitem中封装的是上传文件 //得到上传的文件名称, String filename = item.getName(); System.out.println(filename); if(filename==null || filename.trim().equals("")){ continue; } //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt //处理获取到的上传文件的文件名的路径部分,只保留文件名部分 filename = filename.substring(filename.lastIndexOf("\\")+1); //获取item中的上传文件的输入流 InputStream in = item.getInputStream(); //创建一个文件输出流 FileOutputStream out = new FileOutputStream(savePath + "\\" + filename); //创建一个缓冲区 byte buffer[] = new byte[1024]; //判断输入流中的数据是否已经读完的标识 int len = 0; //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 while((len=in.read(buffer))>0){ //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中 out.write(buffer, 0, len); } //关闭输入流 in.close(); //关闭输出流 out.close(); //删除处理文件上传时生成的临时文件 item.delete(); message = "文件上传成功!"; } } }catch (Exception e) { message= "文件上传失败!"; e.printStackTrace(); } request.setAttribute("message",message); request.getRequestDispatcher("/message.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } <form action="${pageContext.request.contextPath}../UploadHandleServlet" enctype="multipart/form-data" method="post"> <input type="submit" value="提交"> </form> </body> </html> <body> ${message} </body> </html> > 控制台不报错 提示2http://lenovo-pc:8080/Two../UploadHandleServlet Failed to load resource: the server responded with a status of 404 (Not Found) ``` ``` ``` ``` ``` ```
idea的编译问题,Java web(SSM框架)项目未生成jsp文件,一直报404,求帮忙
开发工具用的是idea15.0.5, ![图片说明](https://img-ask.csdn.net/upload/201608/15/1471247231_401382.png) 图中web下view中放的是jsp,css等文件,上面的out文件夹中放的是编译生成的文件。 ![![图片说明](https://img-ask.csdn.net/upload/201608/15/1471247432_874866.png) 图片说明](https://img-ask.csdn.net/upload/201608/15/1471247424_662382.png) 每次通过上图中的方式进行重新部署发布,但是在out文件夹中却不生成jsp页面,导致在页面访问的时候路径一直是404,求解决办法
java web找不到模板文件
我的服务开启正常,但找不到模板文件:/commonjs/login.jsp,文件的路径是存在且正确的,数
新人求教,WEB-INF下的jsp的读取
做了一个页面底部模板,起初模板文件直接放在WebRoot下,使用时<%@ include file="footer.jsp"%> 但现在要求就是必须把文件放在在WEB-INF下的jsp文件夹下,再用<%@ include file="footer.jsp"%>路径就不对了,请教各位前辈们怎么使用哪个模板
springMVC中jsp页面访问路径404错误?
配置如下 spring-servlet.xml <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="cache" value="true" /> <property name="prefix" value="/views/" /> <property name="suffix" value=".jsp" /> </bean> Web.xml <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> 我在JSP页面的路径是WebContent/views/EnterpriseInfoManag/pollutionBasInfo.jsp controller的代码是: @Controller public class PollutionBasInfoController { @Resource private PollutionBasInfoService pollutionBasInfoService; @RequestMapping("/findPollutionBasInfo.do") public @ResponseBody List<TBasEnterprise> findPollutionBasInfo(){ List<TBasEnterprise> list = pollutionBasInfoService.findPollutionBasInfo(); return list; } 我用JS访问controller: url:'findPollutionBasInfo.do' 但是地址就自动变成 http://localhost:8080/SKPWMS/views/EnterpriseInfoManag/findPollutionBasInfo.do ,访问controller的路径自动在前面加上了/views/EnterpriseInfoManag,导致404错误,求指导,为什么会这样,应该怎样解决啊???
springMVC框架访问web-inf下的jsp文件
使用springMVC,一般都会使用springMVC的视图解析器,大概会这样配置 [code="java"]<property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property>[/code] 当我的control返回[code="java"]return new ModelAndView("admin/index"); [/code] 实际访问的就是/WEB-INF/jsp/admin/index.jsp这个页面,那么放在web-inf下只能服务端可以访问保证了安全性。如果index.jsp中有这样一个代码 [code="java"] <frame src="left.jsp"/> [/code],top.jsp和index.jsp都在admin目录下,这样访问index就会404. 此时纠结了:1、top.jsp如果一定要和index.jsp在同目录下,就要加个control,为一个连接加个control太不值。2、如果不在同一目录下放到webRoot根目录下,index.jsp和top.jsp就不在同一个地方,维护时候不太方便,3、另一种情况springMVC视图解析器路径修改为<property name="prefix" value="/jsp/"></property>即在项目根目录下,这样客户端也可直接访问此目录,没有安全性可言,到底该怎么做呢?
jsp中 <jsp:include> 中使用绝对路径的问题
这里我主要是在讲自己在解决这个问题过程中对具体问题的理解,有可能前后矛盾,因为我是把我的认识过程顺序的说出来,想让大家帮忙指出不对的地方。 因为问题解决了,可是道理认识歪了,后患无穷啊。特别是对我这个非科班出身的2手程序员。 PS:不知道怎么在入门讨论中发普通的帖子。提示我没积分了,那就发个提问帖,本来这贴目的其实也是在“提问” ------------------------------------------------------------------------------------------------ 从一个需求说起(自己之前对WEB项目中的相对路径和绝对路径有一些了解) 需求是这样的,要在JSP中应用<jsp:include>标签引入一个公用的页面 [quote]<jsp:include page="../templates/header.jsp"></jsp:include>[/quote] 就是写类似上面的一段语句。 不过这段代码的要求是要在本项目中任意一个JSP文件中都管用的, 说白了就是在项目现有的任意一个页面中加入相同的这样一段代码,都能达到引入某个固定页面的效果。 所以这里不能用相对路径。原因我自己总结了两条: 1,没办法保证对页面的访问方式,是直接访问还是通过其它请求跳转访问,访问的URL不确定,相对路径达不到要求。 2,项目中的页面本身目录结构不可能都正好在一个文件夹中。 所以自然想到用绝对路径,所以开始我是这样写的 [quote] <jsp:include page="<%=request.getContextPath()%>/templates/header.jsp"></jsp:include> [/quote] 这么写,当时没多想,就是直接仿照引入其它图片CSS什么的写的。比如 [code="java"]<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/xx.css"/>[/code] 页面报错,之后想想,TOMCAT(我用的是TOMCAT)解析JSP时,对<jsp:include>的解析有别于其它。 [code="java"] <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/xx.css"/> 只是按照基本规则简单的解析为几个输出语句: out.write("<link rel=\"stylesheet\" type=\"text/css\" href=\""); out.print(request.getContextPath()); out.write("/css/xx.css\"/>\r\n"); [/code] 而对<jsp:include>的解析却要特殊一些,它没有直接输出字符串的语句,而是这样的: [quote] <jsp:include page="../templates/header.jsp"></jsp:include> 被解析为: org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "../templates/header.jsp", out, false); [/quote] 自己简单总结了下,JSP中对<jsp:include>标签的解析就是直接生成上面那样一条语句,而page属性的值直接作为方法的参数,也因为这个,所以page的值不能这样写page="<%=request.getContextPath()%>/templates/header.jsp"。之所以不能这样写(自己认为)也没什么道理需要讲,说白了就是JSP没这样的语法。 也就是说对于<jsp:include>标签的page属性的值,只能是一个写死的字符串。否则在JSP级别上就会有语法错误,结果是容器连对应的JAVA文件都没办法生成,更不要说真正用到的CLASS文件了。 综上,所以页面会报错。 那么这里怎么用绝对路径呢?或者说 org.apache.jasper.runtime.JspRuntimeLibrary.include方法是怎么用的? GOOGLE了下 也没找到什么对自己有用的(自己看得懂的)东西。 又尝试了其它几种形式 [code="java"]<jsp:include page="/项目名/templates/header.jsp"></jsp:include> 解析为 org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/项目名/templates/header.jsp", out, false);[/code] [code="java"]<jsp:include page="http://localhost:8080/项目名/templates/header.jsp"></jsp:include> 解析为 org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "http://localhost:8080/项目名/templates/header.jsp", out, false);[/code] 以上2种尝试,对于标签的解析结果符合之前我的结论,JSP顺利的生成了最后的CLASS文件。 可是访问时继续报错。 "/项目名/templates/header.jsp”“http://localhost:8080/项目名/templates/header.jsp” 这两种路径就是WEB项目中绝对路径的用法。 而连生成的JAVA文件中,方法的参数也都已经成功把这2个参数带入了,可是仍报错。 显然org.apache.jasper.runtime.JspRuntimeLibrary.include方法对路径的解析与IE不同。 人多力量大,请经理来看看,在报错信息中发现了问题。 之前2中用法: <jsp:include page=" [color=red]/项目名/templates/header.jsp[/color]"></jsp:include> 报的错为 org.apache.jasper.JasperException: javax.servlet.ServletException: File &quot; [color=red]/项目名/templates/header.jsp[/color]&quot; not found 提示找不到的页面就是参数给出的页面"/项目名/templates/header.jsp" 这个去掉开头的“/”后面的路径应该绝对没问题,除非这个“/”不代表服务器的根目录(服务器地址) 下面 <jsp:include page=" [color=green]http://localhost:8080/项目名/templates/header.jsp[/color]"> 报的错为 org.apache.jasper.JasperException: javax.servlet.ServletException: File &quot; [color=green]/templates/http:/localhost:8080/项目名/templates/header.jsp[/color]&quot; not found 提示找不到的页面比参数在前面多出了一段 /templates/ 就是说这里并没有因为参数以“http://”开头而给予"特殊待遇",只是把它当成了一段普通的字符串,同时因为不是以“/”开头的而被当成了相对路径处理,并在前面补充上了"/templates/" 那个如果是这样,这个 "/templates/"就应该是自身所在的位置,而按此推理,这个“/”代表了??? 又实验了下 <jsp:include page=" [color=red]../templates/一个不存在的页面[/color]"></jsp:include> 报错为 org.apache.jasper.JasperException: javax.servlet.ServletException: File &quot; [color=red]/templates/一个不存在的页面[/color]&quot; not found [size=x-small][color=orange]结论[/color][/size] 观察了下,想了想,知道了,原来我饶了一个大圈,问题其实很简单: 总结了下,JSP中<jsp:include>标签的应用: 1,不支持<%= %>等动态的语法,特别是page属性的值,只能是一个写死的字符串(刚听说,其实也有自己本身的一些特殊语法,以后再学) 2,对于引入页面的路径问题,也可以常用"绝对路径"和"相对路径"两种应用方式。 绝对路径就是以“/”开头的路径,其它的包括以“http://”开头的都是相对路径,可应用“./”“../”等 相对路径 没什么好说的。强调一点,这里的相对路径也是相对于访问页面的URL的路径,本质上与页面文件在项目中的存储位置没直接关系,所以这里用相对路径时也存在由于访问URL不确定带来的问题(是不是这样呢?如文章开头说的,这里都是我自己的结论)。 主要是绝对路径的问题: 我们知道大部分情况下写在页面(不管静态还是动态)里并输出到IE中的路径都是由IE来解析的,以“/”开头的绝对路径 这个“/”代表的是服务器的根目录:比如访问URL为 http://localhost:8080/项目名/templates/template.jsp 那么“/”代表的就是 "http://localhost:8080/" 而并不带有项目名信息。 而<jsp:include>引入页面的过程,是在服务器运行向IE输出数据的过程中由JAVA程序调用执行,路径也当然由JAVA程序来解析,此时以"/"开头的绝对路径中的“/” 代表的已经是本项目的根目录了。 比如 URL为 http://localhost:8080/项目名/templates/template.jsp 那么“/”代表的就是 "http://localhost:8080/项目名/"。已经带有了项目名信息。 同时,也不用像引入JS CSS文件那样在路径前加上 <%=request.getContextPath()%> 来解决项目名本身修改的问题了。只需一个“/”就什么也不用管了。 如上所述: 需求需要的这段代码其实很简单 [quote]<jsp:include page="/templates/header.jsp"></jsp:include> [/quote] 需要被任意位置的页面引入的页面 存放在项目根目录下的templates目录下 [b]问题补充:[/b] 多谢,特别是1楼说的第一点(1.jsp:include支持<%=%>语句。),使自己有动力学一学 jsp:include 中 <%=%>到底怎么用 做了个测试: 测试1: [code="java"] <% String pageURL = "header.jsp"; %><%=pageURL%><jsp:include page= [color=red]"/templates/<%=pageURL%>" [/color]></jsp:include> 被解析成了这样一段JAVA代码 String pageURL = "header.jsp"; out.print(pageURL); org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, [color=red]"/templates/<%=pageURL%>" [/color], out, false); [/code] 这个跟我之前说的一样, page="/templates/<%=pageURL%>" 引号中的值被当成了一个字符串作为对应方法的参数,而没有对 <%=%>有什么特殊的处理。 测试2: [code="java"] <% String pageURL = "/templates/header.jsp"; %><%=pageURL%><jsp:include page= [color=red]"<%=pageURL%>" [/color]></jsp:include> 解析结果 String pageURL = "/templates/header.jsp"; out.print(pageURL); org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, [color=red]pageURL[/color], out, false);[/code] 哈哈,这次 解析的时候 成功的将 page="<%=pageURL%>" 中的pageURL当成一个变量作为对应方法的参数了 我得到的结论就是: 首先就是一楼朋友说的, 在<jsp:include>中是支持<%=%>的。 具体的语法就是,在给page属性赋值的时候,如果想应用<%=%>。那么一定不要另外添加其它字符,这样就会将<%=%>中的变量成功解析为对应方法的参数。 否则会将引号中的内容当成一个死的字符串作为参数。
java web中路径,有点搞不懂!
![图片说明](https://img-ask.csdn.net/upload/201508/16/1439736453_527060.jpg) ![图片说明](https://img-ask.csdn.net/upload/201508/16/1439736460_913311.jpg) ![图片说明](https://img-ask.csdn.net/upload/201508/16/1439736500_352385.jpg) ![图片说明](https://img-ask.csdn.net/upload/201508/16/1439736478_840164.jpg) ![图片说明](https://img-ask.csdn.net/upload/201508/16/1439736492_438125.jpg) response.sendRedirect("/myeclipse15/02/zy.jsp"); 我的理解是 response.sendRedirect("/02/zy.jsp"); 第一个“/”表示根路径,正好和文件发布在盘上位置相同。可是这样不对啊。 关于web的路径求指导
JavaWEB项目中,资源的绝对路径到底什么时候才需要加上文件夹名?
![图片说明](https://img-ask.csdn.net/upload/201910/21/1571641434_228475.png) 如图,项目的虚拟目录为/day17,在WEB-INF下有个login.jsp文件,而login.jsp里的验证码img标签的属性指向src/cn/itcast/web/servlet/CheckCodeServlet,CheckCodeServlet.java的url-pattern配置的是/checkCodeServlet。 图上img的src属性写的是 ``` src="${pageContext.request.contextPath}/checkCodeServlet" ``` 这里的 ``` ${pageContext.request.contextPath} ``` 获取的不就是项目的虚拟目录吗?那么img的src属性获取到的路径不就是下面这个了? ``` src="/day17/checkCodeServlet" ``` 而/checkCodeServlet的绝对路径不应该是下面这个吗? ``` src/cn/itcast/web/servlet/checkCodeServlet ``` 为什么只在/checkCodeServlet前面加上项目的虚拟目录/day17就能访问到这个Servlet了呢?求大神帮解惑下,感激不尽!
怎么样使用Spring MVC 将页面放到不同的路径之下?
小弟最近在学习Spring MVC,发现将所有的JSP页面放到同一个路径之下的话,页面会非常的多,看起来非常不好,我现在想让不同模块的JSP页面放到不同的路径之下。我Spring MVC配置文件中对于页面配置如下: [code="java"] <!-- 定义Spring MVC 的模板文件 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 支持JSTL --> <property name="prefix" value="WEB-INF/pages/" /> <!-- 模板的路径 --> <property name="suffix" value=".jsp" /> <!-- 模板文件的后缀--> </bean>[/code] 我现在想让不通模块的JSP页面放到不通的路径之下,比如说用户管理模块的JSP页面放到[code="java"]WEB-INF/pages/user/[/code],项目管理模块的JSP页面放到[code="java"]WEB-INF/pages/project/[/code]下。 我的Controller中的方法是这么写的: [code="java"] @SuppressWarnings("unchecked") @RequestMapping(params="method=queryAllUser",method=RequestMethod.POST) public String index(ModelMap map,HttpServletRequest request,HttpServletResponse response) { // map是用来设置View层数据的 map.put("a1", "Spring真好用"); request.getSession().setAttribute("a2", "测试Session"); List<User> list2 = userService.getAllUser(); map.put("a3", list2); return "user"; } [/code] 请问各位大侠,怎么实现?????
jsp通过tomacat虚拟路径打开提示500错误
按照这篇博客中说的: 首先可以使用记事本直接打开,也可以把JSP文件直接拖到浏览器页面就能打开,但是这完全是打开的源代码,并不是我写的JSP页面想呈现的东西。 因此只有通过配置tomcat虚拟路径才可以打开。 1、在F盘(也可以在别的硬盘)上建立一个mldnwebdemo文件夹(名字任意取) 2、在mldnwebdemo文件夹下建立一个WEB-INF (不能更改名字)子文件夹,在WEB-INF文件夹建立web.xml文件(不能更改名字)。 3、这个web.xml文件可以复制TOMCAT安装目录下的webapps/ROOT/WEB-INF/web.xml 4、打开Tomcat安装目录下的conf/server.xml文件,添加一下<Context>代码 5、打开Tomcat安装目录下的conf/web.xml文件,修改listings中的false为true 6、启动Tomcat服务器(Tomcat安装目录下的bin/Tomca7.exe)(注意:每次修改Tomcat内的.xml文件后都要重新启动Tomcat,修改的参数才能起作用) 7、打开浏览器,输入网址" http://localhost:8080/mldn/ "运行结果如下,说明配置成功 但是在运行后提示错误 HTTP Status 500 - java.lang.IllegalStateException: No output folder type: Exception report message: java.lang.IllegalStateException: No output folder description :The server encountered an internal error that prevented it from fulfilling this request. exception: org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:591) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:397) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause: java.lang.IllegalStateException: No output folder org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:677) org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:199) org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:525) org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:444) org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:408) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:578) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/8.0.27 logs. 再次进入虚拟路径打开jsp文件有提示404错误 HTTP Status 404 - /mldn/test.jsp type: Status report message: /mldn/test.jsp description: The requested resource is not available. 求解决办法 啊
jsp页面不能下载css,js文件以及图片
本人学生党一枚。自己写了一个web程序,本来是想着采用springMVc+mybatis+ajax技术写的。js后端和数据库的框架已经架构好了。但是测备架构前段代码时 遇到请求jsp文件时,jsp文件不能下载css,图片,以及js文件。 求大神指导!!!! ps:自己本地打开html文件时,所有都能正确显示。说明我的路径什么的都正确。
#java web#求助,这句代码的request的路径在哪里啊
``` play:table name="wordList" id="row" pagesize="15" export="true" class="displaytag" requestURI="/Admin/adminMember.do?method=browseWord" > ``` questURI="/Admin/adminMember.do?method=browseWord" > 就这句 -----------------------------------分界线------------------------------------- 这是struts的配置文件 ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <data-sources /> <form-beans > <form-bean name="loginForm" type="com.struts.form.LoginForm" /> <form-bean name="adminForm" type="com.struts.form.AdminForm" /> <form-bean name="cateForm" type="com.struts.form.CateForm" /> <form-bean name="merForm" type="com.struts.form.MerForm" /> <form-bean name="memLoginForm" type="com.struts.form.MemLoginForm" /> <form-bean name="memberForm" type="com.struts.form.MemberForm" /> </form-beans> <global-exceptions /> <global-forwards > <forward name="addAdmin" path="/Admin/adminAddUser.jsp" /> <forward name="sorry" path="/Admin/sorry.jsp"/> <forward name="addCate" path="/Admin/adminAddCate.jsp" /> <forward name="addMer" path="/Admin/adminAddMer.jsp" /> <forward name="addSMer" path="/Admin/adminAddSMer.jsp" /> <forward name="index" path="/default.jsp" /> <forward name="memSorry" path="/sorry.jsp" /> </global-forwards> <action-mappings > <action attribute="loginForm" input="/Admin/adminLogin.jsp" name="loginForm" parameter="method" path="/Admin/login" scope="request" type="com.struts.action.AdminLoginAction"> <forward name="logoutSuccess" path="/Admin/toLogin.htm" /> <forward name="loginSuccess" path="/Admin/adminIndex.jsp" /> </action> <action attribute="adminForm" input="/Admin/adminAddUser.jsp" name="adminForm" parameter="method" path="/Admin/admin" scope="request" type="com.struts.action.AdminAction"> <forward name="browse" path="/Admin/adminUser.jsp" /> <forward name="modify" path="/Admin/adminModiUser.jsp" /> <forward name="delete" path="/Admin/admin.do?method=browseAdmin" /> </action> <action attribute="cateForm" input="/Admin/adminAddCate.jsp" name="cateForm" parameter="method" path="/Admin/adminCate" scope="request" type="com.struts.action.AdminCateAction"> <forward name="browse" path="/Admin/adminCate.jsp" /> <forward name="modify" path="/Admin/adminModiCate.jsp" /> <forward name="delete" path="/Admin/adminCate.do?method=browseCate" /> </action> <action attribute="merForm" input="/Admin/adminAddMer.jsp" name="merForm" parameter="method" path="/Admin/adminMer" scope="request" type="com.struts.action.AdminMerAction"> <forward name="browse" path="/Admin/adminMer.jsp" /> <forward name="modify" path="/Admin/adminModiMer.jsp" /> <forward name="delete" path="/Admin/adminMer.do?method=browseMer" /> <forward name="show" path="/Admin/adminViewMer.jsp" /> <forward name="browseSMer" path="/Admin/adminSMer.jsp" /> <forward name="modifySMer" path="/Admin/adminModiSMer.jsp" /> <forward name="deleteSMer" path="/Admin/adminMer.do?method=browseSMer" /> <forward name="showSMer" path="/Admin/adminViewSMer.jsp" /> </action> <action attribute="memLoginForm" input="/default.jsp" name="memLoginForm" parameter="method" path="/login" scope="request" type="com.struts.action.LoginAction" /> <action parameter="method" path="/mer" type="com.struts.action.MerAction"> <forward name="browseMer" path="/merchandise.jsp" /> <forward name="browseSMer" path="/sMerchandise.jsp" /> <forward name="searchMer" path="/search.jsp" /> <forward name="showMer" path="/merInfo.jsp" /> </action> <action attribute="memberForm" input="/reg.jsp" name="memberForm" parameter="method" path="/mem" scope="request" type="com.struts.action.MemAction"> <forward name="browseWord" path="/leaveword.jsp"/> <forward name="loadMember" path="/modiReg.jsp"/> </action> <action parameter="method" path="/cart" type="com.struts.action.CartAction"> <forward name="browseCart" path="/cart.jsp"/> <forward name="checkOrder" path="/checkOrder.jsp"/> <forward name="submitOrder" path="/submitOrder.jsp"/> </action> <action parameter="method" path="/order" type="com.struts.action.OrderAction"> <forward name="browseOrder" path="/Order.jsp"/> <forward name="viewOrder" path="/OrderInfo.jsp"/> </action> <action parameter="method" path="/Admin/adminOrder" type="com.struts.action.AdminOrderAction"> <forward name="browseOrder" path="/Admin/adminOrder.jsp"/> <forward name="viewOrder" path="/Admin/OrderInfo.jsp"/> </action> <action parameter="method" path="/Admin/adminMember" type="com.struts.action.AdminMemberAction"> <forward name="browseWord" path="/Admin/adminWord.jsp" /> <forward name="browseMember" path="/Admin/adminMember.jsp" /> <forward name="viewWord" path="/Admin/WordInfo.jsp" /> <forward name="viewMember" path="/Admin/MemberInfo.jsp" /> </action> </action-mappings> <message-resources parameter="com.struts.ApplicationResources" /> <!--配置struts-menu插件--> <plug-in className="net.sf.navigator.menu.MenuPlugIn"> <set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/> </plug-in> <!--配置Validator插件--> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in> </struts-config> ``` -------------------------------------分界线----------------------------------- 抛出的异常 ``` HTTP Status 500 - An exception occurred processing JSP page /Admin/adminUser.jsp at line 38 type Exception report message An exception occurred processing JSP page /Admin/adminUser.jsp at line 38 description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: An exception occurred processing JSP page /Admin/adminUser.jsp at line 38 35: </tr> 36: <tr> 37: <td height="30" align="center"> 38: <display:table name="adminList" id="row" pagesize="15" export="true" class="displaytag" requestURI="/Admin/admin.do?method=browseAdmin" > 39: <display:column property="adminName" title="${label1}" sortable="true" headerClass="sortable" style="text-align:center;"/> 40: <display:column property="loginName" title="${label2}" sortable="true" headerClass="sortable" style="text-align:center;"/> 41: <display:column property="adminType" title="${label3}" sortable="true" headerClass="sortable" style="text-align:center;"/> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:584) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) com.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.lang.builder.ToStringBuilder org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:909) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:838) org.apache.jsp.Admin.adminUser_jsp._jspService(adminUser_jsp.java:301) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) com.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.lang.builder.ToStringBuilder org.apache.commons.lang.ArrayUtils.toString(ArrayUtils.java:171) org.apache.commons.lang.ArrayUtils.toString(ArrayUtils.java:152) org.displaytag.export.ExportViewFactory.<init>(ExportViewFactory.java:61) org.displaytag.export.ExportViewFactory.getInstance(ExportViewFactory.java:79) org.displaytag.tags.TableTag.doStartTag(TableTag.java:753) org.apache.jsp.Admin.adminUser_jsp._jspService(adminUser_jsp.java:224) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) com.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/8.5.9 logs. Apache Tomcat/8.5.9 ```
eclipse出现web项目导出war时没有jsp等文件的问题
第一种,我自己总结的解决办法,这个可能也是因为我之前导入的Java项目转成web项目的时候值没配好。所以可能不适用所有情况吧。 ![图片说明](https://img-ask.csdn.net/upload/201809/11/1536634624_62811.png) 修改.jstdscope和component把其中的web路径,修改为当前路径 另一种解决办法参考 https://blog.csdn.net/qq_33547950/article/details/79035883
Springmvc上传文件限制大小,异常处理返回报错信息后,eclipse控制台还报错
**1、web.xml配置:** ``` <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 注册主控制器DispatcherServlet --> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定spring配置文件位置 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.from</url-pattern> </servlet-mapping> <!-- 指定读取所有文件的编码格式 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> ``` **spring的applicationContext.xml配置:** ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"> <!-- 定义自动扫描组件 --> <context:component-scan base-package="controller"></context:component-scan> <!-- 定义@RequestMapping映射的注解驱动 --> <mvc:annotation-driven></mvc:annotation-driven> <!-- 定义视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/jsp/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <!-- 注册spring web mvc中处理上传事件的组件CommonsMultipartResolver, 而具体怎样处理上传文件,则是由导入的包common-upload.jar和common-io.jar去处理--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10240"></property> <property name="resolveLazily" value="true"></property> </bean> </beans> ``` **java代码Controller处理:** ``` package controller; import java.io.File; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MaxUploadSizeExceededException; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; @Controller public class UploadController { // 访问upload.jsp页面 @RequestMapping("/toUpload") public String toUpload() { return "upload"; } @RequestMapping("/upload") public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request, ModelMap model) throws Exception { // 判断提交来的文件是否为空 if (file.isEmpty()) { // model.addAttribute("error", "上传文件不能为空"); // return "upload"; throw new RuntimeException("file is null"); } // 获取文件所要保存目录在服务器上所对应的实际路径 String path = request.getSession().getServletContext().getRealPath( "upload"); System.out.println(path); // 组成拥有真实路径的一个完整的地址字符串 String fileUrl = path + "\\" + file.getOriginalFilename(); // 封装上传文件名称到model对象中 model.addAttribute("fileName", file.getOriginalFilename()); // 根据这个完整地址字符串,生成提交文件所要保存到的目标文件或目录的对象 File targetFile = new File(fileUrl); // 判断目标文件或目录的对象是否已经存在 if (!targetFile.exists()) { targetFile.mkdirs(); } // 传送文件到目标对象 file.transferTo(targetFile); System.out.println("已上传文件:" + file); return "ok"; } @ExceptionHandler public ModelAndView doException(Exception e,HttpServletRequest request) throws Exception { Map<String,Object> map = new HashMap<String,Object>(); if (e instanceof MaxUploadSizeExceededException) { long maxSize = ((MaxUploadSizeExceededException) e) .getMaxUploadSize(); map.put("error", "上传文件太大,不能超过" + maxSize / 1024 + "k"); }else if(e instanceof RuntimeException){ map.put("error", "未选中文件"); }else{ map.put("error", "上传失败"); } return new ModelAndView("upload",map); } } ``` **上传文件页面upload.jsp:** ``` <%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>上传页面</title> </head> <body> <form action="upload.from" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="上传"/><font color="red">${error}</font> </form> </body> </html> ``` **上传成功页面ok.jsp:** ``` <%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ok.jsp</title> </head> <body> <h1>上传成功</h1> <a href="upload/${fileName}">${fileName}</a> </body> </html> ``` **eclipse控制台报错信息如下:** ``` 五月 01, 2015 10:27:01 下午 org.springframework.web.multipart.commons.CommonsMultipartResolver cleanupMultipart 警告: Failed to perform multipart cleanup for servlet request org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 10240 bytes exceeded; nested exception is org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (19243) exceeds the configured maximum (10240) at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:160) at org.springframework.web.multipart.commons.CommonsMultipartResolver$1.initializeMultipart(CommonsMultipartResolver.java:131) at org.springframework.web.multipart.support.AbstractMultipartHttpServletRequest.getMultipartFiles(AbstractMultipartHttpServletRequest.java:119) at org.springframework.web.multipart.support.AbstractMultipartHttpServletRequest.getMultiFileMap(AbstractMultipartHttpServletRequest.java:99) at org.springframework.web.multipart.commons.CommonsMultipartResolver.cleanupMultipart(CommonsMultipartResolver.java:188) at org.springframework.web.servlet.DispatcherServlet.cleanupMultipart(DispatcherServlet.java:1062) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2476) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2465) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (19243) exceeds the configured maximum (10240) at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:914) at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331) at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349) at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:156) ... 37 more ``` 上传文件超过限制大小,异常处理后页面返回了提示信息“上传文件太大,不能超过10k”,但是为啥eclipse的控制台还是有报错呢?
SSH整合后,在JSP页面的图片不能显示
SSH整合后,在JSP页面的图片不能显示,图片的路径使用绝对的路径,没有错,我将JSP放到一个单独的WEB项目下可以显示出来,放在整合的项目下就显示不出来,大神们这是为什么呀,完全不知道原因呀,
webuploader用 servlet转发给jsp,jsp页面收不到呢?
![图片说明](https://img-ask.csdn.net/upload/201710/24/1508807699_670713.png) 这是servlet 代码 ``` package com.servlet; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { @SuppressWarnings({ "rawtypes", "null" }) public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter(); try{ final long MAX_SIZE = 3* 1024 * 1024;// 设置上传文件最大为 3M // 允许上传的文件格式的列表 final String[] allowedExt = new String[] {"jpg","jpeg","gif"}; response.setContentType("text/html"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new DiskFileItemFactory(); dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setRepository(new File(request.getRealPath("/")+ "upload"));// 设置存放临时文件的目录,web根目录下的upload目录 System.out.println("临时目录:"+new File(request.getRealPath("/")+ "upload")); // 用以上工厂实例化上传组件 ServletFileUpload sfu = new ServletFileUpload(dfif); // 设置最大上传尺寸 sfu.setSizeMax(MAX_SIZE); // 从request得到 所有 上传域的列表 List fileList = null; try { fileList = sfu.parseRequest(request); } catch (FileUploadException e) {// 处理文件尺寸过大异常 if (e instanceof SizeLimitExceededException) { out.println("文件尺寸超过规定大小:" + MAX_SIZE + "字节!"); return; } e.printStackTrace(); } // 没有文件上传 if (fileList == null || fileList.size() == 0) { out.println("请选择上传文件!"); return; } // 得到所有上传的文件 Iterator fileItr = fileList.iterator(); System.out.println("fileList:"+fileList); // 循环处理所有文件 while (fileItr.hasNext()) { FileItem fileItem = null; String path = null; long size = 0; // 得到当前文件 fileItem = (FileItem) fileItr.next(); // 忽略简单form字段而不是上传域的文件域(<input type="text" />等) if (fileItem == null || fileItem.isFormField()) { continue; } // 得到文件的完整路径 path = fileItem.getName(); // 得到文件的大小 size = fileItem.getSize(); if ("".equals(path) || size == 0) { out.println("请选择上传文件!"); return; } // 得到去除路径的文件名 String t_name = path.substring(path.lastIndexOf("//") + 1);//kaola.jpeg System.out.println("t_name:"+t_name); // 得到文件的扩展名(无扩展名时将得到全名) String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);//jpeg System.out.println(t_ext); // 拒绝接受规定文件格式之外的文件类型 String tmp=Arrays.toString(allowedExt); Pattern p = Pattern.compile(t_ext); Matcher m = p.matcher(tmp); if (m.find()==true) { //如果符合上传的格式 String now=new SimpleDateFormat("yyyyMMddhhmmssSSS").format(new Date()); System.out.println(now); // 根据系统时间生成上传后保存的文件名 String prefix = now; // 保存的最终文件完整路径,保存在web根目录下的upload目录下 String u_name = request.getRealPath("/") + "upload/" + prefix + "." + t_ext; String dwc; dwc=u_name; ** //转发给jsp页面 request.setAttribute("dwc",dwc); request.getRequestDispatcher( "/files1/xinzengchandizhengmingg**uanli.jsp").forward(request,response); System.out.println("最终保存目录:"+u_name); try { File file = new File(u_name); // 保存文件 fileItem.write(file); out.println("文件上传成功. 已保存为: " + prefix + "." + t_ext + " &nbsp;&nbsp;文件大小: " + size + "字节<p />"); } catch (Exception e) { e.printStackTrace(); } }else { System.out.println("不符合规定"); out.print("上传文件不符合规定!"); } } }catch(Exception e){ out.print("系统异常,请稍后再试!"); e.printStackTrace(); } } } ``` ** //转发给jsp页面 request.setAttribute("dwc",dwc); request.getRequestDispatcher( "/files1/xinzengchandizhengmingg**uanli 这也我想把上传成功的文件名传给jsp页面,然后添加到数据库,,试了好多方法,传不去过去值。 <!--测试接收到servlet传值显示在text框中--> <input type="text" class="input-text" value='${dwc}' placeholder="" id="" name="">
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
毕业设计 微信小程序 音乐播放器
大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板。由于本作品是微信小程序,就需要剔除APP中的各种冗余的功能,页面设计也需要尽可能的简单直接,内容也要充实。然后根据以上几点,对应用的功能模块进行大量的分析与重构...
想查看微信好友撤回的消息?Python帮你搞定
要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...
程序员必备的8个学习工具
取其精华,去其糟粕
2019年12月中国编程语言排行榜
2019年12月4日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.60% 2 c/c++ 16.58% 3 c# 12.59% 4 javascript 12.21% 5 python 7.96% 6 go 7.19% 7 php ...
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国...
Java知识体系最强总结(2020版)
更新于2020-01-05 18:08:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Ja
一个“/”键,封锁了整个互联网
正所谓无BUG不生活,从你含辛茹苦地码着第一行代码开始,bug就如影随形。 其实,bug 被自己或者是测试人员发现都是好事;但如果是被用户发现,又或者导致了客户和公司的巨额损失……这些未知后果,就如同悬在头顶的一把利刃,让人脊背发凉…… 但一个小小的bug,可能带给你惊吓,也可能带来惊喜。接下来,我们就来看看 bug 都能带来哪些意想不到的影响呢? 1.来自 Amazon 的圣诞大礼包~ 201...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实
自学系列 | 就谈兴趣!
最近接到很多读者的私信,基本都是有关方向的选择上以及如何自学上,还有部分读者问到有关前端的方向,能不能详细写写如果从零学习,能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能,无论干什么,都离开这种能力,这是毋容置疑的。 之前有关自学的文章确实挺零散的,而且还不够详细。所以小鹿打算利用业余时间把如何自学写成一整个系列《如何成为一个优秀的自学者》。写之前呢,希望我们每个人先放下心中的执念...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了......,这可都是提升你幸福感的高效率生产力工具哦! 走起!...... NO、1 ScreenToGif 屏幕,摄像头和
还看不懂同事代码?快来补一波 Java 7 语法特性
前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦......,嗯,我们导员是所有导员中最帅的一个,真的...... 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强......,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧?
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
相关热词 c#判断数字不得为负数 c#帧和帧协议 c#算偏移值 c# 在枚举中 c#6 字符串 插值 c#程序中的占位符标签 c#监听数组变化 c# vlc c#索引实现 c# 局域网广播通信
立即提问