请老师看看哪儿错了




我跟着老师做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 星