JavaWEB-05 项目案例(2)

一.今日内容主要是主题绑定.查看.修改.删除案例

① 主题绑定

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.net.ConnectException"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>新闻发布--管理后台</title>
        <link rel="stylesheet" type="text/css" href="css/2.css" />
    </head>
    <body>
        <div id="header">
            <div id="welcome">欢迎使用新闻管理系统!</div>
            <div id="nav">
                <div id="logo"><img src="images/logo.jpg" alt="新闻中国" /></div>
                <div id="a_b01"><img src="images/a_b01.gif" alt="" /></div>
            </div>
        </div>
        <div id="admin_bar">
            <div id="status">管理员: 登录 &#160;&#160;&#160;&#160;<a href="#">退出</a></div>
            <div id="channel"> </div>
        </div>
        <div id="main">
            <div id="opt_list">
                <ul>
                    <li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li>
                    <li><a href="add_news.jsp">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li>
                    <li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li>
                    <li><a style="color: red;" href="#">系统账号管理</a></li>
                    <li><a style="color: red;" href="#">注册用户管理</a></li>
                </ul>
            </div>
            <div id="opt_area">
                <h1 id="opt_type"> 添加新闻: </h1>
                <form action="doAddNews.jsp" method="post">
                
                <!-- 新闻分类的数据绑定 start -->
                
                <p>
                        <label> 主题 </label>
                        <select name="ntid">
                
                <% 
                  //需求:1.完成新闻分类的数据绑定
                  //加载驱动
                  Class.forName("oracle.jdbc.driver.OracleDriver");
                  //建立连接
                  Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");
                  //SQL语句
                  String sql="select * from tb_news_theme";
                  //传入方法返回执行对象
                  PreparedStatement ps=conn.prepareStatement(sql);
                  //调用方法返回结果集对象
                  ResultSet rs=ps.executeQuery();
                  //遍历结果集
                  while(rs.next()){
                      out.println("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");
                  }
                
                %>
                        </select>
                    </p>
                    
                    <!-- 新闻分类的数据绑定 start -->
                    
                    
                    
                    <p>
                        <label> 标题 </label>
                        <input name="ntitle" type="text" class="opt_input" />
                    </p>
                    <p>
                        <label> 作者 </label>
                        <input name="nauthor" type="text" class="opt_input" />
                    </p>
                    <p>
                        <label> 摘要 </label>
                        <textarea name="nsummary" cols="40" rows="3"></textarea>
                    </p>
                    <p>
                        <label> 内容 </label>
                        <textarea name="ncontent" cols="70" rows="10"></textarea>
                    </p>
                    <p>
                        <label> 上传图片 </label>
                        <input name="file" type="file" class="opt_input" />
                    </p>
                    <input name="action" type="hidden" value="addnews">
                    <input type="submit" value="提交" class="opt_sub" />
                    <input type="reset" value="重置" class="opt_sub" />
                </form>
            </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>

② 查看

<div class="main">
                <div class="class_type"> <img src="images/class_type.gif" alt="新闻中心" /> </div>
                <div class="content">
                
                <!-- 该区域实现新闻详情显示 start -->
                
                <%
                //定义所谓的变量 
                int ntid=0;
                String ntitle="";
                String nauthor="";
                String nsummary="";
                String ncontent="";
                String nimage="";
                String ndate="";
                int ncount=10;
                
                  //设置编码
                request.setCharacterEncoding("utf-8");
                //获取id
                String id=request.getParameter("nid");
                //转换
                int nid=0;
                if(id != null){
                    nid=Integer.valueOf(id);
                }
                //获取数据
                //建立连接
                Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");
                //SQL语句
                String sql="select * from tb_news where nid=?";
                //将SQL语句传入方法返回执行对象
                PreparedStatement ps=conn.prepareStatement(sql);
                ps.setInt(1,nid);
                //返回结果集对象
                ResultSet rs=ps.executeQuery();
                //if
                if(rs.next()){
                    ntitle = rs.getString(3);
                    nauthor=rs.getString(4);
                    ncontent=rs.getString(6);
                    ndate=rs.getString(8);
                    ncount=rs.getInt(9);
                }
                %>
                
                
                    <ul class="classlist">
                        <table width="80%" align="center">
                            <tr width="100%">
                                <td align="center"><%=ntitle %></td>
                                <td>点击量:<%=ncount %></td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <hr />
                                </td>
                            </tr>
                            <tr>
                                <td align="center"><%=ndate %></td>
                                <td align="left"><%=nauthor %> </td>
                            </tr>
                            <tr>
                                <td colspan="2" align="center"></td>
                            </tr>
                            <tr>
                                <td colspan="2"><%=ncontent %></td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <hr />
                                </td>
                            </tr>
                        </table>
                    </ul>
                    <ul class="classlist">
                        <table width="80%" align="center">
                            <td colspan="6"> 暂无评论! </td>
                            <tr>
                                <td colspan="6">
                                    <hr />
                                </td>
                            </tr>
                        </table>
                    </ul>
                </div>
            </div>
        </div>

