标题:用servlet处理表单的问题?
只看楼主
zehua
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-24
 问题点数:0 回复次数:3 
用servlet处理表单的问题?

我的JSP页面如下:名为:userRegist1.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<script language="javascript">
function on_submit()
{//验证数据的合法性
if (form1.username.value == "")
{
alert("用户名不能为空,请输入用户名!");
form1.username.focus();
return false;
}
if (form1.userpassword.value == "")
{
alert("用户密码不能为空,请输入密码!");
form1.userpassword.focus();
return false;
}
if (form1.reuserpassword.value == "")
{
alert("用户确认密码不能为空,请输入密码!");
form1.reuserpassword.focus();
return false;
}
if (form1.userpassword.value != form1.reuserpassword.value)
{
alert("密码与确认密码不同");
form1.userpassword.focus();
return false;
}
if (form1.email.value.length!= 0)
{
for (i=0; i<form1.email.value.length; i++)
if (form1.email.value.charAt(i)=="@")
break;
if (i==form1.email.value.length)
{
alert("非法EMail地址!");
form1.email.focus();
return false;
}
}
else
{
alert("请输入Email!");
form1.email.focus();
return false;

}
}
</script>
<html>
<head>
<title>新用户注册</title>
</head>
<body>
<form method="post" action="servlet/acceptUserRegist" name="form1" onSubmit="return on_submit()">
新用户注册<br>
用户名(*):<input type="text" name="username" size="20"><br>
密&nbsp; 码(*):<input type="password" name="userpassword" size="20"><br>
再输一次密码(*):<input type="password" name="reuserpassword" size="20"><br>
性别:<input type="radio" value="男" checked name="sex">男<input type="radio" name="sex" value="女">女<br>
出生年月:<input name="year" size="4" maxlength=4>年
<select name="month">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="8">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>月
<input name="day" size="3" maxlength=4>日<br>
电子邮箱(*):<input name="email" maxlength=28><br>
家庭住址:<input type="text" name="address" size="20"><br>
<input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"><br>
</form>
</body>
</html>

我的java文件如下:名为:acceptUserRegist.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class acceptUserRegist extends HttpServlet
{
public String codeToString(String str)
{//处理中文字符串的函数
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
//设置mime
response.setContentType("text/html;charset=GB2312");
PrintWriter out=response.getWriter();
out.println("<HTML><head><title>接收新用户注册</title></head><BODY>");
out.println("这是新用户注册所提交的数据:<br>");
out.println("用户名是:"+codeToString(request.getParameter("username"))+"<br>");
out.println("密码是:"+codeToString(request.getParameter("userpassword"))+"<br>");
out.println("性别是:"+codeToString(request.getParameter("sex"))+"<br>");
out.println("出生年月是:"+request.getParameter("year")+request.getParameter("month")+request.getParameter("day")+"<br>");
out.println("电子邮箱是:"+request.getParameter("email")+"<br>");
out.println("家庭住址是:"+codeToString(request.getParameter("address"))+"<br>");
out.println("</body> </html>");
}
}

我将上面这个JAVA文件编译成 acceptUserRegist.class 文件放在 tomcat\common\classes 下面

改写 tomcat\webapps\ROOT\WEB-INF 下的web.xml如下:

<servlet>
<servlet-name>acceptUserRegist</servlet-name>
<servlet-class>acceptUserRegist</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>acceptUserRegist</servlet-name>
<url-pattern>/userRegist1.jsp</url-pattern>
</servlet-mapping>

出错如下:
type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL).


--------------------------------------------------------------------------------
打开userRegist1.jsp这个页面都打开不了,更不用说用servlet处理这个表单了,
请问我该如何配置,昨晚看了一晚,上了N个论坛,高手们,help me!

搜索更多相关主题的帖子: 表单 servlet value 用户名 
2006-07-24 10:40
可可℃乐
Rank: 2
等 级:新手上路
威 望:3
帖 子:1054
专家分:0
注 册:2006-5-9
得分:0 

<servlet>
<servlet-name>acceptUserRegist</servlet-name> /// 类名
<servlet-class>acceptUserRegist</servlet-class> /// 包名+类名 一定不能写错
</servlet>
<servlet-mapping>
<servlet-name>acceptUserRegist</servlet-name> // 随便写的名字
<url-pattern>/userRegist1.jsp</url-pattern> // URL 也就是表单里的Action值
</servlet-mapping>

----------------
很明显的URL部署有问题!
<url-pattern>/userRegist1.jsp</url-pattern>
这句是什么意思呀???
这里部署了这样,你的action="servlet/acceptUserRegist"这个明显有问题的
如果SERVLET象你部署那样的,你的action="userRegist1.jsp"这样才对.并不是一定要在action里加上SERVLET,如果部署的时候加了这个的话才要有那个的.


[url=http://www.]网页设计教程[/url]
2006-07-24 11:05
zehua
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-24
得分:0 

那你说应该如何部署?
<url-pattern>userRegist1.jsp</url-patten>不是应该用来返回userRegist1.jsp这个页面的信息的么?

2006-07-24 13:06
zehua
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-7-24
得分:0 

俺搞定了,搞佐成日,

把web.xml改成这样
servlet-name>acceptUserRegist</servlet-name>
<servlet-class>acceptUserRegist</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>acceptUserRegist</servlet-name>
<url-pattern>/acceptUserRegist</url-pattern>
</servlet-mapping>

jsp页面这样
<form method="post" action="acceptUserRegist" name="form1" onSubmit="return on_submit()">
然后把acceptUserRegist.class 文件放在 tomcat\webapps\ROOT\WEB-INF\classes下就行了

2006-07-24 13:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-79944-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.219486 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved