JavaWeb06(模糊查询&评论&include指令)

哈哈,大家好!最近在完善项目,所以这篇知识点写的有点仓促,今天博主来将其补充完毕,还请大家谅解。

在这先补充一个知识点:全大写:toUpperCase(),其意思也是将其全部转换成大写,一般用在验证码那里

上次还漏了一个知识点:绝对定位

 就拿图中的/web06/news/read举例吧!

 其中第一个/的意思就是根目录的意思,反正比较好用,但是在跨域问题中就用不了

好啦,回归正题,今天的任务是模糊查询、评论和include指令

一、模糊查询

1.模糊查询,在上一篇文章中(javaweb05)博主有简略的提到过

里面提过一个知识点,破碎重组,大家可以查阅哦!

先看页面:

 代码如下:

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!-- 验证登录 -->
    <%@include file="yz.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>添加主题--管理后台</title>
<link href="/web06/css/admin.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
  <div id="welcome">欢迎使用新闻管理系统!</div>
  <div id="nav">
    <div id="logo"><img src="/web06/images/logo.jpg" alt="新闻中国" /></div>
    <div id="a_b01"><img src="/web06/images/a_b01.gif" alt="" /></div>
  </div>
</div>
<div id="admin_bar">
  <div id="status">管理员: <%=session.getAttribute("uname") %>  &#160;&#160;&#160;&#160; <a href="/web06/exit.jsp">退出</a></div>
  <div id="channel"> </div>
</div>
<div id="main">
  <div id="opt_list">
    <ul>
      <li><a href="/web06/news/add.jsp">添加新闻</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 id="opt_area">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <script language="javascript">
	function clickdel(){
		return confirm("删除请点击确认");
	}
	
</script>
	<form action="/web06/news/admin.jsp" method="post">
		标题:<input type="text" name="title"/>
		<input type="submit" value="查询"/>
	</form>
    <ul class="classlist">
      <%
      	 //接收title
      	 String title=request.getParameter("title");
      	 if(title==null){
      		 title="";//相当于查询全部 
      	 }
      	 //破碎重组
      	 title=new String(title.getBytes("iso-8859-1"),"utf-8");
      	 
      	 //jdbc连接Oracle查询所有的新闻:id 新闻标题 作者 
      	 String CNAME="oracle.jdbc.driver.OracleDriver";
      	 String URL="jdbc:oracle:thin:@localhost:1521:orcl";
      	 //加载驱动
      	 Class.forName(CNAME);
      	 //创建连接
      	 Connection con=DriverManager.getConnection(URL, "scott", "tiger");
      	 //定义sql语句
      	 String sql="select nid,ntitle,nauthor from news280 where ntitle like '%"+title+"%' order by nid desc";
      	 //out.print(sql);
      	 //获得执行对象
      	 PreparedStatement ps=con.prepareStatement(sql);
      	 //获得结果集
      	 ResultSet rs=ps.executeQuery();
      	 //循环遍历
      	 while(rs.next()){
      %>
      <li> <a href="/web06/news/read.jsp?nid=<%=rs.getInt(1)%>"><%=rs.getString(2) %></a> 
      	<span> 作者:<%=rs.getString(3) %>&#160;&#160;&#160;&#160; 
	      	<a href='/web06/news/update.jsp?nid=<%=rs.getInt(1)%>'>修改</a> &#160;&#160;&#160;&#160; 
	      	<a href='/web06/news/dodelete.jsp?nid=<%=rs.getInt(1) %>' onclick='return clickdel()'>删除</a> 
      	</span> 
      </li>
      <%
      	 }
      	 
      	//关闭资源
     	if(con!=null&&!con.isClosed()){
     		con.close();
     	}
     	if(ps!=null){
     		ps.close();
     	}
     	if(rs!=null){
     		rs.close();
     	}
      %>
      <li class='space'></li>
      <p align="right"> 当前页数:[1/3]&nbsp; <a href="#">下一页</a> <a href="#">末页</a> </p>
    </ul>
    <h2>浏览记录</h2>
  
  </div>
</div>
<div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span> <a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span> <a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div>
<div id="footer">
  <p class="">24小时客户服务热线:010-68988888  &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160;  新闻热线:010-627488888<br />
    文明办网文明上网举报电话:010-627488888  &#160;&#160;&#160;&#160;  举报邮箱:<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>
    

咱们看看效果:

 模糊查询主要是根据sql语句的查询指定的值

