我试图从我的servlet的html表单获取信息。我的问题是我不能得到想要的方法在我的servlet上的click()方法。我的servlet在包login上,它的名字是loginServlet。如果你能告诉我我的代码有什么问题:
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 " +
"Transitional//EN">n" +
"<HTML>n" +
"<HEAD><TITLE>login</TITLE></HEAD>n" +
"<BODY>n" +
"<FORM ACTION=login/loginServlet METHOD=click>"+
"<table border ='1'>" +
"<tr>" +
"<th colspan='2'>Register Account Information</th>" +
"</tr>" +
"<tr>" +
"<td>Requested Username:</td>" +
"<td><input type='text' name='username' /></td>" +
"</tr>" +
"<tr>" +
"<td>Password:</td>" +
"<td><input type='password' name='password' /></td>" +
"</tr>" +
"<tr>" +
"<th colspan='2'><input type='Submit' value='Submit'>"+
"</tr>" +
"</table>"+
"</FORM></BODY></HTML>");
}
public void click(){
int i=0;
for (i=0;i<1000;i++){
}
非常感谢!
首先,永远不要使用servlet生成这样的静态html。从来没有。
修复后,您需要了解web服务器是如何工作的:servlet或JSP生成发送到浏览器的html块。浏览器将呈现它(显示在屏幕上)并查找特定的说明。<form>
基本上是说:让用户填写表单中的任何字段,然后调用action=
属性所指示的页面/服务,这样所有表单字段都作为变量返回。
你可能需要学习一些关于web编程的知识,Java web技术的一个很好的免费资源是Java EE教程。您将看到JSP技术正逐渐被JSF所取代(这就是为什么我指向教程的第5版),但我绝对建议您从JSP开始。
你太离谱了…
属性METHOD是针对GET(调用的方法是servlet的doGet())或POST请求(调用的方法是servlet的doPost()),而不是针对任何特定的servlet方法。
你误解了<form>
标签。
你需要指定一个URL来最终执行你的方法。
HTML method
属性指定HTTP请求谓词,可以是GET
或POST
。