【servlet功能】
通过浏览器上传文件到tomcat容器中的servlet,该servlet将上传的文件的信息返回给浏览器,并在浏览器中显示出来。
【servlet组成及职责】
UploadServlet
META-INF
MANIFEST.MF
WEB-INF
classes
com
yasi
servlet
UploadServlet.class (后台处理来自浏览器的请求的 java 代码)
lib
commons-fileupload-1.1.1.jar
commons-io-2.4.jar
web.xml (定义“什么样的 URL 的 request 会交给 UploadServlet.class 做处理”)
upload.html (静态页面,浏览器 访问的入口,比如 http://localhost:8080/UploadServlet/upload.html)
【upload.html内容】
只说明一点,upload.html提交的表单的action配的是 servlet/UploadServlet,这和下面的web.xml中的绿色标记的url-pattern是对应的,即提交的表单交给http://localhost:8080/UploadServlet/servlet/UploadServlet
<form action="servlet/UploadServlet" method="post" enctype="multipart/form-data">
【web.xml配置】
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>uploadfile</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>com.helloweenvsfei.servlet.UploadServlet</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/servlet/UploadServlet</url-pattern>
<url-pattern>/servlet/UploadServlet.asp</url-pattern>
<url-pattern>/servlet/UploadServlet.jsp</url-pattern>
<url-pattern>/servlet/UploadServlet.php</url-pattern>
<url-pattern>/servlet/UploadServlet.aspx</url-pattern>
</servlet-mapping>
</web-app>
【servlet部署】
将整个UploadServlet文件夹部署到tomcat 的 webapps 文件夹下,比如就放在 C:\Program Files\apache-tomcat-8.0.3\webapps 下面
【servlet工作流程】
1)浏览器访问:http://localhost:8080/UploadServlet/upload.html
2)Tomcat收到并返回给浏览器UploadServlet/upload.html
3)用户在upload.html页面中选择并上传文件和文本描述
4)Tomcat收到upload.html页面提交的表单(其中包括上传的文件和文本信息)。由于Upload.html的 form action配的是servlet/UploadServlet,符合web.xml中配的第一条url-pattern,对应的servlet-name是UploadServlet。web.xml中配的servlet块中,servlet-name为UploadServlet的servlet-class是com.helloweenvsfei.servlet.UploadServlet,
5)tomcat找到处理表单请求的java类,com.helloweenvsfei.servlet.UploadServlet,并请将请求分发给它
6)UploadServlet.class 处理请求并返回response
7)Tomcat将UploadServlet.class处理过的response返回给浏览器
8)浏览器收到response并在页面显示