javaWeb04

 

 

一.绑定数据watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6aKc5aSr5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

我们可见用户名为:admin,根据核实用户所登录的信息,我们就会跳转到新闻的主界面,如下图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6aKc5aSr5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 那么可以见到新闻主界面上的管理员为admin,并且数据也已经绑定好了,一共有7条列出了主题、作者,以及后面有相应的修改和删除。那么是如何做到的呢?首先肯定要先在oracle数据库里面把数据都插入好,然后接下来请看admin.jsp主界面的代码展示

 
  1. <%

  2. //jdbc连接oracle 查询所有的新闻 :id 新闻标题 作者

  3. String CNAME="oracle.jdbc.driver.OracleDriver";

  4. String URL="jdbc:oracle:thin:@localhost:1521:orcl";

  5. //加载驱动

  6. Class.forName(CNAME);

  7. //创建连接

  8. Connection con=DriverManager.getConnection(URL, "scott", "tiger");

  9. //定义sql语句

  10. String sql="select nid,ntitle,nauthor from news280 order by nid desc";

  11. //获得执行对象

  12. PreparedStatement ps=con.prepareStatement(sql);

  13. //获得结果集

  14. ResultSet rs=ps.executeQuery();

  15. //循环遍历

  16. while(rs.next()){

  17. %>

  18. <li> <a href="/web5/news/read.jsp?nid=<%=rs.getInt(1)%>"><%=rs.getString(2) %></a>

  19. <span> 作者:<%=rs.getString(3) %>&#160;&#160;&#160;&#160;

  20. <a href='/web5/news/update.jsp?nid=<%=rs.getInt(1)%>'>修改</a> &#160;&#160;&#160;&#160;

  21. <a href='dodelete.jsp?nid=<%=rs.getInt(1)%>' onclick='return clickdel()'>删除</a>

  22. </span>

  23. </li>

  24. <%

  25. }

  26. //关闭资源

  27. if(con!=null&&!con.isClosed()){

  28. con.close();

  29. }

  30. if(ps!=null){

  31. ps.close();

  32. }

  33. if(rs!=null){

  34. rs.close();

  35. }

  36. %>

这样之后,绑定数据就轻松解决啦~(当然,里面也已将把删除的部分关键代码写进去了,注意前后关联哦~)

二.删除数据

  1. <%

  2. //接收nid 根据键拿值

  3. String nid=request.getParameter("nid");

  4. //jdbc删除 delete from news280 where nid=?

  5. String CNAME="oracle.jdbc.driver.OracleDriver";

  6. String URL="jdbc:oracle:thin:@localhost:1521:orcl";

  7. //加载驱动

  8. Class.forName(CNAME);

  9. //创建连接

  10. Connection con=DriverManager.getConnection(URL, "scott", "tiger");

  11. //定义sql语句

  12. String sql="delete from news280 where nid="+nid;

  13. //获得执行对象

  14. PreparedStatement ps=con.prepareStatement(sql);

  15. //开始执行

  16. int n=ps.executeUpdate();//影响行数

  17. //关闭资源

  18. if(con!=null&&!con.isClosed()){

  19. con.close();

  20. }

  21. if(ps!=null){

  22. ps.close();

  23. }

  24. //做判断

  25. if(n>0){

  26. //删除成功

  27. request.getRequestDispatcher("admin.jsp").forward(request, response);

  28.  
  29. }

  30. else{

  31. //删除失败

  32. out.print("<script>alert('oh~删除失败!');location.href='/web5/news/admin.jsp';</script>");

  33.  
  34. }

  35.  
  36. %>

这一波操作下来,那么删除的功能也实现啦!

三.查询数据
  1. <%

  2. //接收主页面传过来的值=nid

  3. String nid=request.getParameter("nid");

  4. //思路:根据nid拿到其对应的新闻信息=单个查询

  5. //jdbc连接oracle 查询所有的新闻 :id 新闻标题 作者

  6. String CNAME="oracle.jdbc.driver.OracleDriver";

  7. String URL="jdbc:oracle:thin:@localhost:1521:orcl";

  8. //加载驱动

  9. Class.forName(CNAME);

  10. //创建连接

  11. Connection con=DriverManager.getConnection(URL, "scott", "tiger");

  12. //定义sql语句

  13. String sql="select * from news280 where nid="+nid;

  14. //获得执行对象

  15. PreparedStatement ps=con.prepareStatement(sql);

  16. //获得结果集

  17. ResultSet rs=ps.executeQuery();

  18. //扩大作用域

  19. String title="";

  20. String author="";

  21. String addtime="";

  22. String content="";

  23. //循环遍历

  24. while(rs.next()){

  25. //赋值

  26. title=rs.getString(3);

  27. author=rs.getString(4);

  28. addtime=rs.getString(5);

  29. content=rs.getString(6);

  30. }

  31. //关闭资源

  32. if(con!=null&&!con.isClosed()){

  33. con.close();

  34. }

  35. if(ps!=null){

  36. ps.close();

  37. }

  38. if(rs!=null){

  39. rs.close();

  40. }

  41. %>

