Javaweb新闻发布系统 功能制作(删,查,改)

主页面新闻展示

主页面的新闻显示会与数据库中的新闻表一致

<!-- 需求:完成后台主页面的新闻显示绑定  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='admin_newsDetail.jsp?nid="+rs.getInt(1)+"'>"+rs.getString(3)+"</a> <span> 作者:"+rs.getString(4)+" &#160;&#160;&#160;&#160; <a href='admin_editNews.jsp?nid="+rs.getInt(1)+"'>修改</a> &#160;&#160;&#160;&#160; <a href='javascript:void(0)' οnclick='clickdel(\""+rs.getInt(1)+"\")'>删除</a></span> </li>");
						}
						
					%>
			=		
					<li class='space'></li>
					<p align="right"> 当前页数:[1/3]&nbsp; <a href="#">下一页</a> <a href="#">末页</a> </p>
				</ul>
				<!-- 需求:完成后台主页面的新闻显示绑定  stop-->
			</div>

删除功能

主界面上的代码

跳转到删除页面(传递编号)

   <script language="javascript">
			function clickdel(nid) {
				//alert(id+"---"+typeof(id));
				//js传输参数  可以通过location.href进行页面跳转     do处理页面
				var flag = window.confirm("你确定要删除这篇新闻吗?");
				if(flag){
					//跳转
					window.location.href = 'doDelNews.jsp?nid='+nid;
				}
			}
		</script>

删除页面:

拿到编号进行删除,

在跳转到主界面。

 <%
    	//该页面的作用:获取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>");
    	}
 
    
    %>

查看功能

主页显示时,可以通过超链接点击,跳转到查看界面,传递对应的编号,再通过编号拿到所有相关数据。

<div class="content">
		<!-- 该区域实现新闻详情显示  start -->
		
		<%
			//定义所谓变量(新闻标题,发布时间,点击量,新闻内容等等)
			String ntitle = "";//标题
			String ndate = "";//发布时间
			String nauthor = "";//作者
			String ncontent = "";//内容
			int ncount = 0;//点击量
		
			//1.设置编码
			request.setCharacterEncoding("utf-8");
			//2.获取id
			String id = request.getParameter("nid");
			//转换
			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 = "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);
				ndate = rs.getString(8);
				nauthor = rs.getString(4);
				ncontent = rs.getString(6);
				ncount = rs.getInt(9);
			}
		%>
	
	
		<ul class="classlist">
			<table width="80%" align="center">
				<tr width="100%">
					<td colspan="2" align="center"><%=ntitle %>
					&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					&nbsp;&nbsp;&nbsp; 点击量 <%=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>
		<!-- 该区域实现新闻详情显示  stop-->
	</div>
 

修改功能

首先将该编号的内容显示到类似新增界面上

> <div id="opt_area">
> 				<h1 id="opt_type"> 修改新闻: </h1>
> 				<!-- 修改新闻的模块 -->
> 				<% ```
> 				//设置编码
> 				request.setCharacterEncoding("UTF-8");
>  
> 				//获取编号
> 				String id = request.getParameter("nid");
> 				int nid = 0;
> 				if (null != id) {
> 					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 = "select * from tb_news where nid = ?";
> 				//将sql语句传入方法返回执行对象
> 				PreparedStatement ps = conn.prepareStatement(sql);
> 				ps.setInt(1, nid);
> 				//返回结果集对象
> 				ResultSet rs = ps.executeQuery();
> 				int ntid = 0;
> 				String ntitle = "";
> 				String nauthor = "";
> 				String nsummary = "";
> 				String ncontent = "";
> 				String nimage = "";
> 				String ndate = "";
> 				int ncount = 0;
> 				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()){
> 									//上面已经根据新闻id获取到当前这篇新闻的分类id      while循环中可以遍历出所有的新闻分类
> 									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>");
> 									}
> 									
> 								}
> 							%>
> 						</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>

点击提交后,传递编号,会在该处进行数据处理,实现修改操作。

<%@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");
	//获取参数
 
	//新闻编号(通过input的hidden隐藏域传递过来)
	String id = request.getParameter("nid");
	int nid = 0;
	if (null != id) {
		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");
	//图片不处理
	//获取当前的系统(java  转换--oracle  to_date      oracle  sysdate)
	Date date = new Date();
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	String ndate = sdf.format(date);
	//点击量不处理
 
	//数据库交互
	Class.forName("oracle.jdbc.driver.OracleDriver");
	//建立连接
	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>");
	}	
	
%>

主题绑定

主题的下拉框显示会与数据库中的主题表一致:

		<form action="doAddNews.jsp" method="post">
					<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>

谢谢浏览 点个关注再走吧!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷亿!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值