赞
踩
各位看官好,今天我带来的是JSP项目如何使用下拉框+文本框实现模糊查询,发表评论以及include指令。
目录
SQL代码:
select nid,ntitle,nauthor from 表名 where 列名 like '%关键字%' order by nid desc
用下拉框+文本框实现模糊查询
下拉框+文本框代码:
- <form action="/s4/news/admin.jsp" method="post">
- <select name="option"><!-- 下拉框 -->
- <option value="ntitle">标题</option>
- <option value="nauthor">作者</option>
- </select>
- <!-- 关键字: -->
- <input type="text" name="title"/>
- <input type="submit" value="查询" />
- </form>
查询语句:
- <%
- //接收title option
- String option=request.getParameter("option");
- String title=request.getParameter("title");
- if(title==null){
- title="";//相当于查询全部
- option="ntitle";
- }
- //破碎重组
- 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 "+option+" like '%"+title+"%' order by nid desc";
- //out.print(sql);
- //获得执行对象
- PreparedStatement ps=con.prepareStatement(sql);
- //获得结果集
- ResultSet rs=ps.executeQuery();
- //循环遍历
- while(rs.next()){
- %>
- <li><a href='/s4/news/read.jsp?nid=<%=rs.getInt(1) %>'><%=rs.getString(2) %></a>
- <span> 作者:<%=rs.getString(3) %>    
- <a href='/s4/news/update.jsp?nid=<%=rs.getInt(1)%>'>修改</a>     
- <a href='/s4/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();
- }
- %>
new String(title.getBytes("编码方式"),"编码方式");
我们需要在上篇文章中的阅读页面实现用户评论的功能。
思路:将评论的内容添加到数据库中,然后再从数据库里将评论的内容展示到页面中。
<!-- 隐藏域传值 hidden隐藏-->
<input name="nid" type="hidden" value="<%=nid%>"/>
阅读界面:
- <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>
- <a href="/s4/index.jsp" class="login_link">返回首页</a> <img src="/s4/images/friend_logo.gif" alt="Google" id="friend_logo" /> </div>
- <div id="nav">
- <div id="logo"> <img src="/s4/images/logo.jpg" alt="新闻中国" /> </div>
- <div id="a_b01"> <img src="/s4/images/a_b01.gif" alt="" /> </div>
- <!--mainnav end-->
- </div>
- </div>
- <div id="container">
- <div class="sidebar">
- <div id="opt_list">
- <ul>
- <li><a href="/s4/news/add.jsp">添加新闻</a></li>
- <li><a href="/s4/news/update.jsp">编辑新闻</a></li>
- <li><a href="/s4/news/admin.jsp">查找新闻</a></li>
- <li><a href="/s4/news/add.jsp">添加主题</a></li>
- <li><a href="/s4news/news_login.jsp">编辑主题</a></li>
- </ul>
- </div>
- <h1> <img src="/s4/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="/s4/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="/s4/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="/s4/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%> 点击量:<%=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">
- <%
- while(rs.next()){
- %>
- </td>
- <ul>
- <li>评论内容:<%=rs.getString(5)%> </li>
- <li>评论人:<%=rs.getString(3) %> 评论时间:<%=rs.getString(6)%>
- <a href="dodelpl.jsp?pid=<%=rs.getInt(1)%>&nid=<%=nid %>" onclick='return clickdel()'>删除</a></li>
- </ul>
- <%
- }
- }
- //关闭资源
- if(con!=null&&!con.isClosed()){
- con.close();
- }
- if(ps!=null){
- ps.close();
- }
- if(rs!=null){
- rs.close();
- }
- %>
- <tr>
- <td colspan="6"><hr />
- </td>
- </tr>
- </table>
- </ul>
- <ul class="classlist">
- <form action="dopl.jsp" method="post" onsubmit="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 name="nid" type="hidden" 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>
将评论的内容添加到数据库中
- <%
- request.setCharacterEncoding("utf-8");
- String nid=request.getParameter("nid");
- String cip=request.getParameter("cip");
- String cauthor =request.getParameter("cauthor");
- String nsummary=request.getParameter("nsummary");
- String ccontent=request.getParameter("ccontent");
- String caddtime=new Date().toLocaleString();//取系统当前时间
- /*主键:唯一且不为空
- 1.标识列:触发器+序列
- 2.取 表主键的最大序号+1
- */
-
- String URL="jdbc:oracle:thin:@localhost:1521:orcl";
- String CNAME="oracle.jdbc.driver.OracleDriver";
- Class.forName(CNAME);
- Connection con= DriverManager.getConnection(URL,"scott","tiger");
- //定义sql语句
- String sql="select nvl(max(pid),0)+1 from pl280";
- PreparedStatement ps=con.prepareStatement(sql);
- ResultSet rs=ps.executeQuery();
- int pid=0;//扩大作用域
- if(rs.next()){
- pid=rs.getInt(1)+1;//表的最大序号+1
- }
-
- //实现增加=插入操作
- sql="insert into pl280(pid,nid,pauthor,pip,pcontent,paddtime) values(?,?,?,?,?,?)";
- //执行sql语句
- ps=con.prepareStatement(sql);
- //给占位符赋值
- ps.setInt(1, pid);
- ps.setInt(2, Integer.parseInt(nid));//String-->int
- ps.setString(3, cauthor);
- ps.setString(4, cip);
- ps.setString(5, ccontent);
- ps.setString(6, caddtime);
-
- //获得影响行数
- int n=ps.executeUpdate();
- //关闭资源
- if(con!=null&&!con.isClosed()){
- con.close();
- }
- if(ps!=null){
- ps.close();
- }
- if(rs!=null){
- rs.close();
- }
- if(n>0){//说明评论成功
- //阅读主界面
- response.sendRedirect("/s4/news/read.jsp?nid="+nid+"");
- }
- else{//说明评论
- out.print("<script>alert('评论失败');location.href='read.jsp?nid="+nid+"';</script>");
- }
- %>
再从数据库中展示到界面中
- <%
- sql="select *from pl280 where nid="+nid+" order by pid desc ";//查询当前评论的内容
- ps=con.prepareStatement(sql);
- rs=ps.executeQuery();
- if(rs.next()==false){
- %>
- <div>暂无评论!</div></td>
- <%
- }
- else{
- while(rs.next()){
- %>
- </td>
- <ul>
- <li>评论内容:<%=rs.getString(5)%> </li>
- <li>评论人:<%=rs.getString(3) %> 评论时间:<%=rs.getString(6)%>
- <a href="dodelpl.jsp?pid=<%=rs.getInt(1)%>&nid=<%=nid %>" onclick='return clickdel()'>删除</a></li>
- </ul>
- <%
- }
- }
- //关闭资源
- if(con!=null&&!con.isClosed()){
- con.close();
- }
- if(ps!=null){
- ps.close();
- }
- if(rs!=null){
- rs.close();
- }
- %>
减少多个页面重复的代码
1、新建一个页面
2、将多个页面重复要用的代码copy到新的页面中
- <!-- include指令里面是不能用绝对路径的 -->
- <%@include file="页面名" %>
OK,以上所有就是今日学习的所有内容了,我是小陽,欢迎个位看官能观看我的文章,如果有写的不好/不足的地方欢迎大家指出来,博主会做出改变,如对各位有所帮助,不介意各位留下免费的三连哦!
下章预告:session 会话&Cookie的运用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。