求助关于jsp空指针异常的问题,谢谢各位大神了

这个是输入界面

 <form action="login.jsp" method="post"  form col-md-12 center-block">
          <div class="form-group">
            <input type="text" id="username" class="form-control input-lg" placeholder="用户名">
          </div>
          <div class="form-group">
            <input type="password" id="password" class="form-control input-lg" placeholder="登录密码">
          </div>
          <div class="form-group">
            <select name="shenfen">
                <option value="User_Company">公司管理人员</option>
                <option value="User_Admin">管理员</option>
            </select>
          </div>
          <div class="form-group">
            <input type="text" id="CheckId" class="form-control input-lg" placeholder="验证码">
          </div>

          <div class="form-group">          
            <input type="submit" value="登录">
            </a>            
            <span><a href="#">找回密码,请联系超级管理员[张三]</a></span><!--弹出联系管理员界面-->
          </div>
        </form>

这个是处理界面:

 <%
    try{
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    //String shenfen = request.getParameter("select");
        Company_DAO ucd = new Company_DAO();
        Company c = ucd.login(username, password);
        session.setAttribute("loginUser", c);
        response.sendRedirect("Company/main_company.jsp");
        return;
    }catch(MsgException e){
        %>
        <h2 style="color:red">发生错误:<%=e.getMessage() %></h2>
        <%
    }
%>

运行之后出现的错误:
图片说明
HTTP Status 500 - An exception occurred processing JSP page /login.jsp at line 21

type Exception report

message An exception occurred processing JSP page /login.jsp at line 21

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 /login.jsp at line 21

18: String password = request.getParameter("password");
19: //String shenfen = request.getParameter("select");
20: Company_DAO ucd = new Company_DAO();
21: Company c = ucd.login(username, password);
22: session.setAttribute("loginUser", c);
23: response.sendRedirect("Company/main_company.jsp");
24: return;

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause

java.lang.NullPointerException
hnu_Project_Dao.Company_DAO.login(Company_DAO.java:47)
org.apache.jsp.login_jsp._jspService(login_jsp.java:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

求救啊!大神们!

https://zhidao.baidu.com/question/518737551122909965.html

建议查看c是否为空,session是否为空

你看错误信息是21行 就打印一下 Company c = ucd.login(username, password); 看看c有值没

jsp页面用户名和密码框的name是username,password不是id吧

 <input type="text" id="username" class="form-control input-lg" placeholder="用户名">
 <input type="password" id="password" class="form-control input-lg" placeholder="登录密码">

你在这里面加上name,然后看username和password有没有从session中取到,如果取到了再看ucd.login(username, password);这个方法有没有返回值