问题描述
找到问题
根据页面的反馈可以看到,问题出在Servler容器里,具体查看servlet logs可以找到问题所在。
解决方法
首先找到Tomcat Localhost Logs红色部分。
代码
@WebServlet("/app")
public class HttpServletDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//请求转发
request.getRequestDispatcher("/user").forward(request,response);
request.setCharacterEncoding("UTF-8");
//以键值对返回所有数据
Map<String, String[]> parameterMap = request.getParameterMap();
//返回某个key对应的values
String[] s = request.getParameterValues("hobby");
//返回某个key对应的value
String username = request.getParameter("username");
//输出Map集合
for (String key : parameterMap.keySet()) {
System.out.print(key + ":");
String[] values = parameterMap.get(key);
for (String value : values) {
System.out.print(value + " ");
}
System.out.println();
}
//34行
for (String hobby : s) {
System.out.println(hobby);
}
System.out.println(username);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//43行
this.doGet(request, response);
}
}
结合错误和代码可以看到出错的地方是第34行,提示数组为空,可以发现是s为空,是因为html页面没有选中导致s为空。