JavaWeb数据维护——以新闻(用户端界面为例)

//首先补充一个内容(可能前面的有提到):

                        request:请求、作用域在请求对象之间(两个页面之间传递数据)
			session:用户级别(整个用户操作页面之间传递数据)

//下面那个代码为用户登录数据维护(代码片段,可结合我前面写的新闻admin代码)。

<%
    
	//判断用户是不是为空
	Object obj = session.getAttribute("a");
	if(obj==null){
		out.print("<script>alert('你没有登录哦!请登录');location.href='login.jsp'</script>");//如果没有登录就进入主页面那就要弹框(顺便跳转到登录界面)
	}
%>

//效果图如下:

 //接下来就是用户登录后进入的一个主界面(重点就是其中的分页)

<%
            //注册驱动类
        	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 subject");
        	ResultSet 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 newst";
      		String pageSql = "select * from (select a.*,rownum mid from newst a)b where mid>=? and mid<=?";
      		int tid = 1;
      		if(id!=null){//要执行 根据主题查询 的 分页
      			tid = Integer.valueOf(id);
      			countSql = "select count(*) from newst where tid="+tid;
      			pageSql = "select * from (select a.*,rownum mid from newst 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/news_add.html'><%=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>

//效果图如下:

 //以上内容可结合我之前写的新闻数据维护(管理员)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值