由于取值需要编码翻译,所以里面用到了破碎重组

2.在阅读界面中博主还添加了点击量,这意味着要在数据库里面添加一个值

来存储点击量

 于是博主在之前的news280表中添加了一列:ncount用来统计点击量

 然后咱们来看到页面:

 咱们再看到代码:

 这里点击量加nid是为了保持每个网页的点击的不同

二、评论

接下来便是项目的评论功能:

页面如上面那个点击量的页面,两个功能是在一个页面的

那我们先给代码:

<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<!-- 验证登录 -->
    <%@include file="yz.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>新闻中国</title>
<link href="/web06/css/read.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
              function check(){
                  var cauthor = document.getElementById("cauthor");
                  var content = document.getElementById("ccontent");
                  if(cauthor.value == ""){
                      alert("用户名不能为空!!");
                      return false;
                  }else if(content.value == ""){
                      alert("评论内容不能为空!!");
                      return false;
                  }
                  return true;
              }
          </script>
</head>
<body>
<%
     //接收主界面传过来的值=nid
     String nid=request.getParameter("nid");
     //思路:根据nid拿到其对应的新闻信息=单个查询
     String CNAME="oracle.jdbc.driver.OracleDriver";
     String URL="jdbc:oracle:thin:@localhost:1521:orcl";
     //加载驱动
     Class.forName(CNAME);
     //创建连接
     Connection con=DriverManager.getConnection(URL, "scott", "tiger");
     //定义sql语句
     String sql="select * from news280 where nid="+nid;
     //获得执行对象
     PreparedStatement ps=con.prepareStatement(sql);
     //获得结果集
     ResultSet rs=ps.executeQuery();
     //扩大作用域
     String title="";
     String author="";
     String content="";
     String addtime="";
     int count=0;
     //循环遍历
     if(rs.next()){
         //赋值
         title=rs.getString(3);
         author=rs.getString(4);
         content=rs.getString(6);
         addtime=rs.getString(8);
         count=rs.getInt(9);
     }
     
     //修改点击量   记得加条件 
     sql="update news280 set ncount=nvl(ncount,0)+1 where nid="+nid;
     ps=con.prepareStatement(sql);
     int n=ps.executeUpdate();
     
     Cookie c=new Cookie(nid,URLEncoder.encode(title,"utf-8"));
     response.addCookie(c);
     
%>
<div id="header">
  <div id="top_login">
    <label> 登录名 </label>
    <input type="text" id="uname" value="" class="login_input" />
    <label> 密&#160;&#160;码 </label>
    <input type="password" id="upwd" value="" class="login_input" />
    <input type="button" class="login_sub" value="登录" οnclick="login()"/>
    <label id="error"> </label>
    <a href="index.html" class="login_link">返回首页</a> <img src="/web06/images/friend_logo.gif" alt="Google" id="friend_logo" /> </div>
  <div id="nav">
    <div id="logo"> <img src="/web06/images/logo.jpg" alt="新闻中国" /> </div>
    <div id="a_b01"> <img src="/web06/images/a_b01.gif" alt="" /> </div>
    <!--mainnav end-->
  </div>
