2012-11-20 132 views
0

我已經在jsp中編寫了一個hello世界程序,現在我正在嘗試通過JSP處理表單。將jsp頁面鏈接到java類

我的JSP表單(GetName.jsp)看起來像這樣

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 


<FORM METHOD=POST ACTION="SaveName.jsp"> 
Name <INPUT TYPE=TEXT NAME=username SIZE=20><BR> 
Email <INPUT TYPE=TEXT NAME=email SIZE=20><BR> 
Age <INPUT TYPE=TEXT NAME=age SIZE=4> 
<P><INPUT TYPE=SUBMIT> 
</FORM> 
</BODY> 
</HTML> 
    </body> 
</html> 

同樣SaveName.jsp看起來像這樣

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 

     <jsp:useBean id="userData" class="javabeans.UserData" scope="session"/> 
<jsp:setProperty name="userData" property="*"/> 


</BODY> 
</HTML> 
    </body> 
</html> 

而且在包中的同一個項目命名的JavaBean命名的UserData類看起來像這樣。

package javabeans; 

public class UserData { 

    String username; 
    String email; 
    int age; 

    public void setUsername(String value) 
    { 
     username = value; 
    } 

    public void setEmail(String value) 
    { 
     email = value; 
    } 

    public void setAge(int value) 
    { 
     age = value; 
    } 

    public String getUsername() { return username; } 

    public String getEmail() { return email; } 

    public int getAge() { return age; } 

} 

現在運行GetName.jsp當我得到了以下錯誤

D:\javaworkspace\Netbeans7-2\HelloWeb\build\generated\src\org\apache\jsp\SaveName_jsp.java:56: cannot find symbol 
symbol : class UserData 
location: class org.apache.jsp.SaveName_jsp 
     UserData user = null; 
    ^
D:\javaworkspace\Netbeans7-2\HelloWeb\build\generated\src\org\apache\jsp\SaveName_jsp.java:58: cannot find symbol 
symbol : class UserData 
location: class org.apache.jsp.SaveName_jsp 
     user = (UserData) _jspx_page_context.getAttribute("user", PageContext.SESSION_SCOPE); 
D:\javaworkspace\Netbeans7-2\HelloWeb\build\generated\src\org\apache\jsp\SaveName_jsp.java:60: cannot find symbol 
symbol : class UserData 
location: class org.apache.jsp.SaveName_jsp 
      user = new UserData(); 
3 errors 
D:\javaworkspace\Netbeans7-2\HelloWeb\nbproject\build-impl.xml:930: The following error occurred while executing this line: 
D:\javaworkspace\Netbeans7-2\HelloWeb\nbproject\build-impl.xml:284: Compile failed; see the compiler error output for details. 
BUILD FAILED (total time: 2 seconds) 
+2

爲什麼你發送表單數據把jsp ..ü可以使用一個servlet,並從那裏設置參數爲使用用戶數據類,並顯示他們,我感到非常的JSP –

+0

使用這個類作爲一個bean新的jsp.So我只是隨機檢查如何處理表單。 – user1720616

回答

1

您需要導入UserData類中SaveName.jsp

添加這在SAVENAME你的JSP代碼的頂部.jsp

<%@ page import="javabeans.UserData" %> 
+0

謝謝。但這並不能解決我的問題。 – user1720616

+0

是'your_webapp/WEB-INF/classes/javabeans'文件夾下的'UserData' .class文件嗎? – Abubakkar

+0

不,它不是。也許我應該嘗試改變它。謝謝你的迴應。 – user1720616

0

我不知道你想在這裏實現什麼,但我可以得到e你簡單介紹jsp servlets

首先你可以創建一個簡單的jsp程序。它會要求用戶輸入姓名和電子郵件ID,並在表單操作中將其重定向到abc servlet。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!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> My first JSP </title> 
</head> 
<body>  
    <form action="abc">   
     Please enter a name <br> 
     <input type="text" name="name"size="20px"> 
        Please enter an email <br> 
     <input type="text" name="email"size="20px"> 
     <input type="submit"  value="submit">       
    </form>  
</body> 
</html> 

,然後創建了 「ABC」 的servlet 發生在你的servlet這個代碼。它會從jsp頁面獲取值並顯示它。

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.PrintWriter; 

public class abc extends HttpServlet { 
protected void doGet(HttpServletRequest request, 
    HttpServletResponse response) throws ServletException, IOException 
    { 
// reading the user input 
String name= request.getParameter("name");  
String email= request.getParameter("email");  
String msg="I'm"+name+"id is"+email; 
PrintWriter out = response.getWriter(); 
out.println (
    "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" 
     \"http://www.w3.org/TR/html4/loose.dtd\">\n" + 
    "<html> \n" + 
    "<head> \n" + 
     "<meta http-equiv=\"Content-Type\" content=\"text/html; 
     charset=ISO-8859-1\"> \n" + 
     "<title> Hi </title> \n" + 
    "</head> \n" + 
    "<body> \n" + 
    msg + 
     "</font> \n" + 
    "</body> \n" + 
    "</html>" 
     ); 
    } 
} 

在「web.xml」中定義您的servlet。你需要在web.xml文件中做servlet映射。

<servlet> 
<servlet-name>abc</servlet-name> 
<servlet-class>abc</servlet-class> 
    </servlet> 
    <servlet-mapping> 
<servlet-name>abc</servlet-name> 
<url-pattern>/abc</url-pattern> 
    </servlet-mapping> 
+0

非常感謝你:) – user1720616