这是servlet中的部分代码
取值的时候汉字的goodsType和goodsName都是乱码 如何解决额?
坐等高人解答..
request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");
//接收从添加页面传递过来的参数 传递方式 get 将form表单里面的内容以get方式提交到本页面
GoodsDTO good=new GoodsDTO();
GoodsDAO dao=new GoodsDAO();
PrintWriter out=response.getWriter();
String file=request.getParameter("picture");
try { // 对request对象进行解析 取出 上传时保存的数据
ServletFileUpload fileupload = new ServletFileUpload(
new DiskFileItemFactory());
// 解析 返回一个list list装有文件目录的list
List list = fileupload.parseRequest(request);
// 遍历
Iterator it = list.iterator();
while (it.hasNext()) {
FileItem fi = (FileItem) it.next();// 获得单个文件目录
String str = fi.getFieldName();// 获得从页面传递参数的name 不仅仅是文件的name
if (fi.isFormField()) {
String value = fi.getString();
String name = fi.getFieldName();
System.out.println(name + ":" + value);
} else {// 就是文件
// 获得文件的名字
String name = fi.getName();
System.out.println(name + "==========");
// 截取字符串获取文件的名字
// 获取最后一个“/”的位置
int n = name.lastIndexOf("\\");
// 开始截取
String filename = name.substring(n + 1);
// 将上传的文件写到指定位置
File f = new File("C:/Users/Administrator/Desktop/shopping/WebRoot/football/" + filename);
// 开始写
fi.write(f);
} } } catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
}finally{
String goodsname=request.getParameter("goodsname");
goodsname=new String(goodsname.getBytes("iso-8859-1"),"utf-8");
String goodsprice=request.getParameter("goodsprice");
String goodstype=request.getParameter("goodstype");
goodstype=new String(goodstype.getBytes("iso-8859-1"),"utf-8");
String amount=request.getParameter("amount");
//将去到的值全部放在对象里面
System.out.println("上传的文件是:" + file);
good.setGoodsName(goodsname);
good.setGoodsPrice(goodsprice);
good.setGoodsType(goodstype);
int goodsamount=Integer.parseInt(amount);
good.setGoodsAmount(goodsamount);
good.setPicture(file);
boolean flag=dao.add(good);
if(flag){
out.println("<script>");
out.println("alert('恭喜你添加成功');");
out.println("window.location.href='ShowServlet'");
out.println("</script>");
}
}
}
取值的时候汉字的goodsType和goodsName都是乱码 如何解决额?
坐等高人解答..
request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");
//接收从添加页面传递过来的参数 传递方式 get 将form表单里面的内容以get方式提交到本页面
GoodsDTO good=new GoodsDTO();
GoodsDAO dao=new GoodsDAO();
PrintWriter out=response.getWriter();
String file=request.getParameter("picture");
try { // 对request对象进行解析 取出 上传时保存的数据
ServletFileUpload fileupload = new ServletFileUpload(
new DiskFileItemFactory());
// 解析 返回一个list list装有文件目录的list
List list = fileupload.parseRequest(request);
// 遍历
Iterator it = list.iterator();
while (it.hasNext()) {
FileItem fi = (FileItem) it.next();// 获得单个文件目录
String str = fi.getFieldName();// 获得从页面传递参数的name 不仅仅是文件的name
if (fi.isFormField()) {
String value = fi.getString();
String name = fi.getFieldName();
System.out.println(name + ":" + value);
} else {// 就是文件
// 获得文件的名字
String name = fi.getName();
System.out.println(name + "==========");
// 截取字符串获取文件的名字
// 获取最后一个“/”的位置
int n = name.lastIndexOf("\\");
// 开始截取
String filename = name.substring(n + 1);
// 将上传的文件写到指定位置
File f = new File("C:/Users/Administrator/Desktop/shopping/WebRoot/football/" + filename);
// 开始写
fi.write(f);
} } } catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
}finally{
String goodsname=request.getParameter("goodsname");
goodsname=new String(goodsname.getBytes("iso-8859-1"),"utf-8");
String goodsprice=request.getParameter("goodsprice");
String goodstype=request.getParameter("goodstype");
goodstype=new String(goodstype.getBytes("iso-8859-1"),"utf-8");
String amount=request.getParameter("amount");
//将去到的值全部放在对象里面
System.out.println("上传的文件是:" + file);
good.setGoodsName(goodsname);
good.setGoodsPrice(goodsprice);
good.setGoodsType(goodstype);
int goodsamount=Integer.parseInt(amount);
good.setGoodsAmount(goodsamount);
good.setPicture(file);
boolean flag=dao.add(good);
if(flag){
out.println("<script>");
out.println("alert('恭喜你添加成功');");
out.println("window.location.href='ShowServlet'");
out.println("</script>");
}
}
}
解决方案 »
- jasperreport如何传入多个Bean参数??高手来!!
- servlet生产环境获取页参数时报错,应该如何处理?
- 一个表单两个按钮,分别做不同的事??
- 请问各位一个web上格子地图的做法.谢谢各位:)
- 200分:贝宝收款做,安全要注意什么?
- 顶者有分:关于网页中表格数据排序的问题,曾在一个网页看到比较好的方法,但是看的不太懂,请大家来分析一下。
- 如何禁止IE的回退历史页功能
- 访问一个web site的时候,为什么会建立多个connection呢。
- 急!请教XXXX.jsp?ID=.... 的传值问题
- 怎么回事:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error setting up static cursor cache(在线等)
- jsp怎么检测用户是从哪来的
- Eclipse 3.7 JEE版不认识session对象?
js encodeURI(encodeURI("我"));
把你需要获取的值都这样转一下就ok了
goodsname=new String(goodsname.getBytes("iso-8859-1"),"utf-8");
这句话和你说那方法一样 已经使用了 取值还是乱码
我连工程都转了utf-8还是乱码
解决办法:servlet:resp.setContentType("text/html;charset=gbk");
Jsp: <%@ page contentType="text/html;charset=gb2312"%>
注意:一定要写在PrintWriter out = resp.getWriter();之前
场合:解决get方式乱码问题:
解决办法:修改server.xml URIEncoding="GBK"
场合:解决post方式提交内容的乱码
解决办法:request.setCharacterEncoding("GBK");
注意:一定要写在存取第一个参数之前
不要调用response.setCharacterEncoding("GBK");
场合:<jsp:param name="user" value="<%=s%>"/>,url地址包含中文参数
解决办法:<%request.setCharacterEncoding("GBK");%>
注意: