目录
上一章我们有讲到将伪表查询代替之前的模糊查询来进行分页,今天我们要在伪表查询的基础上加上模糊查询,也就是说在模糊查询时也可以分页了
一、规范访问
没有登录就不能访问
进入到其他页面,没有登录就提醒他,并跳转到登录界面
首先要在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> 当前页数:[<%=pageIndex %>/<%=maxPage %>] <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>
这样模糊查询和查询所有的分页显示数据就不会混淆