比如点击第一条新闻主题《生命在于运动》,那么我们的界面就会随之跳转到read的界面,如下图所示:watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6aKc5aSr5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

四.修改数据

 

 
  1. <%@page import="java.sql.ResultSet"%>

  2. <%@page import="java.sql.PreparedStatement"%>

  3. <%@page import="java.sql.DriverManager"%>

  4. <%@page import="java.sql.Connection"%>

  5. <%@ page language="java" contentType="text/html; charset=UTF-8"

  6. pageEncoding="UTF-8"%>

  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  8. <html xmlns="http://www.w3.org/1999/xhtml">

  9. <head>

  10. <meta http-equiv="Content-Type" content="text/html; charset=GBK" />

  11. <title>添加主题--管理后台</title>

  12. <link href="/web5/css/admin.css" rel="stylesheet" type="text/css" />

  13. </head>

  14. <body>

  15. <%

  16. //跟阅读一致 接收主界面传来的nid 根据nid拿到其原来的新闻信息 并绑定值

  17. //接收主页面传过来的值=nid

  18. String nid=request.getParameter("nid");

  19. //思路:根据nid拿到其对应的新闻信息=单个查询

  20. //jdbc连接oracle 查询所有的新闻 :id 新闻标题 作者

  21. String CNAME="oracle.jdbc.driver.OracleDriver";

  22. String URL="jdbc:oracle:thin:@localhost:1521:orcl";

  23. //加载驱动

  24. Class.forName(CNAME);

  25. //创建连接

  26. Connection con=DriverManager.getConnection(URL, "scott", "tiger");

  27. //定义sql语句

  28. String sql="select * from news280 where nid="+nid;

  29. //获得执行对象

  30. PreparedStatement ps=con.prepareStatement(sql);

  31. //获得结果集

  32. ResultSet rs=ps.executeQuery();

  33. //扩大作用域

  34. int tid=0;//主题编号

  35. String title="";

  36. String author="";

  37. String content="";

  38. String summary="";

  39. //循环遍历

  40. while(rs.next()){

  41. //赋值

  42. tid=rs.getInt(2);

  43. title=rs.getString(3);

  44. author=rs.getString(4);

  45. summary=rs.getString(5);

  46. content=rs.getString(6);

  47. }

  48.  
  49. %>

  50. <div id="header">

  51. <div id="welcome">欢迎使用新闻管理系统!</div>

  52. <div id="nav">

  53. <div id="logo"><img src="/web5/images/logo.jpg" alt="新闻中国" /></div>

  54. <div id="a_b01"><img src="/web5/images/a_b01.gif" alt="" /></div>

  55. </div>

  56. </div>

  57. <div id="admin_bar">

  58. <div id="status">管理员: <%=request.getParameter("aa") %> &#160;&#160;&#160;&#160;<a href="#">退出</a></div>

  59. <div id="channel"> </div>

  60. </div>

  61. <div id="main">

  62. <div id="opt_list">

  63. <ul>

  64. <li><a href="../newspages/news_add.jsp">添加新闻</a></li>

  65. <li><a href="../admin.jsp">编辑新闻</a></li>

  66. <li><a href="#">查找新闻</a></li>

  67. <li><a href="../newspages/topic_add.jsp">添加主题</a></li>

  68. <li><a href="#">编辑主题</a></li>

  69. </ul>

  70. </div>

  71. <div id="opt_area">

  72. <h1 id="opt_type"> 修改新闻: </h1>

  73. <form action="doupdate.jsp" method="post">

  74. <p>

  75. <label> 主题 </label>

  76. <select name="ntid">

  77. <%

  78. //定义sql语句

  79. sql="select * from topic280 order by tid";

  80. //获得执行对象

  81. ps=con.prepareStatement(sql);

  82. //获得结果集

  83. rs=ps.executeQuery();

  84. //循环遍历

  85. while(rs.next()){

  86. //做判断 如果是当前新闻的主题的话,就让其选中

  87. if(rs.getInt(1)==tid){

  88. out.print("<option selected='selected' value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面

  89. }

  90. else{

  91. out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面

  92.  
  93. }

  94. }

  95. //关闭资源

  96. if(con!=null&&!con.isClosed()){

  97. con.close();

  98. }

  99. if(ps!=null){

  100. ps.close();

  101. }

  102. if(rs!=null){

  103. rs.close();

  104. }

  105. %>

  106.  
  107. </select>

  108. </p>

  109. <p>

  110. <label> 标题 </label>

  111. <input name="ntitle" value="<%=title %>" type="text" class="opt_input" />

  112. </p>

  113. <p>

  114. <label> 作者 </label>

  115. <input name="nauthor" value="<%=author %>" type="text" class="opt_input" />

  116. </p>

  117. <p>

  118. <label> 摘要 </label>

  119. <textarea name="nsummary" cols="40" rows="3" ><%=summary %></textarea>

  120. </p>

  121. <p>

  122. <label> 内容 </label>

  123. <textarea name="ncontent" cols="70" rows="10"><%=content %></textarea>

  124. </p>

  125. <p>

  126. <label> 上传图片 </label>

  127. <input name="file" type="file" class="opt_input" />

  128. </p>

  129. <!-- 隐藏域 (会随着表单的提交面而提交 用来传值)-->

  130. <input name="nid" type="hidden" value="<%=nid%>">

  131. <input type="hidden" value="<%=request.getParameter("aa") %>" name="aa" ></input>

  132. <input type="submit" value="提交" class="opt_sub" />

  133. <input type="reset" value="重置" class="opt_sub" />

  134. </form>

  135. </div>

  136. </div>

  137. <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>

  138. <div id="footer">

  139. <p class="">24小时客户服务热线:010-68988888 &#160;&#160;&#160;&#160; <a href="#">常见问题解答</a> &#160;&#160;&#160;&#160; 新闻热线:010-627488888<br />

  140. 文明办网文明上网举报电话:010-627488888 &#160;&#160;&#160;&#160; 举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p>

  141. <p class="copyright">Copyright &copy; 1999-2009 News China gov, All Right Reserver<br />

  142. 新闻中国 版权所有</p>

  143. </div>

  144. </body>

  145. </html>

  146.  

然后还要新建一个doupdate.jsp界面,看如下代码展示:

 
  1. <%

  2. //设置编码方式

  3. request.setCharacterEncoding("utf-8");

  4. //接收表单提交过来的值:

  5. String nid=request.getParameter("nid");//没有传值!!!隐藏域传值

  6. String ntid=request.getParameter("ntid");

  7. String ntitle=request.getParameter("ntitle");

  8. String nauthor=request.getParameter("nauthor");

  9. String nsummary=request.getParameter("nsummary");

  10. String ncontent=request.getParameter("ncontent");

  11. String naddtime=new Date().toLocaleString();//取系统当前时间

  12. //jdbc连接Oracle做判断

  13. //实现修改

  14. String URL="jdbc:oracle:thin:@localhost:1521:orcl";

  15. String CNAME="oracle.jdbc.driver.OracleDriver";

  16. //加载驱动

  17. Class.forName(CNAME);

  18. Connection con=DriverManager.getConnection(URL, "scott", "tiger");

  19. //创建连接

  20. //定义sql语句

  21. String sql="update news280 set tid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,naddtime=? where nid=?";

  22. //获得执行对象

  23. PreparedStatement ps=con.prepareStatement(sql);

  24. //给占位符赋值

  25. ps.setInt(1, Integer.parseInt(ntid));

  26. ps.setString(2, ntitle);

  27. ps.setString(3, nauthor);

  28. ps.setString(4, nsummary);

  29. ps.setString(5, ncontent);

  30. ps.setString(6, naddtime);

  31. ps.setInt(7,Integer.parseInt(nid));

  32.  
  33. //获得影响行数

  34. int n=ps.executeUpdate();

  35.  
  36. //关闭资源

  37. if(con!=null&&!con.isClosed()){

  38. con.close();

  39. }

  40. if(ps!=null){

  41. ps.close();

  42. }

  43.  
  44. //做判断

  45. if(n>0){//说明修改成功

  46. //转发

  47. request.getRequestDispatcher("admin.jsp").forward(request, response);

  48. }

  49. else{//说明发表失败

  50. out.print("<script>alert('修改失败');location.href='/web5/news/update.jsp';</script>");

  51. }

  52.  
  53.  
  54.  
  55. %>

当我们点击某一条新闻主题的修改之后,要跳转到修改的界面,并且原来的数据要绑定在上面,修改之后点击提交,再跳转回到admin新闻主界面,并且上面的数据也会有所改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值