贴上代码
public class UserPostServlet extends HttpServlet { /**
* Constructor of the object.
*/
int i=0;
String ii;
public UserPostServlet() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
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.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
} /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//--获取隐藏在网页中的前面所有用户的信息存入新建立的相应数组中保存下来
String hide=request.getParameter("ii");
i = Integer.parseInt(hide);
i++;
String userName[]=new String[100];
String userPassword[]=new String[100];
String userLikes[][]=new String[100][];
for(int j=1;j<i;j++){
userName[j]=request.getParameter("userName[j]");
//userName[j]=new String(userName[j].getBytes("iso-8859-1"),"utf-8");
userPassword[j]=request.getParameter("userPassword[j]");
userLikes[j]=request.getParameterValues("userLikes[j]");
}
///-----将新产生的第i个用户的信息存入相应数组中
userName[i]=request.getParameter("username");
userName[i]=new String(userName[i].getBytes("iso-8859-1"),"utf-8");
userPassword[i]=request.getParameter("password");
userLikes[i]=request.getParameterValues("userLike");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"></HEAD>");
out.println(" <BODY>");
out.println("<table border=-3>");
out.println("<tr><th>用户名</th><th>爱好</th>");
for(int j=1;j<=i;j++){
out.println("<tr><th><input name='userName[j]' value="+userName[j]+"></th><th>");
out.println("<input name='userLikes[j]' value=");
for(String str:userLikes[j]) out.print(str+" ");
out.println("/></th>"); out.println("<input type='hidden' name='userPassword[j]' value="+userPassword[j]+">");
}
ii = String.valueOf(i);
out.println("</table>");
out.println("</h1>");
out.println("<form method=\"post\" action=\"/first/servlet/UserPostServlet\">");
out.println("用户名:<input type='text' name='username' ><br/>");
out.println(" 密 码 :<input type='password' name='password'/><br/>");
out.println("爱好:<input name='userLike' type='checkbox' value='music'>音乐 ");
out.println(" <input name='userLike' type='checkbox' value='sport'>运动 ");
out.println("<input name='userLike' type='checkbox' value='literal'>文学<br/>");
out.println("<input type='submit' value='提交'/>");
out.println("<input type='hidden' name='ii' value="+ii+">");
out.println("</form>");/**/ out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}}//**************************************************************************************另外起始页面userPost.html<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8">
</head>
<body>
<form method="post"
action="/first/servlet/UserPostServlet">
用户名:<input type="text" name="username" />
<br/>
密 码 :<input type="password" name="password"/>
<br/>
爱好:<input name="userLike" type="checkbox" value="music">音乐
<input name="userLike" type="checkbox" value="sport">运动
<input name="userLike" type="checkbox" value="literal">文学<br/>
<input type="submit" value="提交"/>
<input type="hidden" name="ii" value="0">
</form></body>
</html>
public class UserPostServlet extends HttpServlet { /**
* Constructor of the object.
*/
int i=0;
String ii;
public UserPostServlet() {
super();
} /**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
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.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
} /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//--获取隐藏在网页中的前面所有用户的信息存入新建立的相应数组中保存下来
String hide=request.getParameter("ii");
i = Integer.parseInt(hide);
i++;
String userName[]=new String[100];
String userPassword[]=new String[100];
String userLikes[][]=new String[100][];
for(int j=1;j<i;j++){
userName[j]=request.getParameter("userName[j]");
//userName[j]=new String(userName[j].getBytes("iso-8859-1"),"utf-8");
userPassword[j]=request.getParameter("userPassword[j]");
userLikes[j]=request.getParameterValues("userLikes[j]");
}
///-----将新产生的第i个用户的信息存入相应数组中
userName[i]=request.getParameter("username");
userName[i]=new String(userName[i].getBytes("iso-8859-1"),"utf-8");
userPassword[i]=request.getParameter("password");
userLikes[i]=request.getParameterValues("userLike");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"></HEAD>");
out.println(" <BODY>");
out.println("<table border=-3>");
out.println("<tr><th>用户名</th><th>爱好</th>");
for(int j=1;j<=i;j++){
out.println("<tr><th><input name='userName[j]' value="+userName[j]+"></th><th>");
out.println("<input name='userLikes[j]' value=");
for(String str:userLikes[j]) out.print(str+" ");
out.println("/></th>"); out.println("<input type='hidden' name='userPassword[j]' value="+userPassword[j]+">");
}
ii = String.valueOf(i);
out.println("</table>");
out.println("</h1>");
out.println("<form method=\"post\" action=\"/first/servlet/UserPostServlet\">");
out.println("用户名:<input type='text' name='username' ><br/>");
out.println(" 密 码 :<input type='password' name='password'/><br/>");
out.println("爱好:<input name='userLike' type='checkbox' value='music'>音乐 ");
out.println(" <input name='userLike' type='checkbox' value='sport'>运动 ");
out.println("<input name='userLike' type='checkbox' value='literal'>文学<br/>");
out.println("<input type='submit' value='提交'/>");
out.println("<input type='hidden' name='ii' value="+ii+">");
out.println("</form>");/**/ out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}}//**************************************************************************************另外起始页面userPost.html<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8">
</head>
<body>
<form method="post"
action="/first/servlet/UserPostServlet">
用户名:<input type="text" name="username" />
<br/>
密 码 :<input type="password" name="password"/>
<br/>
爱好:<input name="userLike" type="checkbox" value="music">音乐
<input name="userLike" type="checkbox" value="sport">运动
<input name="userLike" type="checkbox" value="literal">文学<br/>
<input type="submit" value="提交"/>
<input type="hidden" name="ii" value="0">
</form></body>
</html>
解决方案 »
- javascript读取到的数据信息怎么显示到html表格中???
- 求JS效果代码
- js求一本传授经验的书?
- flex grid 的显示列是怎么设置的,我想用COOKIE
- 求js获取href的方法,无id,无name
- 剪贴板问题:复制内容会自动附加内容(也可以说setTimeout()这个函数问题)
- ext-1.1.1--Hello World 例子问题
- 困扰我的问题!dream制作导航条下拉菜单问题!相信好多人都遇到过。
- 请教关于eval的用法
- 帮帮忙,有没有Maqueen的Javascritp代码?
- 急求高手指导!!!帮我看看这个问题该怎么解决啊,问了好多同学都不会。
- radio和checkbox的使用
String hide=request.getParameter("ii"); //这里可能是空值 加上判断,下面类似的最好都做处理
i = Integer.parseInt(hide);
2. for(int j=1;j<i;j++){
userName[j]=request.getParameter("userName[j]");//这里和下面的 userName[j]都有问题,应该为"userName["+j+"]",下同
//userName[j]=new String(userName[j].getBytes("iso-8859-1"),"utf-8");
userPassword[j]=request.getParameter("userPassword[j]");
userLikes[j]=request.getParameterValues("userLikes[j]");
}
ii不是空值啊,
在userPost.html里面有 <input type="hidden" name="ii" value="0">我先说一下,我想实现的功能是,通过userPost.html首次传入用户数据,然后通过dopost方法将其存入数组中利用显示输出和hidden隐式输出实现继续保存这些数据,然后用户再输入新的数据,重新调用dopost将原先通过显式和隐式输出保存下来的数据和新添加的一个用户数据再次保存在新的数组中,就这样循环实现动态输出用户信息表单。
如 userName[0]
userName[1]
userName[2]像你的只有
userName[j]
userName[j]
userName[j]
userName[j]
userName[j]
嗯嗯,你刚才一说我就把它们全改过了,但是还是空指针问题,劳您看看我是不是数组定义有问题?我基础知识学的不是很牢不知该怎么改,我发现运行起来前面输入的信息都没有成功的传进数组保存起来,但是新添加的却可以动态的显示近表单,但前面都是空值null
也就是说:问题在这里for(int j=1;j<i;j++){
userName[j]=request.getParameter("userName["+j+"]");
// userName[j]=new String(userName[j].getBytes("iso-8859-1"),"utf-8");
userPassword[j]=request.getParameter("userPassword["+j+"]");
userLikes[j]=request.getParameterValues("userLikes["+j+"]");
}
而这一段 userName[i]=request.getParameter("username");
userName[i]=new String(userName[i].getBytes("iso-8859-1"),"utf-8");
userPassword[i]=request.getParameter("password");
userLikes[i]=request.getParameterValues("userLike");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();是正确的
还有着一段中有一点问题for(int j=1;j<=i;j++){
out.println("<tr><th>"+j+"<input name='userName["+j+"]' value="+userName[j]+"></th><th>");
out.println("<input name='userLikes["+j+"]' value=");
// for(String str:userLikes[j]) out.print(str+" ");
out.println("/></th>"); out.println("<input type='hidden' name='userPassword[j]' value="+userPassword[j]+">");
}
其他的应该也没有问题,但是我就是不知道怎么改,应该是属于基础定义的小问题吧……( ̄▽ ̄)"||
这一段out.println("<table border=-3>");
out.println("<tr><th>用户名</th><th>爱好</th>");
for(int j=1;j<=i;j++){
out.println("<tr><th><input name='userName[j]' value="+userName[j]+"></th><th>");
out.println("<input name='userLikes[j]' value=");
for(String str:userLikes[j]) out.print(str+" ");
out.println("/></th>"); out.println("<input type='hidden' name='userPassword[j]' value="+userPassword[j]+">");
}
ii = String.valueOf(i);
out.println("</table>");
out.println("</h1>");
out.println("<form method=\"post\" action=\"/first/servlet/UserPostServlet\">");
因该把out.println("<form method=\"post\" action=\"/first/servlet/UserPostServlet\">");这句放在最上面,表单根本就没有用到servlet当然保存不了,天那我真是白痴……