0
点赞
收藏
分享

微信扫一扫

Java Web快速入门之(绑定&删除&查看&修改)

Brose 2022-04-06 阅读 71

各位看官好,今天我带来的是JSP项如何绑值,查看、删除以及修改。全部到Oracle数据库中,再从数据库中绑定到界面。

文章目录

一、知识点回顾

a、绝对路径

B、js的验证码

二、绑定

 三、下拉框的绑定

四、查

五、删

六、修改

a、隐藏域传值 


一、知识点回顾

a、绝对路径

B、js的验证码

OK,我们现在进入本章的学习,学习的知识点也是用新闻发布项目来讲解。


二、绑定

我们需要将数据库中的新闻信息绑定到我们的主界面去 代码如下:

<body>
<div id="header">
  <div id="welcome">欢迎使用新闻管理系统!</div>
  <div id="nav">
    <div id="logo"><img src="/s4/images/logo.jpg" alt="新闻中国" /></div>
    <div id="a_b01"><img src="/s4/images/a_b01.gif" alt="" /></div>
  </div>
</div>
<div id="admin_bar">
  <div id="status">管理员: <%=request.getParameter("aa") %>  &#160;&#160;&#160;&#160; <a href="#">退出</a></div>
  <div id="channel"> </div>
</div>
<div id="main">
  <div id="opt_list">
    <ul>
      <li><a href="/s4/news/add.jsp">添加新闻</a></li>
      <li><a href="#">编辑新闻</a></li>
      <li><a href="#">查找新闻</a></li>
      <li><a href="#">添加主题</a></li>
      <li><a href="#">编辑主题</a></li>
    </ul>
  </div>
  <div id="opt_area">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <script language="javascript">
	function clickdel(){
		return confirm("删除请点击确认");
	}
	
</script>
    <ul class="classlist">
    <%
    //jdbc连接Oracle查询所有新闻 :id 新闻标题 作者
    String CNAME="oracle.jdbc.driver.OracleDriver";
    String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    //加载驱动
    Class.forName(CNAME);
    //创建链接
    Connection con=DriverManager.getConnection(URL, "scott", "tiger");
    //定义sql语句
    String sql="select nid,ntitle,nauthor from news280 order by nid desc";
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //获得结果集
    ResultSet rs=ps.executeQuery();
    //循环遍历
    while(rs.next()){
    %>
      <li><a href='/s4/news/read.jsp?nid=<%=rs.getInt(1) %>'> <%=rs.getString(2) %></a>
      <span> 作者:<%=rs.getString(3) %>&#160;&#160;&#160;&#160;
       <a href='/s4/news/update.jsp?nid=<%=rs.getInt(1)%>'>修改</a> &#160;&#160;&#160;&#160; 
       <a href='/s4/news/dodelete.jsp?nid=<%=rs.getInt(1) %>' onclick='return clickdel()'>删除</a> 
       </span> 
       </li>
     <%
   	 }
    if(con!=null&&!con.isClosed()){
    	con.close();
    }
    if(ps!=null){
    	ps.close();
    }
    if(rs!=null){
    	rs.close();
    }
     %>
      <li class='space'></li>
      <p align="right"> 当前页数:[1/3]&nbsp; <a href="#">下一页</a> <a href="#">末页</a> </p>
    </ul>
  </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>

效果图如下:

 三、下拉框的绑定

根据数据库的值绑定,并且添加到下拉框