③ 修改

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新闻维护--管理后台</title>
<link rel="stylesheet" type="text/css" href="css/2.css" />
</head>
<body>
    <div id="header">
        <div id="welcome">欢迎使用新闻管理系统!</div>
        <div id="nav">
            <div id="logo">
                <img src="images/logo.jpg" alt="新闻中国" />
            </div>
            <div id="a_b01">
                <img src="images/a_b01.gif" alt="" />
            </div>
        </div>
    </div>
    <div id="admin_bar">
        <div id="status">
            管理员: 登录 &#160;&#160;&#160;&#160;<a href="#">退出</a>
        </div>
        <div id="channel"></div>
    </div>
    <div id="main">
        <div id="opt_list">
            <ul>
                <li><a href="admin.html">管&nbsp;&nbsp;理&nbsp;&nbsp;首&nbsp;&nbsp;页</a></li>
                <li><a href="admin_addNews.html">新&nbsp;&nbsp;闻&nbsp;&nbsp;发&nbsp;&nbsp;布</a></li>
                <li><a href="admin_themeMaintain.html">主&nbsp;&nbsp;题&nbsp;&nbsp;维&nbsp;&nbsp;护</a></li>
                <li><a style="color: red;" href="#">系统账号管理</a></li>
                <li><a style="color: red;" href="#">注册用户管理</a></li>
            </ul>
        </div>
        <div id="opt_area">
            <h1 id="opt_type">修改新闻:</h1>
 
            <!-- 修改新闻的模块 -->
 
            <%

//定义所谓的变量 
                int ntid = 0;
                String ntitle = "";
                String nauthor = "";
                String nsummary = "";
                String ncontent = "";
                String nimage = "";
                String ndate = "";
                int ncount = 10;
 
                //设置编码
                request.setCharacterEncoding("utf-8");
                //获取id
                String id = request.getParameter("nid");
                //转换
                int nid = 0;
                if (id != null) {
                    nid = Integer.valueOf(id);
                }
                //获取数据
                //建立连接
                Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");
                //SQL语句
                String sql = "select * from tb_news where nid=?";
                //将SQL语句传入方法返回执行对象
                PreparedStatement ps = conn.prepareStatement(sql);
                ps.setInt(1, nid);
                //返回结果集对象
                ResultSet rs = ps.executeQuery();
                //if
                if (rs.next()) {
                    ntid = rs.getInt(2);
                    ntitle = rs.getString(3);
                    nauthor = rs.getString(4);
                    nsummary = rs.getString(5);
                    ncontent = rs.getString(6);
                    nimage = rs.getString(7);
                    ndate = rs.getString(8);
                    ncount = rs.getInt(9);
                }
            %>
 
 
            <form action="doEditNews.jsp" method="post">
                <p>
                    <label> 主题 </label> <select name="ntid">
                        <%
                            //新闻数据分类绑定
                            sql = "select * from tb_news_theme";
                            //传入方法返回执行对象
                            ps = conn.prepareStatement(sql);
                            //调用方法返回结果集对象
                            rs = ps.executeQuery();
                            //遍历结果集
                            while (rs.next()) {
                                if (ntid == rs.getInt(1)) {
                                    out.println("<option selected = 'selected' value = '" + rs.getInt(1) + "'>" + rs.getString(2)
                                            + "</option>");
                                } else {
                                    out.println("<option value = '" + rs.getInt(1) + "'>" + rs.getString(2) + "</option>");
                                }
 
                            }
                        %>
                        <option value="1">选择</option>
 
                    </select>
                </p>
                <p>
                    <label> 标题 </label> <input name="ntitle" type="text"
                        class="opt_input" value="<%=ntitle%>" />
                </p>
                <p>
                    <label> 作者 </label> <input name="nauthor" type="text"
                        class="opt_input" value="<%=nauthor%>" />
                </p>
                <p>
                    <label> 摘要 </label>
                    <textarea name="nsummary" cols="40" rows="3" value="123"><%=nsummary%></textarea>
                </p>
                <p>
                    <label> 内容 </label>
                    <textarea name="ncontent" cols="70" rows="10"><%=ncontent%></textarea>
                </p>
                <p>
                    <label> 上传图片 </label> <input name="file" type="file"
                        class="opt_input" />
                </p>
                <input name="nid" type="hidden" value="<%=nid %>"> <input
                    type="submit" value="提交" class="opt_sub" /> <input type="reset"
                    value="重置" class="opt_sub" />
            </form>
        </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>

