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页面,那访问时路径该怎么写呢?
急急急!!!jsp页面中怎么引入.inc文件,引入目录从哪里开始写起
java web项目中想要引入opendb.inc文件和power_ora.inc文件, 来达到PHP中,通过require_once引入登录Oracle数据库功能的效果, (相关部署都是PHP页面写的,我的项目是Javaweb,所以有些不同,不太明白, php中可以在通过require_once获取,java中我获取不了, 通过<%@ include file="/opendb.inc" %>始终找不到文件, 修改路径,从服务器上获取文件, <%@ include file="/php/public/opendb.inc" %> <%@ include file="/php/public/power_ora.inc" %> 但是页面找不到相关文件 /WebRoot/bookAdd.jsp (line: [2], column: [1]) File [/php/public/opendb.inc] not found, 请问这个路径怎么修改) 请问应该怎么做? 因为我的最终目的是借助这两个文件, 登录Oracle数据库获取对应表的数据, 请问需要javaweb在头部如何引入数据库数据表? 恳请指教,感激不尽!
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属性赋值的时候,如果想应用<%=%>。那么一定不要另外添加其它字符,这样就会将<%=%>中的变量成功解析为对应方法的参数。 否则会将引号中的内容当成一个死的字符串作为参数。
SSH无法访问Controller 层,index.jsp页面却能正常访问.
麻烦各位大佬看看 SpringMVC ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="cn.yunda.controller"/> <context:component-scan base-package="cn.yunda.service"/> <mvc:annotation-driven/> <!-- 配置jsp的视图解析,可以不配置,已经自动生成,在这里只是添加了前缀和后缀,在控制器中return的时候少写一点代码而已 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 上传文件的时候使用的视图解析,如果有文件上传才需要配置 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设定上传文件总大小 --> <property name="maxUploadSize" value="500000" /> <!-- 文件编码 --> <property name="defaultEncoding" value="UTF-8"/> </bean> ``` Web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="3.0" 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_3_0.xsd"> <display-name>TestVue</display-name> <!-- 加载配置文件Jar包文件 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 载入配置xml配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 文件路径 --> <param-value>classpath:spring/application-hibernate.xml</param-value> </context-param> <!-- 编码格式控制 --> <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> <init-param> <!--forceEncoding用来设置是否理会 request.getCharacterEncoding()方法 --> <param-name>ForceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <!-- 设置encodingFiler 的映射路径 --> <filter-mapping> <!-- 定义名 --> <filter-name>encodingFilter</filter-name> <!-- 路径 --> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>SpringMvc</servlet-name> <!-- DispatcherSevlet负责将请求分发,所有的请求都有经过它来统一分发。 --> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/application-hibernate.xml</param-value> </init-param> <!-- 当值为0或者大于0时,表示容器在应用启动时就加载这个servlet; 当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。 正数的值越小,启动该servlet的优先级越高。 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 设置映射路径 --> <servlet-mapping> <servlet-name>SpringMvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ``` Controller 层 ```package cn.yunda.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller(value="AppController") public class AppController { @RequestMapping(value="/login") public String login() { System.out.println("进入页面"); return "login"; } @RequestMapping("/") public String Home() { return "index"; } } ```
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的路径求指导
怎么样使用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文件时,所有都能正确显示。说明我的路径什么的都正确。
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了呢?求大神帮解惑下,感激不尽!
#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的控制台还是有报错呢?
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
【资源】一个C/C++开发工程师的学习路线(已经无路可退,唯有逆风飞翔)【内附资源页】
声明: 1)该文章整理自网上的大牛和专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
神级宝库!GitHub 标星 1.2w+,Chrome 最天秀的插件都在这里啦!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个沉迷 Chrome 不能自拔的蒟蒻… 作为一个在远古时代用过什么 IE、360、猎豹等浏览器的资深器哥,当我第一次了解 Chrome 的时候,就被它的美貌给吸引住了… 就在我用了一段时间之后,我坚决的卸载了电脑上其它碍眼的浏览器,并觉得在之前的搬砖生涯中,我不配当哥,我只配是个沙雕… ...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
立即提问