求教IEDA连接SQL时Tomcat报错的问题

佩卡卡 2018-06-07 10:51:18
环境是IDEA+SQL
问题:以下代码chorme运行显示空白页,其余浏览器正常显示
代码如下:
index.jsp
<div id="shopmenuhot">
<h3 style="padding: 20px 0 10px 15px;font-size: 20px;">热销
<span style="font-size: 12px;color: #999;">大家喜欢吃,才叫真好吃。</span></h3>
<%

request.setCharacterEncoding("UTF-8");
System.out.println(111);
List<Food> hotfoodList=(List<Food>)request.getAttribute("hotfoodList");
System.out.println(222);
if (hotfoodList == null)
{
System.out.println(333);
String path= request.getContextPath();
request.getRequestDispatcher(path+"IndexServlet").forward(request,response);
}
System.out.println(444);
for (int i = 0; i < hotfoodList.size(); i++) {
Food hotfood = hotfoodList.get(i);
%>
<div class="menufood">
<span class="col-1"><img class="menufoodimg" src="<%=hotfood.getImage()%>"></span>
<div class="col-2">
<h3 class="menufoodname"><%=hotfood.getFoodname()%></h3>
<span class="evaluation icon-star">(4.5)</span>
<span><%=hotfood.getIntroduct()%></span>
</div>
<span class="col-3 menufoodprice">¥<%=hotfood.getPrice()%></span>
<span class="col-4"><button class="menubutton">加入购物车</button></span>
</div>

<% }
%>
</div>

IndexServlet.java:
public class IndexServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");

String foodname=request.getParameter("foodname");
String price=request.getParameter("price");
String inventory=request.getParameter("inventory");
String type=request.getParameter("type");
String image=request.getParameter("image");
String introduct =request.getParameter("introduct");

Food food=new Food();
FoodDao foodDao=new FoodDao();

List<Food> hotfoodList=foodDao.getHotFood();
request.setAttribute("hotfoodList",hotfoodList);


request.getRequestDispatcher("index.jsp").forward(request, response);
}
}

为什么控制打印出来是
111
222
333
111
222
444
444
这里的444为什么出现2个不是很明白

报错代码是Tomcat Localhost Log里的
07-Jun-2018 22:41:45.688 严重 [http-nio-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [] threw exception [An exception occurred processing [/index.jsp] at line [153]

150: request.getRequestDispatcher(path+"IndexServlet").forward(request,response);
151: }
152: System.out.println(444);
153: for (int i = 0; i < hotfoodList.size(); i++) {
154: Food hotfood = hotfoodList.get(i);
155: %>
156: <div class="menufood">


Stacktrace:] with root cause
java.lang.NullPointerException
at org.apache.jsp.index_jsp._jspService(index_jsp.java:282)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:844)


学习java web 1个月,学校课程
第一次提问 看不清楚的地方麻烦说一声 谢谢!!
...全文
552 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
佩卡卡 2018-06-08
  • 打赏
  • 举报
回复
引用 2 楼 QWERT4745 的回复:
Food hotfood = hotfoodList.get(i); 看下hotfood是否取到值
可以正常取到值,早上又试了一下发现是
 String path= request.getContextPath();
                    request.getRequestDispatcher(path+"IndexServlet").forward(request,response);
这段话的问题,从其他页面进入IndexServlet.java再跳转到Index.jsp页面可以正常显示,但是不明白为什么
佩卡卡 2018-06-08
  • 打赏
  • 举报
回复
引用 1 楼 xiaobudian0381 的回复:
111 222 (333 请求发送到了doGet, doGet 返回到index.jsp, 所以 index.jsp从头运行(111 222 444) ) 444 所以 打印的是 111 222 (333 (111 222 444 ) ) 444
意思是if里面执行完444还是继续执行的吗,那下面那些内容呢?我以为进到if里面下面的都不会执行了。
xiao潇 2018-06-08
  • 打赏
  • 举报
回复
111 222 (333 请求发送到了doGet, doGet 返回到index.jsp, 所以 index.jsp从头运行(111 222 444) ) 444 所以 打印的是 111 222 (333 (111 222 444 ) ) 444
QWERT4745 2018-06-08
  • 打赏
  • 举报
回复
Food hotfood = hotfoodList.get(i); 看下hotfood是否取到值
weixin_42418973 2018-06-08
  • 打赏
  • 举报
回复
不太会~~~~~~~~~~~~~~~~~~
xiao潇 2018-06-08
  • 打赏
  • 举报
回复
对的,还是会执行的,你要加 return 才会终止执行。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