Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring JSP与javaservlet后端代码的链接_Spring_Jsp_Spring Mvc_Exception_Servlets - Fatal编程技术网

Spring JSP与javaservlet后端代码的链接

Spring JSP与javaservlet后端代码的链接,spring,jsp,spring-mvc,exception,servlets,Spring,Jsp,Spring Mvc,Exception,Servlets,我试图将我的Jsp页面与我的servlet链接,但出现以下错误: javax.servlet.ServletException: Servlet.init() for servlet ImageServlet threw exception java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered` 下面是我的Servlet代码: package se

我试图将我的Jsp页面与我的servlet链接,但出现以下错误:

javax.servlet.ServletException: Servlet.init() for servlet ImageServlet threw exception
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered`
下面是我的Servlet代码:

package servlet;

@Component("ImageServlet")    
public class ImageServlet implements HttpRequestHandler {

    @Autowired
    imageDA imageda = new imageDA();
    ResultSet rs = null;
    byte[] thumb ;// get the thumb from the user entity

    @Override
    public void handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        int generatedDocId = Integer.parseInt(request.getParameter("generatedDocId"));
      try{
          rs =  imageda.getAllImage(generatedDocId);
       if(rs.next()){
           thumb = rs.getBytes("IMAGE");
       }
       }catch(SQLException ex){
           ex.getMessage();
       }
        String name = "images";
        response.setContentType("image/jpeg");
        response.setContentLength(thumb.length);
        response.setHeader("Content-Disposition", "inline; filename=\"" + name+ "\"");

        BufferedInputStream input = null;
        BufferedOutputStream output = null;

        try {
            input = new BufferedInputStream(new ByteArrayInputStream(thumb));
            output = new BufferedOutputStream(response.getOutputStream());
            byte[] buffer = new byte[8192];
            int length;
            while ((length = input.read(buffer)) > 0) {
                output.write(buffer, 0, length);
            }
        } catch (IOException e) {
            System.out.println("There are errors in reading/writing image stream "
                    + e.getMessage());
        } finally {
            if (output != null) {
                try {
                    output.close();
                } catch (IOException ignore) {
                }
            }
            if (input != null) {
                try {
                    input.close();
                } catch (IOException ignore) {
                }
            }
        }

    }
}
这是链接到我的viewData.jsp页面的XML代码:

<servlet>
  <servlet-name>ImageServlet</servlet-name>
        <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ImageServlet</servlet-name>
        <url-pattern>/viewData.jsp</url-pattern>
    </servlet-mapping>
</web-app>

ImageServlet
org.springframework.web.context.support.HttpRequestHandlerServlet
ImageServlet
/viewData.jsp
编辑,这里是我的XML代码的完整版本。我在我的请求中使用了它们中的大多数。getPart(),尝试为spring配置XML,但没有成功。感谢您的帮助

        <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <servlet>
        <servlet-name>UploadFile</servlet-name>
        <jsp-file>/projectAddData.jsp</jsp-file>
        <multipart-config>
            <max-file-size>20848820</max-file-size>
            <max-request-size>418018841</max-request-size>
            <file-size-threshold>1048576</file-size-threshold>
        </multipart-config>
    </servlet>
    <servlet-mapping>
        <servlet-name>UploadFile</servlet-name>
        <url-pattern>/projectAddData.jsp</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>UploadFile1</servlet-name>
        <jsp-file>/addClaim.jsp</jsp-file>
        <multipart-config>
            <max-file-size>20848820</max-file-size>
            <max-request-size>418018841</max-request-size>
            <file-size-threshold>1048576</file-size-threshold>
        </multipart-config>
    </servlet>
    <servlet>
        <servlet-name>UploadServlet1</servlet-name>
        <servlet-class>UploadServlet1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UploadFile1</servlet-name>
        <url-pattern>/addClaim.jsp</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>UploadFile2</servlet-name>
        <jsp-file>/addInvoice.jsp</jsp-file>
        <multipart-config>
            <max-file-size>20848820</max-file-size>
            <max-request-size>418018841</max-request-size>
            <file-size-threshold>1048576</file-size-threshold>
        </multipart-config>
    </servlet>
    <servlet>
        <servlet-name>UploadServlet2</servlet-name>
        <servlet-class>UploadServlet2</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UploadFile2</servlet-name>
        <url-pattern>/addInvoice.jsp</url-pattern>
    </servlet-mapping>

<servlet>
    <servlet-name>imageServlet</servlet-name>
    <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>imageServlet</servlet-name>
    <url-pattern>/viewData.jsp</url-pattern>
</servlet-mapping>
<context-param>
  <param-name>contextConfigLocation</param-name>
  <!-- The path to your main spring xml file, for example: /WEB-INF/spring-config.xml -->
  <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>    
<listener>
  <listener-class>
    org.springframework.web.context.ContextLoaderListener
  </listener-class>
</listener>
</web-app>

30
上传文件
/projectAddData.jsp
20848820
418018841
1048576
上传文件
/projectAddData.jsp
上传文件1
/addClaim.jsp
20848820
418018841
1048576
上传服务1
上传服务1
上传文件1
/addClaim.jsp
上传文件2
/addInvoice.jsp
20848820
418018841
1048576
上传服务2
上传服务2
上传文件2
/addInvoice.jsp
imageServlet
org.springframework.web.context.support.HttpRequestHandlerServlet
imageServlet
/viewData.jsp
上下文配置位置
/WEB-INF/applicationContext.xml
org.springframework.web.context.ContextLoaderListener

例外情况是,尽管您打算使用spring,但由于缺少所需的侦听器配置,
ApplicationContext
无法加载。Spring需要知道主bean配置文件的路径,缺少的侦听器是它用来查找该信息的

将其添加到web.xml中(作为根
元素的子元素,您的web应用程序将启动(或者至少通过您现在遇到的错误)


上下文配置位置
/WEB-INF/spring-config.xml
org.springframework.web.context.ContextLoaderListener

它与前面的错误消息javax.servlet.ServletException:servlet.init()相同对于servlet ImageServlet抛出异常java.lang.IllegalStateException:找不到WebApplicationContext:找不到ContextLoaderListener注册`您使用的是什么版本的Spring?您的servlet容器是什么?另外,请发布您的web.xml。我不知道我使用的是什么版本,我是Spring新手,抱歉。这是我的所有代码XML文件。您在更改web.XML后是否重新启动了容器?是的,我甚至重建并重新启动了计算机,但它无法正常工作:/
<context-param>
  <param-name>contextConfigLocation</param-name>
  <!-- The path to your main spring xml file, for example: /WEB-INF/spring-config.xml -->
  <param-value>/WEB-INF/spring-config.xml</param-value>
</context-param>    
<listener>
  <listener-class>
    org.springframework.web.context.ContextLoaderListener
  </listener-class>
</listener>