一。定义 表单
表单有如下 性质
可以输入一些 内容 ,叫表单元素
一般都有一个按钮负责提交
单击提交 后,表单元素中的内容 会提交 给服务器
表单元素放在<form></form>之间
如下 :
表单中的内容 会提交 给服务 器,如何确定提交给服务 器端的那个页面呢?可以 用 action属性来确定 。
改上面 的
那么 page.jsp 中如何 得到提交 过来 的内容 呢。用的是request对象 。
二。单一表单元素数据 的获取
单一 表单指的是表单元素送给服务 器时,只是一个变量。
(1)获得文本框中的数据
实际 中可以根据传递的值 查询数据 库。
如果输入 的是中文,不能正常显示 ,后面不规则讲怎么办。下面的都是英文的。
我们可以 看到,提交 的内容 在浏览器的地址上都可以看到,因为默认是 get ,不安全,怎么办呢,方法是在表单中,将属性method 改成 post .
get 和post 是提交 请求的 两种方法。
(2)获得密码框中的数据
不会显示密码 明文。
(3)获得多选文本框中的数据
(4)获得单选按钮中的数据
请您选择性别: 男 女
提交过去 的是value 而不是后面的汉字。
(5)获取下拉菜单中的数据
三。一些 问题
(1)用javascrept进行验证
有时候 ,要会输入 的内容 作一些 验证,比如输入 用户名不能为空,因此 ,当我们点击提交 时,不能马上提交 ,而要先验证,这里要用到javascript ,
因此 ,提交 按钮不能设定为 submit ,而应该是 button .
(2)提交过程中显示乱码
当我们把汉字提交给服务器时,服务器认为是iso-8859编码 ,而在网页上显示 的是 gb2312 编码 ,不能兼容 ,有三种方法解
1. 将其转换成 gb2312
这个 方法要对每一个字符 串进行转码,很麻烦 。
<% String name = request.getParameter("name"); if (name!=null){ name = new String (name.getBytes("ISO-8859-1"), "gb2312"); out.println(name); } %>
2. 直接修改 request 的编码
这样 就不用再对每一个字符串进行转码
<% request.setCharacterEncoding("gb2312"); String name = request.getParameter("name"); if (name!=null){ //name = new String (name.getBytes("ISO-8859-1"), "gb2312"); out.println(name); } %>
注意:
要在取出值前进行设置,表单的提交 方法应该是post ,且在每一个页面中都要进行设置,也比较复杂 。
3 使用过虑器
可以 对整个web 运用进行设置。