【问题标题】:passing data from jsp to servlet return null将数据从 jsp 传递到 servlet 返回 null
【发布时间】:2016-01-31 13:42:39
【问题描述】:

我的讲师登录表单有问题。这是我的讲师登录表单(JSP 文件),我结合了管理员登录表单(index.jsp):

<div class="form">
    <div class="thumbnail"><img src="images/schedule_icon.png"/></div>
    <form action="lecturerLogin" class="register-form">
        <input type="text" name="lecturerID" placeholder="Lecturer ID"/>
        <input type="password" name="lecturerPassword" placeholder="Password"/>
        <button>Login</button>
        <p class="message">Forgot password?<a href="#">Recover here</a></p>
    </form>
    <form action="adminLogin" class="login-form">
        <input type="text" name="adminname" placeholder="Admin Name"/>
        <input type="password" name="adminpassword" placeholder="Password"/>
        <button>Login</button>
        <p class="message">Not an admin? <a href="#">Login here</a></p>
    </form>
</div>

这是 XML 文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 id="WebApp_ID" version="3.0"> 
  <display-name>myapp</display-name>   
  <servlet>   
    <servlet-name>LoginServlet</servlet-name>   
    <servlet-class>CSP600.LoginServlet</servlet-class> 
  </servlet>   
  <servlet-mapping>   
    <servlet-name>LoginServlet</servlet-name>   
    <url-pattern>/adminLogin</url-pattern>  
  </servlet-mapping> 
  <servlet>   
    <servlet-name>LoginLecturerServlet</servlet-name>   
    <servlet-class>CSP600.LoginLecturerServlet</servlet-class> 
  </servlet>   
  <servlet-mapping>   
    <servlet-name>LoginLecturerServlet</servlet-name>   
    <url-pattern>/lecturerLogin</url-pattern>  
  </servlet-mapping>
  <session-config>    
    <session-timeout>-1</session-timeout>  
  </session-config>
</web-app>

这是我的 Servlet(使用 doGet):

try {
    LecturerBean lecturer = new LecturerBean();
    lecturer.setLecturerID(request.getParameter("lecturerid"));
    lecturer.setLecturerPassword(request.getParameter("lecturerpassword"));
    lecturer = LecturerDAO.lecturerlogin(lecturer);
    if (lecturer.isValid()) {
        HttpSession session = request.getSession(true);
        session.setAttribute("currentSessionUser", lecturer);
        response.sendRedirect("homeLecturer.jsp"); // logged-in page
    }
    else {
        response.sendRedirect("invalidLogin.jsp"); // error page
    }
}
catch (Throwable theException) {
    System.out.println(theException);
}

我使用相同的代码进行管理员登录(当然,我更改了必要的部分)并且它工作得非常好。但是,来自 JSP 文件的输入数据由于未知原因未传递。因此,它向 bean 和 DAO 返回 NULL。我该如何解决这个问题?

【问题讨论】:

    标签: java xml jsp servlets login


    【解决方案1】:

    改变

     lecturer.setLecturerID(request.getParameter("lecturerid"));
    lecturer.setLecturerPassword(request.getParameter("lecturerpassword"));
    

     lecturer.setLecturerID(request.getParameter("lecturerID"));
    lecturer.setLecturerPassword(request.getParameter("lecturerPassword"));
    

    【讨论】:

    • 是的..这种错误经常发生..愚蠢但耗时..很高兴我能提供帮助。