如何在JSP文件上激活@MultipartConfig注解?

ehxuflar  于 2024-01-04  发布在  其他
关注(0)|答案(2)|浏览(252)

所以在我的课上,我被命令上传图像到数据库,并把它们拿出来,并在网站上显示,当使用servlet或php时很简单,但我被要求只使用JSP文件来做这件事。
当我试图运行它时,问题就开始了,服务器要求@multipartconfig注解。我找不到一种方法将其添加到jsp代码中。

这是jsp:

  1. <%@page import="javax.servlet.annotation.MultipartConfig"%>
  2. <%@page import="java.sql.*"%>
  3. <%@page import="java.io.InputStream"%>
  4. <%@page contentType="text/html" pageEncoding="UTF-8"%>
  5. <%
  6. request.setCharacterEncoding("UTF-8");
  7. Part p = request.getPart("image");
  8. InputStream inputStream = null;
  9. if (p != null) {
  10. inputStream = p.getInputStream();
  11. }
  12. String driver = "com.mysql.jdbc.Driver";
  13. String url = "jdbc:mysql://localhost:3306/test42";
  14. Class.forName(driver);
  15. Connection con = DriverManager.getConnection(url, "root", "1234");
  16. String sqlString = "INSERT INTO test42.images items(idimages) values(" + inputStream + ");";
  17. String msg = p.toString();
  18. %>

字符串

上传表单如下:

  1. <form method="post" action="mainPage.jsp" enctype="multipart/form-data">
  2. choose file :
  3. <input type="file" name="image" />
  4. <input type="submit" value="submit">
  5. </form>


这是来自服务器的消息:

  1. java.lang.IllegalStateException: Request.getPart is called without multipart configuration. Either add a @MultipartConfig to the servlet, or a multipart-config element to web.xml


我试着将它添加到web.xml中,但它不起作用....应用程序只是崩溃了一个构建错误;我从这里得到了这个解决方案:http://docs.oracle.com/javaee/6/tutorial/doc/gmhal.html

像这样:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
  3. <session-config>
  4. <session-timeout>
  5. 30
  6. </session-timeout>
  7. </session-config>
  8. <multipart-config>
  9. <location>/tmp</location>
  10. <max-file-size>20848820</max-file-size>
  11. <max-request-size>418018841</max-request-size>
  12. <file-size-threshold>1048576</file-size-threshold>
  13. </multipart-config>
  14. </web-app>

kmpatx3s

kmpatx3s1#

<multipart-config>标记需要放在<servlet>标记内部,并且您需要在<servlet>标记旁边沿着一个<servlet-mapping>

  1. <servlet>
  2. <servlet-name>uploadfile</servlet-name>
  3. <jsp-file>/mainPage.jsp</jsp-file>
  4. <multipart-config>
  5. <location>/temp</location>
  6. <max-file-size>20848820</max-file-size>
  7. <max-request-size>418018841</max-request-size>
  8. <file-size-threshold>1048576</file-size-threshold>
  9. </multipart-config>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>uploadfile</servlet-name>
  13. <url-pattern>/mainPage.jsp</url-pattern>
  14. </servlet-mapping>

字符串

展开查看全部
58wvjzkj

58wvjzkj2#

实际上,每个jsp文件都将被转换为servlet,因为tomcat只能处理servlet,因此每个jsp文件都间接地是一个servlet,并具有它的所有功能

相关问题