<body>
<div id="header">
  <div id="welcome">欢迎使用新闻管理系统!</div>
  <div id="nav">
    <div id="logo"><img src="/s4/images/logo.jpg" alt="新闻中国" /></div>
    <div id="a_b01"><img src="/s4/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="../newspages/news_add.jsp">添加新闻</a></li>
      <li><a href="../admin.jsp">编辑新闻</a></li>
      <li><a href="#">查找新闻</a></li>
      <li><a href="../newspages/topic_add.jsp">添加主题</a></li>
      <li><a href="#">编辑主题</a></li>
    </ul>
  </div>
  <div id="opt_area">
    <h1 id="opt_type"> 添加新闻: </h1>
    <form action="doadd.jsp" method="post">
      <p>
        <label> 主题 </label>
        <select name="ntid">
		<%
		//jdbc连接Oracle查询所有新闻 :id 新闻标题 作者
	    String CNAME="oracle.jdbc.driver.OracleDriver";
	    String URL="jdbc:oracle:thin:@localhost:1521:orcl";
	    //加载驱动
	    Class.forName(CNAME);
	    //创建链接
	    Connection con=DriverManager.getConnection(URL, "scott", "tiger");
	    //定义sql语句
	    String sql="select *from topic280 order by tid";
	    //获得执行对象
	    PreparedStatement ps=con.prepareStatement(sql);
	    //获得结果集
	    ResultSet rs=ps.executeQuery();
	    //循环遍历
	    while(rs.next()){
		%>
          <option value='<%=rs.getInt(1) %>'> <%=rs.getString(2) %></option>
         <%
	   	 }
	    if(con!=null&&!con.isClosed()){
	    	con.close();
	    }
	    if(ps!=null){
	    	ps.close();
	    }
	    if(rs!=null){
	    	rs.close();
	    }
	     %>
        </select>
      </p>
      <p>
        <label> 标题 </label>
        <input name="ntitle" id="aa" type="text" class="opt_input" onblur="mya();"/>
      </p>
      <p>
        <label> 作者 </label>
        <input name="nauthor" id="bb" type="text" class="opt_input" onblur="myb();"/>
      </p>
      <p>
        <label> 摘要 </label>
        <textarea name="nsummary" id="cc" cols="40" rows="3" onblur="myc();"></textarea>
      </p>
      <p>
        <label> 内容 </label>
        <textarea name="ncontent" id="dd" cols="70" rows="10" onblur="myd();"></textarea>
      </p>
      <p>
        <label> 上传图片 </label>
        <input name="file" type="file" id="ee" class="opt_input" onblur="myf();"/>
      </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>

四、查

代码如下:


	//接收主页面传过来的值=nid
	String nid=request.getParameter("nid");
	//思路: 根据nid拿到其对应的新闻信息=单个查询
	 String CNAME="oracle.jdbc.driver.OracleDriver";
    String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    //加载驱动
    Class.forName(CNAME);
    //创建链接
    Connection con=DriverManager.getConnection(URL, "scott", "tiger");
    //定义sql语句
    String sql="select *from news280 where nid="+nid;
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //获得结果集
    ResultSet rs=ps.executeQuery();
    //扩大作用域
    String title="";
    String author="";
    String addtime="";
    String content="";
    //循环遍历
   	if(rs.next()){
		//赋值
		title=rs.getString(3);
		author=rs.getString(4);
		content=rs.getString(6);
		addtime=rs.getString(8);
   	}
 	 //关闭资源
   	if(con!=null&&!con.isClosed()){
   		con.close();
   	}
   	if(ps!=null){
   		ps.close();
   	}
   	if(rs!=null){
   		rs.close();
   	}

五、删

代码如下:

	//接收nid		根据键拿到值
	String nid= request.getParameter("nid");
	//jdbc 删除 delete from news280 where nid=?
	 String CNAME="oracle.jdbc.driver.OracleDriver";
    String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    //加载驱动
    Class.forName(CNAME);
    //创建链接
    Connection con=DriverManager.getConnection(URL, "scott", "tiger");
    //定义sql语句
    String sql=" delete from news280 where nid=?";
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
	//给占位符赋值
	ps.setInt(1, Integer.parseInt(nid));
	//开始执行
	int n=ps.executeUpdate();//影响行数
	
	//关闭资源
	if(con!=null&&!con.isClosed()){
		con.close();
	}
	if(ps!=null){
		ps.close();
	}
	
	//做判断
	if(n>0){
		//删除成功
		response.sendRedirect("/s4/news/admin.jsp");
	}
	else{
		//删除失败
		out.print("<script>alert('删除失败');location.href='admin.jsp';</script>");
	}

六、修改

代码如下:(点击修改时跳转,并且把原有的值全部从数据库中绑定到界面)

	//溯源nid
	//思路:跟阅读一致 接收主界面传过来的nid  根据nid 拿到其原来的新闻信息 并绑值
	//接收主页面传过来的值=nid
	String nid=request.getParameter("nid");
	//思路: 根据nid拿到其对应的新闻信息=单个查询
	 String CNAME="oracle.jdbc.driver.OracleDriver";
    String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    //加载驱动
    Class.forName(CNAME);
    //创建链接
    Connection con=DriverManager.getConnection(URL, "scott", "tiger");
    //定义sql语句
    String sql="select *from news280 where nid="+nid;
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //获得结果集
    ResultSet rs=ps.executeQuery();
    //扩大作用域
    int tid=0;//主题编号
    String title="";//标题
    String author="";//作者
    String content="";//内容
    String summary="";//摘要
    //循环遍历
   	if(rs.next()){
		//赋值
		tid=rs.getInt(2);
		title=rs.getString(3);
		author=rs.getString(4);
		content=rs.getString(6);
		summary=rs.getString(5);
   	}