//中转站
 
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<%
    //设置编码格式
    request.setCharacterEncoding("utf-8");
    //2.获取location.href传递过来的参数编号(新闻编号)
    String id = request.getParameter("nid");
    //新闻编号 数据库 number
    int nid = 0;
    if (id != null) {
        nid = Integer.valueOf(id);
    }
 
    //新闻分类编号
    String tid = request.getParameter("ntid");
    int ntid = 0;
    if (null != tid) {
        ntid = Integer.valueOf(tid);
    }
 
    //标题
    String ntitle = request.getParameter("ntitle");
    //作者
    String nauthor = request.getParameter("nauthor");
    //摘要
    String nsummary = request.getParameter("nsummary");
    //内容
    String ncontent = request.getParameter("ncontent");
    //获取当前事件
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String ndate = sdf.format(date);
 
    //数据库交互
    //建立连接
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");
    //SQL语句
    String sql = "update tb_news set ntid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,ndate=to_date(?,'yyyy-mm-dd hh24:mi:ss') where nid=?";
    //将SQL语句传入方法返回执行对象
    PreparedStatement ps = conn.prepareStatement(sql);
    //给占位符赋值
    ps.setInt(1, ntid);
    ps.setString(2, ntitle);
    ps.setString(3, nauthor);
    ps.setString(4, nsummary);
    ps.setString(5, ncontent);
    ps.setString(6, ndate);
    ps.setInt(7, nid);
    //返回影响的行数
    int n=ps.executeUpdate();
    
    if(n > 0){
        out.println("<script>alert('修改成功');location.href='admin.jsp'</script>");
    }else{
        out.println("<script>alert('修改失败');location.href='admin_editNews.jsp?nid="+nid+"'</script>");
    }
    
%>
 

④ 删除

<script language="javascript">
                    function clickdel(nid) {
                        //js传输参数 可以通过location.href进行页面跳转 中转页面
                        var flag = window.confirm("你确定要删除吗?");
                        if(flag){
                            //跳转
                            window.location.href = 'doDelNews.jsp?nid='+nid;
                        }
                    }
</script>
 
 
 
 
 
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
    <%
    //编码格式
    request.setCharacterEncoding("utf-8");
    //2.获取location.href传递过来的参数编号(新闻编号)
    String id=request.getParameter("nid");
    //新闻编号 数据库 number
    int nid =0;
    if(id!=null){
        nid = Integer.valueOf(id);
    }
    //数据库交互
      //加载驱动
      Class.forName("oracle.jdbc.driver.OracleDriver");
      //建立连接
      Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123");
      //SQL语句
      String sql="delete from tb_news where nid=?";
      //传入方法返回执行对象
      PreparedStatement ps=conn.prepareStatement(sql);
      ps.setInt(1,nid);
      //返回影响的行数
      int n=ps.executeUpdate();
     //判断  删除成功跳转admin.jsp  删除失败也是跳转admin.jsp  
      if(n>0){
            out.println("<script>alert('删除成功');location.href='admin.jsp'</script>");
        }else{
            out.println("<script>alert('删除失败');location.href='admin.jsp'</script>");
        }
    %>
    
    

二.知识点

① 发布新闻主题数据绑定

第一种方式


