目录

一、规范访问

二、模糊查询分页

1、代码分析

上一章我们有讲到将伪表查询代替之前的模糊查询来进行分页,今天我们要在伪表查询的基础上加上模糊查询,也就是说在模糊查询时也可以分页了

三、主题分页查询(index.jsp客户页面)

1、代码分析

新闻表和主题表字段

2、index.jsp完整代码


一、规范访问

没有登录就不能访问

 进入到其他页面,没有登录就提醒他,并跳转到登录界面

首先要在login.jsp(登录页面)的帮助文件dologin.jsp进行一个用户名的传值

   if(rs.next()){//把用户名放入内置对象session中    session.setAttribute("属性名", 值);session.setAttribute("uname", uname);//把用户编号放入内置对象session中session.setAttribute("uuid", rs.getInt(1));//重定向response.sendRedirect("../index.jsp");}else{//失败out.print("<script>alert('用户名或密码错误,请重新登录');location.href='../login.jsp'</script>");}
<%//判断用户是不是为空Object obj = session.getAttribute("uname");if(obj==null){out.print("<script>alert('老铁你没登录,请登录');location.href='login.jsp'</script>");}
%>

这里涉及到一个重定向跳转页面,可以参考:  重定向与转发的区别与应用

1)  转发 : 

        request.getRequestDispatcher("admin.jsp").forward(request, response);

2)重定向 :

        response.sendRedirect("admin.jsp");

二、模糊查询分页

1、代码分析

上一章我们有讲到将伪表查询代替之前的模糊查询来进行分页,今天我们要在伪表查询的基础上加上模糊查询,也就是说在模糊查询时也可以分页了

首先:将之前注释掉的获取模糊查询的关键字的代码还原

            //获取模糊查询的关键字String str=request.getParameter("str");if(str==null){//判断str是否为空str="";//str为空,就让str="",以便下面SQL语句的执行——查询所有}

其次:将admin.jsp两个查询SQL语句加入模糊查询

select count(*) from news2
select * from(select a.*,rownum mid from news2 a )b where mid>=? and mid<=?

改为:

select count(*) from news2  where ntitle like '%"+str+"%'
select * from(select a.*,rownum mid from news2 a where ntitle like '%"+str+"%')b where mid>=? and mid<=?

最后:代码最后的上下页跳转也需要进行判断

            <a href="admin.jsp?pageIndex=1">首页</a> <a href="admin.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%><%if(str!=null){out.print("&str="+str);}%>">上一页</a>&nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; <a href="admin.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%><%if(str!=null){out.print("&str="+str);}%>">下一页</a> <a href="admin.jsp?pageIndex=<%=maxPage%>">末页</a> 

这样模糊查询和查询所有的分页显示数据就不会混淆

三、主题分页查询(index.jsp客户页面)

1、代码分析

新闻表和主题表字段

 根据news新闻表中 tid(新闻主题的编号)用伪表查询,查询到该新闻的前几条新闻标题

        <%//连接数据库Class.forName("oracle.jdbc.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";Connection con = DriverManager.getConnection(url, "scott", "tiger");PreparedStatement ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=6)b where mid>=1 and mid<=3");ResultSet rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %>

这段代码是显示index页面左边的代码

  <div class="sidebar"><h1> <img src="data:images/title_1.gif" alt="国内新闻" /> </h1><div class="side_list"><ul><li><%//连接数据库Class.forName("oracle.jdbc.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";Connection con = DriverManager.getConnection(url, "scott", "tiger");PreparedStatement ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=6)b where mid>=1 and mid<=3");ResultSet rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %></li></ul></div><h1> <img src="data:images/title_2.gif" alt="国际新闻" /> </h1><div class="side_list"><ul><li><%ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=7)b where mid>=1 and mid<=3");rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %></li></ul></div><h1> <img src="data:images/title_3.gif" alt="娱乐新闻" /> </h1><div class="side_list"><ul><li><%ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=2)b where mid>=1 and mid<=3");rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %></li></ul></div></div><div class="main">

