1.
get
方式
get 方式提交的话,表单项都保存在 http header 中,格式是
http://localhost:8080/hello.do?name1=value1&name2=value2 这样的字符串。 server 端通过 request.getParameter 是可以取到值的。
2.post 方式( enctype 为缺省的 application/x-www-form-urlencoded )
表单数据都保存在 http 的正文部分,格式类似于下面这样:用 request.getParameter 是可以取到数据的
name1=value1&name2=value2
3.post 方式( enctype 为 multipart/form-data ,多用于文件上传 )
表单数据都保存在 http 的正文部分,各个表单项之间用 boundary 隔开。格式类似于下面这样:用 request.getParameter 是取不到数据的,这时需要通过 request.getInputStream 来取数据,不过取到的是个 InputStream ,所以无法直接获取指定的表单项(需要自己对取到的流进行解析,才能得到表单项以及上传的文件内容等信息)。这种需求属于比较共通的功能,所以有很多开源的组件可以直接利用。比如: apache 的 fileupload 组件 ,smartupload 等。通过这些开源的 upload 组件提供的 API ,就可以直接从 request 中取得指定的表单项了。
get 方式提交的话,表单项都保存在 http header 中,格式是
http://localhost:8080/hello.do?name1=value1&name2=value2 这样的字符串。 server 端通过 request.getParameter 是可以取到值的。
2.post 方式( enctype 为缺省的 application/x-www-form-urlencoded )
表单数据都保存在 http 的正文部分,格式类似于下面这样:用 request.getParameter 是可以取到数据的
name1=value1&name2=value2
3.post 方式( enctype 为 multipart/form-data ,多用于文件上传 )
表单数据都保存在 http 的正文部分,各个表单项之间用 boundary 隔开。格式类似于下面这样:用 request.getParameter 是取不到数据的,这时需要通过 request.getInputStream 来取数据,不过取到的是个 InputStream ,所以无法直接获取指定的表单项(需要自己对取到的流进行解析,才能得到表单项以及上传的文件内容等信息)。这种需求属于比较共通的功能,所以有很多开源的组件可以直接利用。比如: apache 的 fileupload 组件 ,smartupload 等。通过这些开源的 upload 组件提供的 API ,就可以直接从 request 中取得指定的表单项了。