### 发布新闻主题数据绑定
**第一种方式**
```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)+"      <a href='#'>修改</a>      <a href='#' οnclick='return clickdel()'>删除</a></span> </li>");
}
%>
<li class='space'></li>
<p align="right"> 当前页数:[1/3] <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>");
> }
>
>
>
>
>
> %>
>
>
>
> ```
>
>