当前位置:  技术问答>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??





|
没关系了
我自己处理就行了

|

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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3