查询新闻主题表,主题赋值

            <%//查询主题ps = con.prepareStatement("select * from subject2");rs = ps.executeQuery();while(rs.next()){%><a href='index.jsp?tid=<%=rs.getInt(1)%>'><b> <%=rs.getString(2) %> </b></a><%} %> 

 分页代码分析可参考: jsp新闻项目分页

       <%//接收新闻主题String id = request.getParameter("tid");String countSql = "select count(*) from news2";String pageSql = "select * from (select a.*,rownum mid from news2 a)b where mid>=? and mid<=?";int tid = 1;if(id!=null){//要执行 根据主题查询 的 分页tid = Integer.valueOf(id);countSql = "select count(*) from news2 where tid="+tid;pageSql = "select * from (select a.*,rownum mid from news2 a where tid="+tid+")b where mid>=? and mid<=?";}//查询新闻总条数ps = con.prepareStatement(countSql);rs = ps.executeQuery();int count = 0;if(rs.next()){count = rs.getInt(1);}//获取页面String index = request.getParameter("pageIndex");int pageIndex = 1;if(index!=null){pageIndex = Integer.valueOf(index);                  }//查询新闻int pageSize = 5;//求出最大页码int maxPage = count/pageSize;if(count%pageSize != 0){maxPage++;}int start = (pageIndex-1)*pageSize+1;int end = pageIndex*pageSize;ps = con.prepareStatement(pageSql);ps.setInt(1, start);ps.setInt(2, end);rs = ps.executeQuery();while(rs.next()){%><li><a href="newspages/read_news.jsp?nid=<%=rs.getInt(1)%>"><%=rs.getString("ntitle") %> </a><span> <%=rs.getDate("ndate") %> </span></li><li class='space'></li><%} %><p align="right"> <a href="index.jsp<%if(id!=null){out.print("?tid="+tid);}%>">首页</a> <a href="index.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%><%if(id!=null){out.print("&tid="+tid);}%>">上一页</a>&nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; <a href="index.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">下一页</a> <a href="index.jsp?pageIndex=<%=maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">末页</a> </p>

下面小段代码是给图中标注的地方赋值:

<a href="newspages/read_news.jsp?nid=<%=rs.getInt(1)%>"><%=rs.getString("ntitle") %> </a>
<span> <%=rs.getDate("ndate") %> </span>

 这里要稍注意:

        对比之前,这里 首页 和 末页 都需要进行判断

        因为,admin页面有查询所有显示所有数据,而index页面是根据新闻的主题编号进行查询新闻并分页的

            <a href="index.jsp<%if(id!=null){out.print("?tid="+tid);}%>">首页</a> <a href="index.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%><%if(id!=null){out.print("&tid="+tid);}%>">上一页</a>&nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; <a href="index.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">下一页</a> <a href="index.jsp?pageIndex=<%=maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">末页</a> 

