Spring JSP与javaservlet后端代码的链接
我试图将我的Jsp页面与我的servlet链接,但出现以下错误: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
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>