<p>
                        <label> 主题 </label>
                        <select name="ntid">
                    <!-- 新闻分类的数据绑定  start -->
                    <%
                        //需求:1.完成新闻分类的数据绑定
                        //加载驱动
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                        //建立连接
                        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
                        //sql语句
                        String sql = "select * from tb_news_theme";
                        //传入方法返回执行对象
                        PreparedStatement ps = conn.prepareStatement(sql);
                        //调用方法返回结果集对象
                        ResultSet rs = ps.executeQuery();
                        //遍历结果集
                        while(rs.next()){
                            //out.println(rs.getInt(1)+"     "+rs.getString(2));
                        
                    %>
                        out.println("<option value='<%=rs.getInt(1)%>'><%=rs.getString(2) %></option>")
                    <%
                        }
                    
                    %>
                        </select>
                    </p>

第二种方式<p>
                        <label> 主题 </label>
                        <select name="ntid">
                    <!-- 新闻分类的数据绑定  start -->
                    <%
                        //需求:1.完成新闻分类的数据绑定
                        //加载驱动
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                        //建立连接
                        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
                        //sql语句
                        String sql = "select * from tb_news_theme";
                        //传入方法返回执行对象
                        PreparedStatement ps = conn.prepareStatement(sql);
                        //调用方法返回结果集对象
                        ResultSet rs = ps.executeQuery();
                        //遍历结果集
                        while(rs.next()){
                            out.println("<option value = '"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");
                        }
                    %>
                        </select>
                    </p>

② admin.jsp主页面新闻数据绑定

<!-- 需求:完成后台主页面的新闻显示绑定  start -->
                <ul class="classlist">
                    <%
                        //加载驱动
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                        //建立连接
                        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
                        //sql语句
                        String sql = "select * from tb_news";
                        //将sql语句传入方法返回执行对象
                        PreparedStatement ps = conn.prepareStatement(sql);
                        //根据执行对象调用方法返回结果集对象
                        ResultSet rs = ps.executeQuery();
                        //遍历结果集
                        while(rs.next()){
                            out.println("<li> <a href='#'>"+rs.getString(3)+"</a> <span> 作者:"+rs.getString(4)+" &#160;&#160;&#160;&#160; <a href='#'>修改</a> &#160;&#160;&#160;&#160; <a href='#' οnclick='return clickdel()'>删除</a></span> </li>");
                        }
                        
                    %>
                
                
                
                    
                    
                    <li class='space'></li>
                    <p align="right"> 当前页数:[1/3]&nbsp; <a href="#">下一页</a> <a href="#">末页</a> </p>
                </ul>

③ admin.jsp主页面中的单个删除新闻的实现

由于删除新闻是通过超链接实现,所以必须保证阻止超链接跳转
 
<a href = "javascript:void(0)" onclick = "clickdel('"+nid+"')">超链接</a>

<a href = "doDelNew.jsp?nid=<%=rs.getInt(1)>">超链接</a>
function clickdel(nid) {
                        //alert(id+"---"+typeof(id));
                        //js传输参数  可以通过location.href进行页面跳转     do处理页面
                        var flag = window.confirm("你确定要删除这篇新闻吗?");
                        if(flag){
                            //跳转
                            window.location.href = 'doDelNews.jsp?nid='+nid;
                        }
                    }
doDelNews.jsp
 
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>

 <%
    //该页面的作用:获取admin.jsp点击删除时的新闻编号获取  然后数据库交互 将其编号的新闻进行删除


    //1.  设置相关的编码格式
    request.setCharacterEncoding("utf-8");

    //2.获取location.href传递过来的参数编号(新闻编号)
    String id = request.getParameter("nid");
    //新闻编号  数据库   number   需要转换
    int nid = 0;
    if(null!=id){
        nid = Integer.valueOf(id);
    }
    //3.数据库交互  根据新闻编号  进行删除新闻
    //加载驱动
        Class.forName("oracle.jdbc.driver.OracleDriver");
        //建立连接
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","123");
        //sql语句
        String sql = "delete from tb_news where nid = ?";
        //将sql语句传入方法返回执行对象
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1, nid);
        //返回所影响的行数
        int n = ps.executeUpdate();
    //4.判断:删除成功----admin.jsp   删除不成功----admin.jsp
    if(n>0){
        out.println("<script>alert('删除成功');location.href='admin.jsp'</script>");
    }else{
        out.println("<script>alert('删除失败');location.href='admin.jsp'</script>");
    }





 %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值