2、index.jsp完整代码

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>新闻中国</title>
<link href="CSS/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<%//判断用户是不是为空Object obj = session.getAttribute("uname");if(obj==null){out.print("<script>alert('老铁你没登录,请登录');location.href='login.jsp'</script>");}
%>
<div id="header"><div id="top_login"><label> 登录名 </label><input type="text" id="uname" value="" class="login_input" /><label> 密  码 </label><input type="password" id="upwd" value="" class="login_input" /><input type="button" class="login_sub" value="登录" onclick="login()"/><label id="error"> </label><img src="data:images/friend_logo.gif" alt="Google" id="friend_logo" /> </div><div id="nav"><div id="logo"> <img src="data:images/logo.jpg" alt="新闻中国" /> </div><div id="a_b01"> <img src="data:images/a_b01.gif" alt="" /> </div><!--mainnav end--></div>
</div>
<div id="container"><div class="sidebar"><h1> <img src="data:images/title_1.gif" alt="国内新闻" /> </h1><div class="side_list"><ul><li><%//连接数据库Class.forName("oracle.jdbc.OracleDriver");String url = "jdbc:oracle:thin:@localhost:1521:orcl";Connection con = DriverManager.getConnection(url, "scott", "tiger");PreparedStatement ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=6)b where mid>=1 and mid<=3");ResultSet rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %></li></ul></div><h1> <img src="data:images/title_2.gif" alt="国际新闻" /> </h1><div class="side_list"><ul><li><%ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=7)b where mid>=1 and mid<=3");rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %></li></ul></div><h1> <img src="data:images/title_3.gif" alt="娱乐新闻" /> </h1><div class="side_list"><ul><li><%ps = con.prepareStatement("select * from(select a.*,rownum mid from news2 a where tid=2)b where mid>=1 and mid<=3");rs = ps.executeQuery();while(rs.next()){%><li><%=rs.getString("ntitle") %></li><%} %></li></ul></div></div><div class="main"><div class="class_type"> <img src="data:images/class_type.gif" alt="新闻中心" /> </div><div class="content"><ul class="class_date"><li id='class_month'> <%//查询主题ps = con.prepareStatement("select * from subject2");rs = ps.executeQuery();while(rs.next()){%><a href='index.jsp?tid=<%=rs.getInt(1)%>'><b> <%=rs.getString(2) %> </b></a><%} %> </li></ul><ul class="classlist"><%//接收新闻主题String id = request.getParameter("tid");String countSql = "select count(*) from news2";String pageSql = "select * from (select a.*,rownum mid from news2 a)b where mid>=? and mid<=?";int tid = 1;if(id!=null){//要执行 根据主题查询 的 分页tid = Integer.valueOf(id);countSql = "select count(*) from news2 where tid="+tid;pageSql = "select * from (select a.*,rownum mid from news2 a where tid="+tid+")b where mid>=? and mid<=?";}//查询新闻总条数ps = con.prepareStatement(countSql);rs = ps.executeQuery();int count = 0;if(rs.next()){count = rs.getInt(1);}//获取页面String index = request.getParameter("pageIndex");int pageIndex = 1;if(index!=null){pageIndex = Integer.valueOf(index);                  }//查询新闻int pageSize = 5;//求出最大页码int maxPage = count/pageSize;if(count%pageSize != 0){maxPage++;}int start = (pageIndex-1)*pageSize+1;int end = pageIndex*pageSize;ps = con.prepareStatement(pageSql);ps.setInt(1, start);ps.setInt(2, end);rs = ps.executeQuery();while(rs.next()){%><li><a href="newspages/read_news.jsp?nid=<%=rs.getInt(1)%>"><%=rs.getString("ntitle") %> </a><span> <%=rs.getDate("ndate") %> </span></li><li class='space'></li><%} %><p align="right"> <a href="index.jsp<%if(id!=null){out.print("?tid="+tid);}%>">首页</a> <a href="index.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%><%if(id!=null){out.print("&tid="+tid);}%>">上一页</a>&nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; <a href="index.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">下一页</a> <a href="index.jsp?pageIndex=<%=maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">末页</a> </p></ul></div><div class="picnews"><ul><li> <a href="#"><img src="data:images/Picture1.jpg" width="249" alt="" /> </a><a href="#">幻想中穿越时空</a> </li><li> <a href="#"><img src="data:images/Picture2.jpg" width="249" alt="" /> </a><a href="#">国庆多变的发型</a> </li><li> <a href="#"><img src="data:images/Picture3.jpg" width="249" alt="" /> </a><a href="#">新技术照亮都市</a> </li><li> <a href="#"><img src="data:images/Picture4.jpg" width="249" alt="" /> </a><a href="#">群星闪耀红地毯</a> </li></ul></div></div>
</div>
<div id="friend"><h1 class="friend_t"> <img src="data:images/friend_ico.gif" alt="合作伙伴" /> </h1><div class="friend_list"><ul><li> <a href="#">中国政府网</a> </li><li> <a href="#">中国政府网</a> </li><li> <a href="#">中国政府网</a> </li><li> <a href="#">中国政府网</a> </li><li> <a href="#">中国政府网</a> </li><li> <a href="#">中国政府网</a> </li><li> <a href="#">中国政府网</a> </li></ul></div>
</div>
<div id="footer"><p class=""> 24小时客户服务热线:010-68988888      <a href="#">常见问题解答</a>      新闻热线:010-627488888 <br />文明办网文明上网举报电话:010-627488888      举报邮箱: <a href="#">jubao@jb-aptech.com.cn</a> </p><p class="copyright"> Copyright &copy; 1999-2009 News China gov, All Right Reserver <br />新闻中国 版权所有 </p>
</div>
</body>
</html>

“未来这个词听上去就是美好

可是你别忘了呀

每一个我们所期待的美好未来

都必须有一个努力的现在”

