热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JSP分页时URL传值中文不能实现翻页当是英文时可以实现

<%@pagelanguagejavaimportjava.util.*,java.sql.*pageEncodingGBKcontentTypetexthtm
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK" cOntentType="text/html;Charset=GB2312"%> 
<% request.setCharacterEncoding("GB2312"); %>
<%@ page import="java.sql.*"%>



 <% int pageSize = 1;//每页显示的记录数
    int pageCount = 0;//总页数

    String JXH = request.getParameter("ptype");

//一连上数据库
    Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//可滚动查询数据的结果集
    if(JXH!=""){
    ResultSet rs=stmt.executeQuery("select  *  from 数据统计表   where 型号='"+JXH+"'");
     rs.last(); //让游标到表中的最后一行
        int rowCount = rs.getRow(); //获取记录总数.
         pageCount = rowCount;
        int showPage = 1;//当前页
    //取得用户所指定的页
    String goToPage = request.getParameter("showPage");
    if (goToPage == null){
         goToPage = "1";
     }
    //转换成整形
    try{
         showPage = Integer.parseInt(goToPage);
     }
    catch (NumberFormatException ex){
         showPage = 1;
     }
    //当前页小于等于第一页则按第一页算 如果 当前页大于等于总页数则为最后页
    if(showPage <=1){
         showPage = 1;
     }
    else if(showPage >= pageCount){
         showPage = pageCount;
     }
    //游标的位置 (当前页 - 1) * 页面大小 + 1
    int posion = showPage;
    //设置游标的位置
     rs.absolute(posion);

   int i =0;
   //循环显示表中的数据 pageSize(每页所显示的记录)
   //rs.isAfterLast() 游标是否在最后一行之后说明后面已经没记录
   while(i  
%>
   
   
    
    
     飞机号:<%=rs.getString("飞机号")%>
      型号:<%=rs.getString("型号")%>
     
      
        <%
        String fjxh = rs.getString("型号");
        
        String fjh = rs.getString("飞机号");
        
 
             
             String sql2="select * from 数据统计表  where 飞机号='"+fjh+"'  order by序号";
             ResultSet rs2 = stmt.executeQuery(sql2); 
             while (rs2.next()){
      %>
    

    
                <%=rs2.getString("序号")+"#地面时间:"+rs2.getString("地面时间")%>  
              <% }
         %>
        
        
        ResultSet rs=stmt.executeQuery("select  *  from 数据统计表   where 型号='"+JXH+"'");
        rs.next();i++;}%>
        
        

   
    
     当前第<%=showPage%>页
     共<%=pageCount%>页
     
      ">首页
      &ptype=<%=rs.getString("型号)%>">上一页
      &ptype=<%=rs.getString("型号")%>">下一页
      &ptype=<%=rs.getString("型号")%>">尾页
     
      共<%=rowCount%>条记录 
   <%}
   
%>



当点击下一页时出现
当型号为英文时可以实现,为中文时出现上图的问题 点击首页时 为空白页而且url中出现ptype参数没传过来
http://localhost:8080/testorcal/chaxun2.jsp?showPage=1&ptype=


我用的是ORACLE11g  数据库编码 ZHS16GBK


求解决

5 个解决方案

#1


 第一步:编码(以传递的参数为str为例) 在传递数据前将str进行编码Java.net.URLEncoder.encode(str) 
第二步:解码 在获取数据端将得到的数据进行解码 new String(str.getBytes("ISO8859_1"))
简单示例程序如下:
<%@ page cOntentType="text/html;charset=gb2312" %
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):选出这个表的前三条 前面再选三条

用户信息列表


<%
//定义四个分页会用到的变量
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","s

a","");
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) ");
%>
//显示


用户ID用户名字密码电邮

级别
<%
while(rs.next()){
%>

<%=rs.getInt(1)%><%=rs.getString(2)%>
<%=rs.getString(3)%><%=rs.getString(4)%

><%=rs.getInt(5)%>
<%}%>

<%
//上一页
if(pageNow!=1){
out.println("上一页

");
}
//显示超链接
for(int i=1;i<=pageCount;i++){
out.println("["+i+"]");
}
//下一页
if(pageNow!=pageCount){
out.println("下一页

");
}
%>

接分。

#5


该回复于2014-09-22 08:47:58被管理员删除

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
author-avatar
赵博钧石博
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有