美文网首页
[java]34、文件上传

[java]34、文件上传

作者: 史记_d5da | 来源:发表于2022-04-12 23:24 被阅读0次

1、表单form文件上传-前端

1、form支持文件上传,必须设置两个属性
method=postenctype="multipart/form-data"
2、input在上传文件时,需要设置成如下
<input type="file" name="imagefile" accept="image/*">
type="file":代表承载的内容为文件类型
accept="image/*":代表可选择的内容为图片类型的文件
3、webapp的文件的目录结构

webapp
. 所有的html以及资源文件需要放到webapp目录下
. 所有asset资源文件放在WEB-INF的目录外面,需要外界可以随时访问
. 所有的html以及jsp文件需要放到WEB-INF目录下,屏蔽外界通过url的直接访问方式
4、在web.xml中配置400500页面
<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/page/404.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/WEB-INF/page/500.jsp</location>
</error-page>

5、form文件上传-实时预览
刚上传完毕的图片,有可能会出现无法实时预览的问题(要等一会才能预览成功)
tomcat的缓存资源功能关掉即可,在%TOMCAT_HOME%/conf/context.xml中增加Resources标签。

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <Resources
      cachingAllowed="false"
      cacheMaxSize="0" />
</Context>

2、表单form文件上传-后端

1、Java后台中常使用commons-fileupload来接收客户端上传的文件,需要在pom.xml配置如下

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>

2、使用类ServletFileUpload解析请求参数

ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
upload.setHeaderEncoding("UTF-8");
List<FileItem> items = upload.parseRequest(request);

3、验证码(Kaptcha)

Kaptcha是一个可高度可配置的验证码生成工具,由Google提供
支持在pom.xml配置

<dependency>
        <groupId>com.github.penggle</groupId>
        <artifactId>kaptcha</artifactId>
        <version>2.3.2</version>
</dependency>

4、Filter(过滤器)

4.1、filter的配置

@WebFilter(/*) 等价于在web.xml中配置如下

<filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>com.sj.xr.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>LoginFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

注:多个filter类的执行顺序是按照类名的字符串比较顺序过滤。
web.xml中配置的多个filter是按照配置的顺序从上到下执行过滤。

4.2、filter的生命周期

init:将Filter添加到Web容器中时调用,一般用来加载资源(当项目部署到Tomcat的时候回调用)
destory:将FilterWeb容器中移除时调用,一般用来销毁资源(当项目从Tomcat中解除部署的时候)

4.3、dispatcherTypes属性

1、REQUEST:默认值。浏览器直接请求资源

//浏览器直接请求index.jsp资源时会执行过滤
@WebFilter(value = "/index.jsp",dispatcherTypes = DispatcherType.REQUEST)

2、FORWARD:转发访问资源

//在发生转发请求时,如果转发请求的资源时index.jsp则执行过滤
@WebFilter(value = "/index.jsp",dispatcherTypes=DispatcherType.FORWARD)

3、INCLUDE:包含访问资源
4、ERROR:错误跳转资源
5、ASYNC:异步访问资源
注意:上述的取值可以同时存在多个,比如:

@WebFilter(value = "/index.jsp",dispatcherTypes ={DispatcherType.REQUEST,DispatcherType.FORWARD})

web.xml配置
<dispatcher></dispatcher>

5、Listener

1、Listener译为监听器
比较常用的是ServletContextListener,用来监听ServletContext的创建和销毁
contextInitialized:ServletContext创建的时候调用,可以在项目启动(部署)的时候做一些一次性的操作(资源加载)
contextDestoryed:ServletContext销毁的时候调用
2、ServletContext
一个ServletContext对象就代表一个Web应用,可以用来与Web容器(Tomcat)通信
获取ServletContext
request.getServletContextservlet.getServletContext
3、在web.xml中配置

<listener>
    <listener-class>com.sj.xr.listener.ContextListener</listener-class>
</listener>

相关文章

  • [java]34、文件上传

    1、表单form文件上传-前端 1、form支持文件上传,必须设置两个属性method=post、enctype=...

  • Java模拟post请求上传文件

    Java模拟post请求上传文件 Java代码实现/** * 模拟文件post上传 * @para...

  • Servlet上传和下载文件_Java邮件基本使用

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓↓↓↓ Java程序文件上传...

  • Java Web文件上传展示进度

    1、文件上传演示准备 接前面“Java Web中的文件上传和下载” 为了演示文件上传,先新增一个用于接收文件上传的...

  • HDFS中的Java API的使用

    上传文件 PutFile.java 创建文件 CreateFile.java 查看文件详细信息 FileLocat...

  • R.java文件介绍(转载)

    R.java文件介绍 (2012-09-04 08:34:27) R.java文件介绍 HelloWorld工程中...

  • JAVA文件上传漏洞

    1. JAVA文件上传 Java上传依靠apache的common-fileupload.jar组件,该组件依赖于...

  • Java Web中的文件上传和下载

    这里主要结合代码说明Java Web中文件上传和下载的机制。 1、文件上传示例说明 这里从一个文件上传的例子,看下...

  • java文件上传

    post请求 name必须有 enctype 不能用默认值需要用

  • 文件上传(java)

      最近看了一本书上的代码,代码的主要功能是实现文件的上传。但是,当我运行代码的时候竟然报错了。(我用的IDEA)...

网友评论

      本文标题:[java]34、文件上传

      本文链接:https://www.haomeiwen.com/subject/uvmksrtx.html