日期:2014-05-16 浏览次数:20352 次
今天在编写一个关于用不同的方式来设置form表单实验时发现了一个挺头痛的问题。程序如下:
第一种情况
<form name=form1 method="post">
?? user:<input type=text name=user1 ><br>
?? <input type=submit value=register>
</form>
?
第二种情况
<form name=form2 method="post">
?? user:<input type=text name=user2 value=<%= request.getParameter("user2") %>><br>
?? <input type=submit value=register>
</form>
?
第三种情况
<form name=form3 method="post">
?? user:<input type=text name=user3 value=${param.user3}><br>
?? <input type=submit value=register>
</form>
?
(1)???? 由于在jsp页面中直接写入中文,并且没有使用page指令设置页面的编码方式,于是在用浏览器访问时出现异常。
(2)???? 后来无意间在整个程序的最前面插入了一个空行,程序运行居然没问题了,用浏览器访问显示出了正常的内容。为什么加入了个回车换行程序就正常运行呢,不解,于是查看了一下有jsp程序生成的Servlet源程序。发现其实程序并不算完全没问题,因为在生成的Servlet源程序中jsp页面中的中文显示为乱码(浏览显示时正常)如下为生成的Servlet源程序中的一部分:
out.write("\r\n");
out.write("μúò????é??\r\n");
out.write("<form name=form1 method=\"post\">\r\n");
out.write("\tuser:<input type=text name=user1 ><br>\r\n");
out.write("\t<input type=submit value=register>\r\n");
out.write("</form>\r\n");
out.write("\r\n");
out.write("μú?t???é??\r\n");
out.write("<form name=form2 method=\"post\">\r\n");
out.write("\tuser:<input type=text name=user2 value=");