【无标题】javaWEB_05

本文介绍了两种在JavaWeb中绑定新闻主题的方法,通过JSP动态生成HTML元素。同时展示了admin.jsp主页面如何显示新闻数据,以及实现新闻的单个删除功能,包括JavaScript确认对话框和后台JSP处理删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 发布新闻主题数据绑定

**第一种方式**

```jsp
<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>


```

**第二种方式**

```jsp
<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主页面新闻数据绑定

```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主页面中的单个删除新闻的实现

> 由于删除新闻是通过超链接实现,所以必须保证阻止超链接跳转
>
> ```HTML
> <a href = "javascript:void(0)" onclick = "clickdel('"+nid+"')">超链接</a>
>
> <a href = "doDelNew.jsp?nid=<%=rs.getInt(1)>">超链接</a>
> ```
>
> ```js
> 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**
>
> ```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>");
>         }
>         
>     
>     
>     
>     
>     %>
>     
>     
>     
> ```
>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值