</div>
<div id="container">
  <div class="sidebar">
    <h1> <img src="/web06/images/title_1.gif" alt="国内新闻" /> </h1>
    <div class="side_list">
      <ul>
        <li> <a href='#'><b> 重庆涉黑富豪黎强夫妇庭审答辩言辞相互矛盾 </b></a> </li>
        <li> <a href='#'><b> 发改委:4万亿投资计划不会挤占民间投资空间 </b></a> </li>
        <li> <a href='#'><b> 河南2个乡镇政绩报告内容完全一致引关注 </b></a> </li>
      </ul>
    </div>
    <h1> <img src="/web06/images/title_2.gif" alt="国际新闻" /> </h1>
    <div class="side_list">
      <ul>
        <li> <a href='#'><b> 日本首相鸠山首次全面阐述新政府外交政策 </b></a> </li>
        <li> <a href='#'><b> 黎巴嫩以色列再次交火互射炮弹 </b></a> </li>
        <li> <a href='#'><b> 伊朗将于30日前就核燃料供应方案作出答复 </b></a> </li>
        <li> <a href='#'><b> 与基地有关组织宣称对巴格达连环爆炸负责 </b></a> </li>
      </ul>
    </div>
    <h1> <img src="/web06/images/title_3.gif" alt="娱乐新闻" /> </h1>
    <div class="side_list">
      <ul>
        <li> <a href='#'><b> 施瓦辛格启动影视业回迁计划 推进加州经济复苏 </b></a> </li>
        <li> <a href='#'><b> 《沧海》导演回应观众质疑 自信能超越《亮剑》 </b></a> </li>
        <li> <a href='#'><b> 《海角七号》导演新片开机 吴宇森等出席 </b></a> </li>
        <li> <a href='#'><b> 《四大名捕》敦煌热拍 八主演飙戏火花四溅 </b></a> </li>
      </ul>
    </div>
  </div>
  <div class="main">
    <div class="class_type"> <img src="/web06/images/class_type.gif" alt="新闻中心" /> </div>
    <div class="content">
      <ul class="classlist">
        <table width="80%" align="center">
          <tr width="100%">
            <td colspan="2" align="center"><%=title %></td>
          </tr>
          <tr>
            <td colspan="2"><hr />
            </td>
          </tr>
          <tr>
            <td align="center"><%=addtime %></td>
            <td align="left"><%=author %>&nbsp;&nbsp;&nbsp;点击量:<%=count %></td>
          </tr>
          <tr>
            <td colspan="2" align="center"></td>
          </tr>
          <tr>
            <td colspan="2"><%=content %></td>
          </tr>
          <tr>
            <td colspan="2"><hr />
            </td>
          </tr>
        </table>
      </ul>
      <ul class="classlist">
        <table width="80%" align="center">
          <td colspan="6">
          <%
               sql="select * from pl280 where nid="+nid+" order by pid desc";//查询该条新闻的评论 
               ps=con.prepareStatement(sql);
               rs=ps.executeQuery();
               while(rs.next()){
          %>
              <ul>
                  <li>评论内容:<%=rs.getString(5) %></li>
                  <li>评论人:<%=rs.getString(3) %>&nbsp;&nbsp;评论时间:<%=rs.getString(6) %>&nbsp;&nbsp;<a href="dodelpl.jsp?pid=<%=rs.getInt(1)%>&nid=<%=nid%>">删除</a></li>
              </ul>
              <br/>
          <%
               }
             //关闭资源
              if(con!=null&&!con.isClosed()){
                  con.close();
              }
              if(ps!=null){
                  ps.close();
              }
              if(rs!=null){
                  rs.close();
              }
          %>
          </td>
          <tr>
            <td colspan="6"><hr />
            </td>
          </tr>
        </table>
      </ul>
      <ul class="classlist">
        <form action="dopl.jsp" method="post" οnsubmit="return check()">
          <table width="80%" align="center">
            <tr>
              <td> 评 论 </td>
            </tr>
            <tr>
              <td> 用户名: </td>
              <td><input id="cauthor" name="cauthor" value="这家伙很懒什么也没留下"/>
                IP:
                <input name="cip" value="127.0.0.1" readonly="readonly"/>
                <!-- 隐藏域传值 -->
                <input type="hidden" name="nid" value="<%=nid%>"/>
              </td>
            </tr>
            <tr>
              <td colspan="2"><textarea id="ccontent" name="ccontent" cols="70" rows="10"></textarea>
              </td>
            </tr>
            <td><input name="submit" value="发  表" type="submit"/>
              </td>
          </table>
        </form>
      </ul>
    </div>
  </div>
</div>
<div id="friend">
  <h1 class="friend_t"> <img src="/web06/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 &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160; 新闻热线:010-627488888 <br />
    文明办网文明上网举报电话:010-627488888 &#160;&#160;&#160;&#160; 举报邮箱: <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>

 这里也是键了一个表,用来存储发表的评论

 效果如下:

 

 评论功能主要是插值的时候要细心,还有就是在写sql语句时记得加上条件,不然评论给谁都不知道。

在这之前,博主再带大家看看游客界面:

 这个界面博主还有很多功能没有完善,只实现了绑值,等后期博主更好的完善了这个界面,再来跟大家详细解析!

三、include指令

include指令就是包含的意思,就是把重复的代码统一写到一个jsp里面,然后在其他页面再使用包含,话不多说,先看代码:

 foota、footb里面的内容都分开写了,当其他页面需要里面的内容时,使用include指令进行包含调用即可!

 好吧,今天博主知识的分享就到此结束啦,项目还有很多地方没有完善,等博主以后完善完成后再详细的跟大家讲解里面的知识点哈!拜拜!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值