小编use*_*064的帖子

Spring MVC - 上传文件被spring security阻止

我正在尝试上传文件.它适用于我,但如果我想使用上传文件它不起作用.我收到了这个错误

HTTP Status 405 - Request method 'POST' not supported
Run Code Online (Sandbox Code Playgroud)

但是,如果我在web.xml中对这些行进行注释,它可以工作

<filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>


    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

我试图添加此配置,但它没有帮助

    <filter>
    <display-name>springMultipartFilter</display-name>
    <filter-name>springMultipartFilter</filter-name>
    <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>springMultipartFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

这是我的所有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">

    <!-- The definition of the Root Spring Container shared by all Servlets 
        and Filters -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/root-context.xml,
            /WEB-INF/spring-security.xml
        </param-value>
    </context-param>

    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- Processes application requests …
Run Code Online (Sandbox Code Playgroud)

java spring file-upload spring-mvc spring-security

9
推荐指数
1
解决办法
8673
查看次数

Spring MVC上传文件 - HTTP状态405 - 不支持请求方法"POST"

我试图通过JSP和控制器上传文件,但我总是得到

HTTP状态405 - 不支持请求方法"POST"

类型状态报告

消息请求方法'POST'不受支持

description对于请求的资源,不允许使用指定的HTTP方法.

这是我的表单(只是所有JSP页面的一部分):

<form method="POST" enctype="multipart/form-data" action="product.file.add">
    <input name="productId" type="hidden" />
    <tr>
        <th>Foto: </th>
        <td><input type="file" name="file" /></td>
    </tr>
    <tr>
        <td class="bt" ><input type="submit" value="Add image" /></td>
        <td class="bt" ><input type="submit" value="Continue without image" /></td>
    </tr>
</form>
Run Code Online (Sandbox Code Playgroud)

我的控制器部分(现在只有一个文件名):

@RequestMapping(value = "/admin/product.file.add", method = RequestMethod.POST)
    public String productFileUpload(@RequestParam("file") MultipartFile file,
            @RequestParam("productId") int productId) {
        logger.info(file.getName());
        return "redirect:/admin/product";
}
Run Code Online (Sandbox Code Playgroud)

和servlet-context.xml的一部分

<beans:bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
Run Code Online (Sandbox Code Playgroud)

但总是得到:

HTTP状态405 - 不支持请求方法"POST"

你能帮我一个人吗?:(


我的控制器没有所有方法:

@Controller
public class ProductController {

    @Autowired
    private ProductDao …
Run Code Online (Sandbox Code Playgroud)

java file-upload spring-mvc

8
推荐指数
1
解决办法
8740
查看次数

字符等于字符在 Java 中是自动装箱还是拆箱?

我正在考虑这个简单的代码:

Character s = 'n';
System.out.println(s == 'y');
System.out.println(s.equals('y'));

s = 'y';
System.out.println(s == 'y');
System.out.println(s.equals('y'));
Run Code Online (Sandbox Code Playgroud)

结果

false
false
true
true
Run Code Online (Sandbox Code Playgroud)

所以结果是好的,但是,这个比较是如何工作的?Character 对象是取消装箱为字符还是聊天自动装箱为字符?

java

8
推荐指数
2
解决办法
212
查看次数

标签 统计

java ×3

file-upload ×2

spring-mvc ×2

spring ×1

spring-security ×1