Java Web开拓中,最常用的便是在后台获取前台的参数,经典的案例便是 JSP 表单传值到后台的 Servlet,然后在 doGet 或者 doPost 中获取,这里把常用参数获取总结一下。

一个范例的jsp表单如下

<form action=\公众WorldServlet\公众 method=\公众post\"大众 enctype=\公众multipart/form-data\"大众>

jsp页面取后台的值想知道Java Web网站后台是若何获取我们提交的信息吗看这里 Ruby

<!--普通文本框-->

用户名:<input type=\"大众text\公众 name=\"大众username\"大众/><br/>

密 码:<input type=\"大众password\公众 name=\公众pwd\公众/><br/>

<!--多选框-->

<input type=\"大众checkbox\"大众 name=\公众v1\"大众 value=\"大众西瓜\公众>西瓜

<input type=\"大众checkbox\"大众 name=\"大众v1\"大众 value=\公众苹果\公众>苹果<br/>

<!--单选框-->

<input type=\"大众radio\公众 name=\"大众sex\公众value=\"大众男\"大众/>男

<input type=\公众radio\公众 name=\"大众sex\"大众value=\公众女\"大众/>女<br/>

<!--隐蔽的用途是提交数据,同时不影响界面-->

<input type=\"大众hidden\公众value=\"大众123\公众name=\"大众sal\"大众/>

<!--选择列表-->

选择你的出生地:

<select name=\公众bir\"大众>

<option value=\"大众\"大众>--请选择--</option>

<option value=\"大众bj\"大众>北京</option>

<option value=\"大众sh\"大众>上海</option>

<option value=\"大众cq\公众>重庆</option>

</select>

<br/>

<!--文本域-->

请留言<br/>

<textarea cols=\"大众30\公众 rows=\"大众10\"大众 name=\公众liuyan\"大众></textarea><br/>

<!--文件上传-->

选择要上传的文件<br/>

请选择文件:<input type=\"大众file\公众 name=\"大众myfile\公众/><br/>

<input type=\"大众submit\公众 value=\"大众登录\"大众/> <input type=\公众reset\公众 value=\公众重新填写\公众/><br/>

</form>

后台的Servlet获取用户提交的信息

//获取文本框的值

String username = request.getParameter(\"大众username\"大众);

//获取多选框的值这里获取的是选中的多选框的value属性对应的值而不是页面显示的值

String[] fruit = request.getParameterValues(\公众v1\公众);

//获取单选框的值这里获取的是选中的单选框的value属性对应的值而不是页面显示的值

String sex = request.getParameter(\"大众sex\"大众);

//获取下拉列表的值这里获取的是选中的option的value属性对应的值而不是页面显示的值

String select = request.getParameter(\"大众bir\"大众);

//获取文本域的值

String liuyan = request.getParameter(\"大众liuyan\"大众);

//文件上传

//首先要在Servlet上用 @MultipartConfig 标识支持文件上传

//存储路径 在 WebContent 下新建一个 fileupload 文件夹

String storePath = request.getServletContext().getRealPath(\"大众/fileupload\"大众);

//获取part工具 参数为name属性的值

Part part = request.getPart(\"大众myfile\公众);

//Servlet3没有供应直接获取文件名的方法,须要从要求头中解析出来

//获取要求头

String header = part.getHeader(\公众content-disposition\"大众);

//获取文件名

String fileName = header.substring(header.lastIndexOf(\"大众=\公众) + 2, header.length() - 1);;

//把文件写到指定路径

part.write(storePath + File.separator + fileName);

//多文件上传

String storePath = request.getServletContext().getRealPath(\"大众/fileupload\"大众);

for (Part part : request.getParts())

{

if(\"大众myfile\"大众.equals(part.getName()))

{

String header = part.getHeader(\"大众content-disposition\"大众);

String fileName = header.substring(header.lastIndexOf(\"大众=\公众) + 2, header.length() - 1);;

part.write(storePath+File.separator+fileName);}

}

}

//文件下载

String filepath = \"大众D://XXXX.jpg\公众;

//办理中文下载文件名乱码

String filename = new String(\"大众XXXX.jpg\"大众.getBytes(\公众UTF-8\"大众), \"大众ISO8859-1\"大众);

BufferedInputStream bi = new BufferedInputStream(new FileInputStream(new File(filepath)));

OutputStream os = response.getOutputStream();

//指定头部信息

response.setHeader(\"大众Content-Disposition\"大众, \公众attachment; filename=\\\"大众\"大众 + filename + \"大众\\\"大众\公众);

//指定 setContentType 下载时会弹出对话框

response.setContentType(\"大众application/x-msdownload\"大众);

byte buffer[] = newbyte[1024];

int size;

while ((size = bi.read(buffer, 0, buffer.length)) != -1)

{

os.write(buffer, 0, size);

}

bi.close();

os.close();

总结

实在通过Servlet 3.0获取用户在表单的输入信息是比较随意马虎的,获取上传的文件也大略了很多。
动手试试吧,看好不好使。