%>
<div id="header">
  <div id="welcome">欢迎使用新闻管理系统!</div>
  <div id="nav">
    <div id="logo"><img src="/s4/images/logo.jpg" alt="新闻中国" /></div>
    <div id="a_b01"><img src="/s4/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_area">
    <h1 id="opt_type"> 修改新闻: </h1>
    <form action="doupdate.jsp" method="post">
      <p>
        <label> 主题 </label>
        <select name="ntid">
		<%
	    //定义sql语句
	    sql="select *from topic280 order by tid";//tid,tname
	    //获得执行对象
	    ps=con.prepareStatement(sql);
	    //获得结果集
	    rs=ps.executeQuery();
	    //循环遍历
	    while(rs.next()){
	    	//做判断 如果是当前新闻的主题编号的话就让其选中
	    	if(rs.getInt(1)==tid){
				out.print("<option selected='selected' value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面
	    	}
	    	else{//否则不选中 不给你修改的权限
				out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面
	    	}
    	}
	    //关闭资源
	    if(con!=null&&!con.isClosed()){
	    	con.close();
	    }
	    if(ps!=null){
	    	ps.close();
	    }
	    if(rs!=null){
	    	rs.close();
	    }
	     %>
	    <!--  <option value="1">哈哈</option>
	     <option value="2" selected="selected">嘿嘿</option> -->
        </select>
      </p>
      <p>
        <label> 标题 </label>
        <input name="ntitle" value="<%=title %>" id="aa" type="text" class="opt_input" onblur="mya();"/>
      </p>
      <p>
        <label> 作者 </label>
        <input name="nauthor" value="<%=author %>"  id="bb" type="text" class="opt_input" onblur="myb();"/>
      </p>
      <p>
        <label> 摘要 </label>
        <textarea name="nsummary" id="cc" cols="40" rows="3" onblur="myc();"><%=summary %></textarea>
      </p>
      <p>
        <label> 内容 </label>
        <textarea name="ncontent"  id="dd" cols="70" rows="10" onblur="myd();"><%=content %></textarea>
      </p>
      <p>
        <label> 上传图片 </label>
        <input name="file" type="file" id="ee" class="opt_input" onblur="myf();"/>
      </p>
      <input name="nid" type="hidden" value="<%=nid%>"/>
      <input type="submit" value="提交" class="opt_sub" />
      <input type="reset" value="重置" class="opt_sub" />
    </form>
  </div>

a、隐藏域传值 

 另一个界面的代码如下:

//设置中文编码
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值
String nid=request.getParameter("nid");//没有传值!! 隐藏域传值
String ntid=request.getParameter("ntid");//主题
String ntitle =request.getParameter("ntitle");//标题
String nauthor=request.getParameter("nauthor");//作者
String nsummary=request.getParameter("nsummary");//摘要
String ncontent=request.getParameter("ncontent");//内容
String naddtime=new Date().toLocaleString();//取系统当前时间

//实现修改操作
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
Class.forName(CNAME);
Connection con= DriverManager.getConnection(URL,"scott","tiger");
//定义sql语句
String sql="update news280 set tid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,naddtime=? where nid=?";
//执行sql语句
PreparedStatement ps=con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, Integer.parseInt(ntid));//String-->int
ps.setString(2, ntitle);
ps.setString(3, nauthor);
ps.setString(4, nsummary);
ps.setString(5, ncontent);
ps.setString(6, naddtime);
ps.setInt(7, Integer.parseInt(nid));

//获得影响行数
int n=ps.executeUpdate();
//关闭资源
if(con!=null&&!con.isClosed()){
	con.close();
}
if(ps!=null){
	ps.close();
}
if(n>0){//说明修改成功
	//新闻主界面
	response.sendRedirect("/s4/news/admin.jsp");
}
else{//说明修改失败 并且传值
	out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
}

结果:

 修改后结果如下:

 OK,以上所有就是今日学习的所有内容了,我是小陽,欢迎个位看官能观看我的文章,如果有写的不好/不足的地方欢迎大家指出来,博主会做出改变,如对各位有所帮助,不介意各位留下免费的三连哦!


下章预告:

举报

相关推荐

0 条评论