当前位置: 技术问答>java相关
cooleyes(眼睛) 请进
来源: 互联网 发布时间:2015-05-01
本文导语: 小弟刚学xml,还请多多指教。 我的程序是一个servlet,流程是这样的,开始在session中有一个dom对象,然后再向dom里添加节点,由transform转换输出到客户端,dom对象这一块我认为没有问题,因为我将输出定义到一个文件...
小弟刚学xml,还请多多指教。
我的程序是一个servlet,流程是这样的,开始在session中有一个dom对象,然后再向dom里添加节点,由transform转换输出到客户端,dom对象这一块我认为没有问题,因为我将输出定义到一个文件时,显示正确,就是和xsl结合后,输出的网页老是乱码
public class AddToCart extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)throws
ServletException,IOException
{
PrintWriter out=response.getWriter();
response.setContentType("text/html");
try{
String id=request.getParameter("productid");
dbSql dbc = new dbSql();
String sql = "select * from product where productid="+id;
ResultSet rs = dbc.executeQuery(sql);
if(rs.next())
{
String descStr=rs.getString("disc");
String priceStr=Float.toString(rs.getFloat("price"));
String nameStr=rs.getString("productname");
HttpSession session=request.getSession(true);
Document doc=(Document)session.getAttribute("Cart");
//添加节点
if(doc!=null)
{
Element products=doc.createElement("products");
Element productid=doc.createElement("productID");
productid.appendChild(doc.createTextNode(id));
products.appendChild(productid);
Element productname=doc.createElement("productname");
productname.appendChild(doc.createTextNode(nameStr));
products.appendChild(productname);
Element disc=doc.createElement("disc");
disc.appendChild(doc.createTextNode(descStr));
products.appendChild(disc);
Element price=doc.createElement("price");
price.appendChild(doc.createTextNode(priceStr));
products.appendChild(price);
doc.getDocumentElement().appendChild(products);
}
session.setAttribute("Cart",doc);
DOMSource source=new DOMSource(doc);
StreamResult target=new StreamResult(out);
TransformerFactory myFactory=TransformerFactory.newInstance();
Transformer transformer=myFactory.newTransformer(new StreamSource("shoppingcart.xsl"));
transformer.setOutputProperty("encoding","GB2312");
transformer.transform(source,target);
/*
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty("encoding","GB2312");
transformer.transform(source,target);
*/
}
else{
getServletConfig().getServletContext().getRequestDispatcher("/errorpage.jsp").forward(request,response);
}
}catch(Exception se) {
System.err.println("aq.executeQuery: " + se.getMessage());
}
}
}
xsl文件如下:
购物车
名称说明价格数量
删除
这是输出的网页代码
???
????????
h03 index 78.0??
我的程序是一个servlet,流程是这样的,开始在session中有一个dom对象,然后再向dom里添加节点,由transform转换输出到客户端,dom对象这一块我认为没有问题,因为我将输出定义到一个文件时,显示正确,就是和xsl结合后,输出的网页老是乱码
public class AddToCart extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)throws
ServletException,IOException
{
PrintWriter out=response.getWriter();
response.setContentType("text/html");
try{
String id=request.getParameter("productid");
dbSql dbc = new dbSql();
String sql = "select * from product where productid="+id;
ResultSet rs = dbc.executeQuery(sql);
if(rs.next())
{
String descStr=rs.getString("disc");
String priceStr=Float.toString(rs.getFloat("price"));
String nameStr=rs.getString("productname");
HttpSession session=request.getSession(true);
Document doc=(Document)session.getAttribute("Cart");
//添加节点
if(doc!=null)
{
Element products=doc.createElement("products");
Element productid=doc.createElement("productID");
productid.appendChild(doc.createTextNode(id));
products.appendChild(productid);
Element productname=doc.createElement("productname");
productname.appendChild(doc.createTextNode(nameStr));
products.appendChild(productname);
Element disc=doc.createElement("disc");
disc.appendChild(doc.createTextNode(descStr));
products.appendChild(disc);
Element price=doc.createElement("price");
price.appendChild(doc.createTextNode(priceStr));
products.appendChild(price);
doc.getDocumentElement().appendChild(products);
}
session.setAttribute("Cart",doc);
DOMSource source=new DOMSource(doc);
StreamResult target=new StreamResult(out);
TransformerFactory myFactory=TransformerFactory.newInstance();
Transformer transformer=myFactory.newTransformer(new StreamSource("shoppingcart.xsl"));
transformer.setOutputProperty("encoding","GB2312");
transformer.transform(source,target);
/*
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty("encoding","GB2312");
transformer.transform(source,target);
*/
}
else{
getServletConfig().getServletContext().getRequestDispatcher("/errorpage.jsp").forward(request,response);
}
}catch(Exception se) {
System.err.println("aq.executeQuery: " + se.getMessage());
}
}
}
xsl文件如下:
购物车
名称说明价格数量
删除
这是输出的网页代码
???
????????
h03 index 78.0??
|
没关系了
我自己处理就行了
我自己处理就行了
|
把
xmlStr.append(""+rs.getString("productname")
改成
String pdcStr = new String(rs.getString("productname").getBytes("iso-8859-1"));
xmlStr.append(""+pdcStr
或者
String pdcStr = new String(rs.getString("productname").getBytes(),"iso-8859-1");
xmlStr.append(""+pdcStr
试试
我想弄清楚你现在各个环节的字符编码情况
xmlStr.append(""+rs.getString("productname")
改成
String pdcStr = new String(rs.getString("productname").getBytes("iso-8859-1"));
xmlStr.append(""+pdcStr
或者
String pdcStr = new String(rs.getString("productname").getBytes(),"iso-8859-1");
xmlStr.append(""+pdcStr
试试
我想弄清楚你现在各个环节的字符编码情况
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。