Java 从servlet在jsp中显示图像
我对java web应用程序非常陌生。我正在进行一个项目,我必须从mysql接收一组特定的图像,并在jsp中显示 下面是我的servlet代码(我在其中设置属性,toppings包含存储在我的计算机中的所有图像的路径),当我尝试在.jsp页面上检索它们时,它给我一个错误,如下所示:Java 从servlet在jsp中显示图像,java,jsp,servlets,scriptlet,Java,Jsp,Servlets,Scriptlet,我对java web应用程序非常陌生。我正在进行一个项目,我必须从mysql接收一组特定的图像,并在jsp中显示 下面是我的servlet代码(我在其中设置属性,toppings包含存储在我的计算机中的所有图像的路径),当我尝试在.jsp页面上检索它们时,它给我一个错误,如下所示: HTTP Status 500 - An exception occurred processing JSP page /CustomerBrowseScreen.jsp at line 115 typ
HTTP Status 500 - An exception occurred processing JSP page /CustomerBrowseScreen.jsp at line 115
type Exception report
message An exception occurred processing JSP page /CustomerBrowseScreen.jsp at line 115
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /CustomerBrowseScreen.jsp at line 115
112: <%
113: String[] display = (String[])request.getAttribute("images");
114:
115: for(int i=0; i<display.length; i++)
116: {
117: out.println(display);
118: }
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NullPointerException
org.apache.jsp.CustomerBrowseScreen_jsp._jspService(CustomerBrowseScreen_jsp.java:193)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.
- .jsp Code
<%
String[] display = (String[])request.getAttribute("images");
for(int i=0; i<display.length; i++)
{
out.println(display);
}
%>
- Servlet
String[] toppings = new String[size];
while(rs.next())
{
toppings[i] = rs.getString(5);
i++;
}
request.getSession().setAttribute("images", toppings);
request.getRequestDispatcher("CustomerBrowseScreen.jsp").forward(request, response);
HTTP状态500-在第115行处理JSP页面/CustomerBrowseScreen.JSP时发生异常
类型异常报告
消息在第115行处理JSP页面/CustomerBrowseScreen.JSP时发生异常
说明服务器遇到内部错误,无法满足此请求。
例外
org.apache.jasper.jaspereException:在第115行处理JSP页面/CustomerBrowseScreen.JSP时发生异常
112:我这里有几个问题:
1.我假设您需要发送带有附件(即图像)的响应。但代码显示您正在存储字符串:
String[] toppings = new String[size];
while(rs.next())
{
toppings[i] = rs.getString(5);
i++;
}
请添加指向toppings[]的调试指针以检查其内容。我相信它可能包含负值
你正在使用
request.getAttribute("images")
在JSP和
request.getSession().setAttribute("images", toppings);
在Servlet中。将JSP更改为
session.getAttribute("images")
或
这是一件很容易混淆的事情。您好,先生,我从数据库中获取的是图像的路径,而不是图像本身。请检查CustomerBrowseScreen_jsp.java中第193行的哪个值为null。是否有方法将此路径从servlet发送到jsp页面上的图像标记。。我在toppings中有多个路径。[Ljava.lang.String;@76c12282[Ljava.lang.String;@76c12282[Ljava.lang.String;@76c12282][Ljava.lang.String;@76c12282当我在servlet中应用调试指针时,我得到了我要查找的精确值。我认为当数组字符串从servlet传输到jsp时出现了问题,我不知道是什么。您好,我做了如下两个更改:[Ljava.lang.String;@76c12282[Ljava.lang.String;@76c12282[Ljava.lang.String;@76c12282][Ljava.lang.String;@76c12282当我在servlet中应用调试指针时,我得到了我所寻找的精确值。我认为当数组字符串从servlet传输到jsp时出现了一些问题,我不知道是什么。也许在jsp中,你想迭代n不要每次都打印数组-即display[i]。哦,我很笨..非常感谢,先生。下一个问题是:我们如何在scriplet中使用。我在下面尝试了,但给出了一个错误:if(display!=null&&display.length!=0){for(int i=0;i
request.getSession().getAttribute("images")