0

我有一个提供登录屏幕的 jsp 文件,在提交表单后,控件必须转到 servlet。现在,我如何将表单中的值保存到模型(Bean 类)并让它们在控制器中使用。?我没有使用任何框架,如 struts、spring 等。

我使用了以下代码,但收到错误

java.lang.NoClassDefFoundError: bean/LoginBean

我的代码是:

index.jsp:

     <form name="signin" method="post" action="LoginServlet">
                 <table>
                     <tr><td><font>USERNAME</font></td><td><input type="text" name="signin_uname" /></td></tr>
                     <tr><td><font>PASSWORD</font></td><td><input type="password" name="signin_pwd" /></td></tr>
                     <tr><td><input type="reset" value="RESET" /></td><td><input type="submit" value="LOGIN" /></td></tr>
                 </table>
            </form>

登录Servlet.java

   @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  processRequest(request, response);
    HttpSession session=request.getSession();
    System.out.println(session);
    try {
        LoginBean login=new LoginBean();
        login.setSignin_pwd("raviteja");
        login.setSignin_uname("raviteja");
        System.out.println(login.getSignin_uname());
        System.out.println(login.getSignin_pwd());
    } finally {

    }
    response.sendRedirect("");
}

登录Bean.java

public class LoginBean implements Serializable {
String signin_uname,signin_pwd;
public LoginBean() {

}

public String getSignin_pwd() {
    return signin_pwd;
}

public void setSignin_pwd(String signin_pwd) {
    this.signin_pwd = signin_pwd;
}

public String getSignin_uname() {
    return signin_uname;
}

public void setSignin_uname(String signin_uname) {
    this.signin_uname = signin_uname;
}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
  <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servlets.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

4

2 回答 2

1

1 将 Spring 库添加到您的项目中,并将 web.xml 中的 DispatherServlet 映射到处理 /LoginServlet

2 创建 bean(表单和 bean 字段的名称相同):

public class LoginData {
    private String signin_uname;
    private String signin_pwd;

    // Getters and setters
}

3 创建控制器:

@Controller
public class LoginController {

    @RequestMapping(value = "/LoginServlet", method = RequestMethod.POST)
    public String postLoginData(@ModelAttribute LoginData loginData) {

        // All data from form will be at your model attribute bean. It will also will 
        // be putted at request
        String userName = logigData.getSignin_uname();

        return "loginResult.jsp";
    }
}
于 2012-05-31T06:13:24.723 回答
0

您的代码应该可以正常运行。你的类路径有问题。JVM 在运行时无法找到该类LoginBean

顺便说一句,您想向控制台输出什么?如果要打印输入的数据用户,请使用以下内容更正您的代码:

LoginBean login = new LoginBean(); 
String username = request.getParameter("signin_uname");
String password = request.getParameter("signin_pwd");
login.setSignin_uname(username);
login.setSignin_pwd(password); 

但是,如果您正确地使用您的代码创建了一个项目,则不应该出现错误。

于 2012-05-31T07:33:44.840 回答