我做的没有问题啊?jsp+oracle
我觉得不是jsp的问题,
先查一下数据库,是不是正确显示汉字
然后检查页面传递参数是不是正确
等等吧,我觉得应该没有问题的。
抑或是本人水平不够,呵呵。
等待更高手执教

解决方案 »

  1.   

    我用的也是jsp+oracle8i,是在resin1.2.1的平台下面,我取得的文本框的值为String content=rs.getString("content"),然后执行以下这个sql语句, String sql="select id from news where title like %content%";,可是得不到正确的id值呀,文本框中我输入的是汉字,我想是不是汉字的原因呢?请高手指点一二呀,Mars_lee,你能给我看一下你完成这部分功能的源代码吗?再次感谢!
      

  2.   

    String file_type = request.getParameter("file_type");
    String sql="select * from table where file_type=?";
    pstmt = con.prepareStatement(sql);
    pstmt.setString(1,file_type);
    ...like也是一样的
    希望有所帮助
      

  3.   

    十分感谢Mars_lee,但是我想问几个比较菜的问题,你的查询语句中的查询条件file_type=?是什么意思呀,你的table表中有这个字段吗?我想应该是你表中某个字段包含file_type的内容才能作为我查询的条件呀?你能说明一下怎么样按我说的写查询条件呢?另外你的语句pstmt = con.prepareStatement(sql);
    pstmt.setString(1,file_type);
    是什么意思呀?特别是后面一句,我猜想第一句是执行sql语句,并返回结果给psmt,对吗?后一句呢?
      

  4.   

    去看一下JDBC方面的资料吧!
    setString(,file_type)为设置第一各参数,类型为file_type(String,int,float...)
    prepareStatement--〉知道statement吗?差不多!只不过先预编译!
      

  5.   

    写数据到数据库前,把GB2312/GBK转成8859_1,从数据库取数据出来以后要显示给user看的时候,再把8859_1换成GB2312/GBK,大概是这样的吧? 反正用MySQL好好的,Oracle还没机会用 ... 唉 ... 他们不放心我:~(
      

  6.   

    对不起,是我没有写全,呵呵
    PreparedStatement pstmt = null;
    ResultSet rs = null;file_type是字段名称对,都很对,后面的是
    rs = pstmt.executeQuery();
    if (rs.next()){
       .......
    }这是用jdbc和odbc桥的方法连接数据库的,可能和你的不太一样。不过sql语句应该一样的请问Dureek,为什么要有一个转的过程呢?
      

  7.   

    我以前做过WAP方面的东西,里面也有汉字处理的问题,最后是把UTF-8码转换为UNICODE码就搞定了.
    你的情况可能也是这样,jsp提交的汉字到服务端后可能是UTF-8码,而服务端不能识别,所以你需要转换后才能交给数据库处理.
      

  8.   

    hefeng:你知道在jsp中转换的代码是什么吗?我需要知道详细的转换语句,谢谢!
    同时对所有帮助我这个jsp初学者的人表示感谢!
      

  9.   

    Mars_lee:我想问一下的是你的语句中String sql="select * from table where file_type=?";中的file_type=?这个查询条件是什么意思?因为根据你的上一句,file_type是你从文本框中取得的值,而你说file_type又是你表中的字段名,我的查询条件要求是表中的file_type字段包含从文本框中取得的值(即file_type的值),file_type=?这个条件可以实现我的要求吗?而且你取到的值在jsp中是汉字吗?不用转换吗?希望你能给我答复,多谢!
      

  10.   

    典型的JSP中文问题,看看以前的问题
      

  11.   

    对,是汉字,比如,前面页面传过来“管理”(不需要转换)
    那么
    sql语句应该就是select * from table where file_type like '%管理%';
    我用的是weblogic,难道和web服务器有关么?
    或者是oracle的问题?
    唉,中文,想来就是编程的难点啊
      

  12.   

    <%@page contentType="text/html; charset=GB2312"%>还有可能是jdbc版本问题,去网易java,jsp版搜一下“中文问题”
      

  13.   

    在代入到查询SQL语句之前将取出的参数作如下转变不可以吗:
    ......
    String file_type = request.getParameter("file_type ");
    if (file_type != null){
    byte[] tmpbyte = file_type.getBytes("ISO8859_1");
    file_type = new String(tmpbyte);
    }
    String sql="select * from table where file_type=?";
    pstmt = con.prepareStatement(sql);
    pstmt.setString(1,file_type);
    ......
    另外,要在JSP页面中正确现实中文,必须加上下面二句:
    <%@ page contentType="text/html;charset=gb2312" %>
    <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">