请老师看看哪儿错了
我跟着老师做2-9的时候出错了,报了500错误说错误发生在login.jsp的第十二行,但是我改了control.jsp(如图,因为有一次编译器给我报control.jsp的错)然后就好了,可是这样逻辑就不存在了。
以下是代码login.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>人事管理系统</title> </head> <body> <% request.setAttribute("name", "imooc"); request.getRequestDispatcher("control.jsp").forward(request, response); %> <h3 align = "center">人事管理系统登陆页面</h3> <hr> <!-- action代表了服务器端处理程序 --> <form action="control.jsp"> <table align="center"> <tr> <td> 账号: </td> <td> <input type="text" name = "account"> </td> </tr> <tr> <td> 密码: </td> <td> <input type="password" name = "password"> </td> </tr> <tr> <td> <input type="submit" value="登陆"> </td> </tr> </table> </form> </body> </html>
control.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" import="com.imooc.bean.*,com.imooc.db.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <%=request.getAttribute("name") %> <% String account = request.getParameter("account"); String password = request.getParameter("password"); Emp e = new Emp(account,null,password,null); boolean flag = true; if(flag == true){ %> <!-- 当信息正确时,显示页面 --> <table align="center" border="1px solid green" cellspacing="0"> <tr> <td> 账号 </td> <td> 员工姓名 </td> <td> 邮箱 </td> </tr> <%for(Emp emp:DBUtil.map.values()){ %> <tr> <td> <%=emp.getAccount() %> </td> <td> <%=emp.getName()%> </td> <td> <%=emp.getEmail() %> </td> </tr> <%} %> </table> <% }else{ %> <!-- 当信息错误时,显示页面 --> <% } %> </body> </html>
请老师帮我纠正一下错误(附:验证用户名密码是否正确的函数经过测试没有问题)
26
收起
正在回答
2回答
同学可以看一下4分30秒处老师的视频,老师是新建了一个resurt.jsp文件转发到这个页面,你转发到control.jsp这个里边的话,这个control.jsp页面需要login提交的用户名和密码,如果是空的,就会出现这个错误,而你在logon.jsp转发的时候,并没有提交用户名密码,所以control.jsp中的account和password都为null,所以,第15行传进去的Emp e 所有的属性为null,在DBUtils里,比较的时候,就会产生空指针异常了。建议同学像老师一样,新建一个jsp页面转发。
Java Web基础入门2018版
- 参与学习 716 人
- 提交作业 185 份
- 解答问题 1363 个
会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星