做女神投票网站碰到的问题
2013-12-12 18:26
344 查看
期末的JAVA作业:女神投票网站
没有用任何框架,因为要和一些没接触过JAVA WEB的人一起合作,于是采用了简单的JSP+servlet
主要的问题出在:在添加女神模块中form表单中除了一些名字,简介,还要有照片上传
照片上传我就采用了我博客中第一篇文章,用commons-fileupload以及commons-io两个包实现的文件上传
但是如果采用这样的方式,那么有一点要注意的是如网页表单为:
<form action="Add" method="post" enctype="MULTIPART/FORM-DATA">
<input type="text" name="name">
<input type="file" name="file" size="30"/>
<input type="text" name="introduce">
<input type="submit">
</form>
在相应的servlet中,如果采用String name = request.getParameter("name");是取不到值的。
name将为null,原因上网查了下愿意,采用MULTIPART/FORM-DATA文件上传方式,表单内容是以二进制流的方式上传的,所以用普通的方法得不到的。
必须在用getString方法得到
if(item.isFormField()){
if(item.getFieldName().equals("name")) {
name = new String(item.getString().getBytes("iso-8859-1"),"GB2312");
System.out.println(name);
}
else {
introduce = new String(item.getString().getBytes("iso-8859-1"),"GB2312");
System.out.println(introduce);
}
这里要说明几个函数的作用
getFieldName就是活的表单的属性名,即name属性
getString表示表单里的内容
比如表单中<input type="text" name="name">
那么当迭代到这一个FileItem时候
item.getFieldName就得到name
item.getString就得到网页中这个输入框中输入的内容
但是getString这里是我出现的第二个问题
女神名字介绍等肯定输入的是中文,用getString获得之后,就乱码了。
所以要转码一下new String(item.getString().getBytes("iso-8859-1"),"GB2312");
如果页面pageEncoding为GBK或者GB2312,则可以用
new String(item.getString().getBytes("iso-8859-1"),"GBK")和new String(item.getString().getBytes("iso-8859-1"),"GB2312");
这两种都是可以通用的
如果页面pageEncoding为UTF-8,则只能采用
new String(item.getString().getBytes("iso-8859-1"),"UTF-8");
没有用任何框架,因为要和一些没接触过JAVA WEB的人一起合作,于是采用了简单的JSP+servlet
主要的问题出在:在添加女神模块中form表单中除了一些名字,简介,还要有照片上传
照片上传我就采用了我博客中第一篇文章,用commons-fileupload以及commons-io两个包实现的文件上传
但是如果采用这样的方式,那么有一点要注意的是如网页表单为:
<form action="Add" method="post" enctype="MULTIPART/FORM-DATA">
<input type="text" name="name">
<input type="file" name="file" size="30"/>
<input type="text" name="introduce">
<input type="submit">
</form>
在相应的servlet中,如果采用String name = request.getParameter("name");是取不到值的。
name将为null,原因上网查了下愿意,采用MULTIPART/FORM-DATA文件上传方式,表单内容是以二进制流的方式上传的,所以用普通的方法得不到的。
必须在用getString方法得到
if(item.isFormField()){
if(item.getFieldName().equals("name")) {
name = new String(item.getString().getBytes("iso-8859-1"),"GB2312");
System.out.println(name);
}
else {
introduce = new String(item.getString().getBytes("iso-8859-1"),"GB2312");
System.out.println(introduce);
}
这里要说明几个函数的作用
getFieldName就是活的表单的属性名,即name属性
getString表示表单里的内容
比如表单中<input type="text" name="name">
那么当迭代到这一个FileItem时候
item.getFieldName就得到name
item.getString就得到网页中这个输入框中输入的内容
但是getString这里是我出现的第二个问题
女神名字介绍等肯定输入的是中文,用getString获得之后,就乱码了。
所以要转码一下new String(item.getString().getBytes("iso-8859-1"),"GB2312");
如果页面pageEncoding为GBK或者GB2312,则可以用
new String(item.getString().getBytes("iso-8859-1"),"GBK")和new String(item.getString().getBytes("iso-8859-1"),"GB2312");
这两种都是可以通用的
如果页面pageEncoding为UTF-8,则只能采用
new String(item.getString().getBytes("iso-8859-1"),"UTF-8");
相关文章推荐
- 维护网站时碰到的Office组件导入、导出出现的问题
- asp.net网站发布时碰到的一些问题
- 网站的国际化碰到的地图问题
- 部署网站时,IIS碰到的问题
- google adsense布署到网站上碰到的问题
- IIS7添加ASP.NET网站碰到的问题
- IE访问Form Builder网站的碰到的几个问题
- 从零开始实现一个电子商务网站----解决碰到的问题(六)
- 发布Sharepoint网站和扩展WEB应用时碰到的问题
- 推荐一个网站,碰到jenkins相关的问题,可以上去查查
- ISS 发布网站流程以及碰到的问题解决
- 发布网站碰到的问题
- ASP.NET网站SESSION丢失的问题
- 网站使用UTF-8编码不能自动识别问题的解决
- 改善VS2005发布网站问题
- Google浏览器打开总是跳到hao123网站问题
- FT网站开发过程遇到的问题汇总
- ORACLE RAC安装过程碰到问题处理汇总
- 面试随笔——记录一些面试中碰到的问题(初级/中级Java开发)
- Lync 2010 部署过程中碰到的问题