解决方案 »

  1.   

     第一步:编码(以传递的参数为str为例) 在传递数据前将str进行编码Java.net.URLEncoder.encode(str) 
    第二步:解码 在获取数据端将得到的数据进行解码 new String(str.getBytes("ISO8859_1"))
    简单示例程序如下:
    <%@ page contentType="text/html;charset=gb2312" %
    <a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%"点击这里</a<%//request.setCharacterEncoding("GBK");
    if(request.getParameter("url")!=null){str=request.getParameter("url");
    //下面是解码
    str=java.net.URLDecoder.decode(str,"GB2312");
      

  2.   

    分页是重复调用一个jsp文件 解码写到哪里啊?
      

  3.   

    参数传进去肯定是要使用啊,在使用前进行转码
    代码写在被调用的jsp文件中
      

  4.   

    可直接用下面的。
    首先要定义四个变量:
    int pageSize:每页显示多少条记录
    int pageNow:希望显示第几页
    int pageCount:一共有多少页
    int rowCount:一共有多少条记录
    说明:
    pageSize是指定的 pageNow是用户选择的
    rowCount是计算出来的 该计算式为
    if(rowCount%pageSize==0){
    pageCount=rowCount/pageSize;
    }else{
    pageCount=rowCount/pageSize+1;
    }
    (技巧:
    数据库插入:
    insert into 表名(字段1,2,)select 字段1,2,...from 表名
    )
    查询语句
    select top pageSize字段名列表from表名where id not in
    (select top pageSize*(pageNow-1)id from 表名)
    以我们前面的users表为例,显示第二页,该查询语句就是:
    select top 3 * from users where userId not in(select top 3 userId from users)
    (select top 3 userId from users):选出这个表的前三条 前面再选三条<h1>用户信息列表</h1>
    <%
    //定义四个分页会用到的变量
    int pageSize=3;
    int pageNow=1;//默认显示第一页
    int rowCount=0;//该值从数据库中查询
    int pageCount=0;//该值是通过pageSize和rowCount
    //接受用户希望显示的页数(pageNow)
    String s_pageNow=request.getParameter("pageNow");
    if(s_pageNow!=null){
    //接收到了pageNow
    pageNow=Integer.parseInt(s_pageNow);
    }
    //查询得到rowCount
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System","sa","");
    Statement sm=ct.createStatement();
    ResultSet rs=sm.exeuteQuery("select count(*) form users ");
    if(rs.next()){
    rowCount=rs.getInt(1);
    }
    //计算pageCount
    if(rowCount%pageSize==0){
    pageCount=rowCount/pageSize;
    }else{
    pageCount=rowCount/pageSize+1;
    }
    //查询出需要显示的记录
    rs=sm.exeuteQuery("select top "+pageSize
    +" * from users where userId not in(select top "
    +pageSize*(pageNow-1)+" userId from users) ");
    %>
    //显示<table border="1">
    <tr><td>用户ID</td><td>用户名字</td><td>密码</td><td>电邮</td><td>级别</td></tr>
    <%
    while(rs.next()){
    %><tr><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td>
    <td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td><td><%=rs.getInt(5)%></td></tr>
    <%}%>
    </table>
    <%
    //上一页
    if(pageNow!=1){
    out.println("<a href=wel.jsp?pageNow="+(pageNow-1)+">上一页</a>");
    }
    //显示超链接
    for(int i=1;i<=pageCount;i++){
    out.println("<a href=wel.jsp?pageNow="+i+">["+i+"]</a>");
    }
    //下一页
    if(pageNow!=pageCount){
    out.println("<a href=wel.jsp?pageNow="+(pageNow+1)+">下一页</a>");
    }
    %>接分。