Jsp新闻项目(规范访问分页之模糊查询主题分页查询[客户页面])相关推荐

  1. jsp新闻项目(分页评论的维护浏览量)

    目录 一.分页 1.思路分析 2.代码 二.评论的维护 (Oracle)数据库评论表 1.添加评论 2.显示评论 3.删除评论 三.浏览量 一.分页 1.思路分析 当我们的数据库数据过多时,一个页面会 ...

  2. 新闻项目【分页模糊查询】

    今天要讲的是新闻页面的分页模糊查询.由上一个博客可知,新闻页面的分页:是先给页面绑定数据,再利用sql语句进行分页.而分页模糊查询就是再次基础上根据关键字查询相关数据.    String sql = ...

  3. 新闻发布系统——模糊查询分页与主题分页

    效果图(模糊查询分页) 实现代码(java部分) <ul class="classlist"><%//获取模糊查询的关键字String str = request ...

  4. JSP Servlet 实现模糊动态查询并分页(拼接Sql)

    需求: 根据两个条件查询. 根据查询的结果分页,并记住查询条件. 大体流程是这样的: 第一次打开时,默认分页显示所有信息,这时候点击末页会取到最后一页数据. 当填写或选择了查询条件时,根据条件取出符合 ...

  5. Springboot打jar包项目无法访问jsp问题解决

    Springboot打jar包项目无法访问jsp问题解决 参考文章: (1)Springboot打jar包项目无法访问jsp问题解决 (2)https://www.cnblogs.com/vicF/p ...

  6. 使用JSP做一个小小的新闻项目(END)

    使用JSP做一个小小的新闻项目(END) 用户主页: show.jsp:用户的一个浏览界面 管理员主页: index.jsp:管理员主页(完全版,没多大变化,完善了一些机制) 新闻阅读: read.j ...

  7. 项目规范,介绍,规划与搭建,模块化开发,网站favicon,网站TDK

    项目规范 1.项目文件夹 根据项目名称创建项目文件夹.如:ushop html.css.img.js 文件均归档至项目名称目录中 HTML 文件.根据页面内容以英文命名,首页或只有一个页面通常命名为i ...

  8. 使用EasyUI界面实现分页和模糊查询

    一,项目结构 注:以上项目的结构层次是基于使用EasyUI搭建树形界面以及导航栏  二,创建图书表 create table t_book (id integer not null,bookname ...

  9. index客户主页+页面分页的模糊查询 and add知识

    一.首先回望一下,我们经常会在JSP学习中遇到的问题和有必要掌握的 a little 知识. 1.如何修改默认的编码方式? 1)首先点击eclipse上方工具栏的window,选择preference ...

最新文章

  1. AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)
  2. 深入理解PHP内核(五)函数的内部结构
  3. 分布式对象存储系统在openstack中的应用研究--Ceph(一)
  4. L1-041 寻找250
  5. python主题壁纸_Python教你如何下载你喜欢的桌面壁纸
  6. 使用Node.js部署智能合約(Smart Contract)
  7. JVM从入门到精通(八):JVM调优实战
  8. android 4.0 电话录音,ANDROID音频系统散记之四:4.0音频系统HAL初探
  9. teamcity_TeamCity工件:HTTP,Ant,Gradle和Maven
  10. 实现klib_使用klib加速数据清理和预处理
  11. Dojo学习笔记(三):类化JavaScript
  12. 深度学习之神经网络核心原理与算法-caffekeras框架图片分类
  13. HDUacm2095
  14. Iostream通用输入/输出流类
  15. 安航云酒店管理系统面试话术
  16. 婚礼邀请函微信小程序
  17. 项目管理中的技术风险
  18. EBS中如何实现简单的日记账导入
  19. Spring Security # ACLs
  20. IO流_递归、IO流总结

热门文章

  1. 自动驾驶:车辆转弯半径计算
  2. 手把手教你写复制U盘文件神器(一)
  3. excel熵值法计算权重_指标权重确定方法 1-熵值法
  4. 数学之美,美在将复杂问题简化——《数学之美》读后感
  5. 存储技术与智能存储组件
  6. 要多久人工智能的梦想才能照进现实
  7. 实现你的kalman
  8. 利用python+scrapy+mysql爬取虎扑NBA球员数据存入数据库
  9. excel 甘特图制作(详细)
  10. 大学生计算机设计大赛 梧州学院,我校学子在2018年中国大学生计算机设计大赛中勇摘桂冠...