2012-11-20 65 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