项目结构(文件服务器)
- webapp
- uploads(图片存储位置)
- WEB-INF
- pages
- success.jsp(web页面)
- web.xml(web配置文件)
- pages
- index.jsp(web页面)
- pom.xml(maven项目配置文件)
项目结构(应用服务器)
- java
- controller
- FileUploadController.java(Java文件)
- controller
- resources
- springmvc.xml(springmvc配置文件)
- webapp
- WEB-INF
- pages
- success.jsp(web页面)
- web.xml(web配置文件)
- pages
- index.jsp(web页面)
- WEB-INF
- pom.xml(maven项目配置文件)
maven项目配置文件
- 配置maven项目需要的依赖
- spring-context
- spring-web
- spring-webmvc
- servlet-api
- jsp-api
- commons-fileupload
- commons-io
- jersey-core
- jersey-client
web配置文件
- 前端控制器(DispatcherServlet)
- 配置一个前端控制器(<servlet>)
- 创建前端控制器时,加载Spring配置文件(<init-param>)
- 启动服务器时,创建前端控制器(<\load-on-startup>)
- 配置前端控制器的作用范围(<servlet-mapping>)
- 配置一个前端控制器(<servlet>)
- 过滤器(CharacterEncodingFilter)
- 配置一个过滤器(<filter>)
- 配置编码(<init-param>):解决中文乱码
- 配置前端控制器的作用范围(<filter-mapping>)
- 配置一个过滤器(<filter>)
springmvc配置文件
- 导入名称空间(<beans xmlns=””>)
- 开启注解扫描(<context:component-scan base-package=””>)
- 配置视图解析器(InternalResourceViewResolver)
- 配置前缀(prefix -> “/WEB-INF/pages”)
- 配置后缀(suffix -> “.jsp”)
- 开启SpringMVC注解支持(<mvc:annotation-driven>)
Java文件
- 表现层
- 类
- 添加进IoC核心容器(@Controller)
- 设置请求映射(@RequestMapping())
- 一级目录(path=””)
- 方法
- 设置请求映射(@RequestMapping())
- 二级目录(path=””)
- 返回值(return “success”;)
- 参数列表(数据类型 请求参数名,数据类型 请求参数名)
- HttpServletRequest
- MultipartFile
- 设置请求映射(@RequestMapping())
- 类
JSP文件
- 超链接(href=”一级目录/二级目录?请求参数=值&请求参数=值”)
- 表单(<form action=”一级目录/二级目录” method=”post”>)
执行代码
需求:通过服务器将图片上传至服务器端
在“应用服务器”中,上传图片。图片通过跨服务器操作,被存储到“文件服务器”中。
“文件服务器”只需要新建一个模板,并且配置一个tomcat服务器,在此需求中其配置文件不需要设置。
pom.xml
1 |
|
web.xml
1 |
|
springmvc.xml
1 |
|
FileUploadController.java
1 | package cn.water.controller; |
index.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
success.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
传统方式
- 传统的文件上传方式通过 commons-fileupload组件
- maven配置文件
1 | <!-- 解析请求正文内容(Form表单的enctype属性取值为Mutilpart/form-date时) --> |
- Controller
1 | "/test01") ( |
SpringMVC方式
- 文件解析器来解析,我们只需要获取 MultipartFile对象
- SpringMVC配置文件
1 | <!-- 文件解析器 --> |
- Controller
1 | "/test02") ( |
跨服务器上传
- Maven配置文件
1 | <!-- 解析请求正文内容(Form表单的enctype属性取值为Mutilpart/form-date时) --> |
- SpringMVC配置文件
1 | <!-- 跨服务器上传 --> |
- Controller
1 | "/test03") ( |
- tomcat配置文件 (D:\coding\Tomcat\apache-tomcat-8.5.45\conf\web.xml)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>