20151220--导航前四问已解答

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.util.*" %>
    <%@ page import="com.hanqi.*" %>
    <%@ page import="com.hanqi.dao.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>地区列表</title>
<script >
function test()
{
    var id = document.getElementById("name");
    if(id.value == "")
        {
            alert("地区不能为空!");
            return false;
        }

    //isNaN    不是数字就返回true

    var el = / \d{6} /;                                            //正则表达式
    var post = document.getElementById("post");
    if(post.value != "" && !el.test(post.value) == 0)
    {
        alert("邮编必须为6位数字!");

        return false;
    }
    return true;
}
function confirmDelete()
{
    return confirm("确认删除该地区吗?删除该地区的同时,会将该地区下的所有地区删除");
    /*
var r = confirm("确认删除该地区吗?删除该地区的同时,会将该地区下的所有地区删除");
if (r == true)
  {
      response.sendRedirect("index.jsp?parentid="+parentid);
      return true;
  }
else
    {
        response.sendRedirect("index.jsp?parentid="+parentid);
        return false;
    }
    */
}
</script>
</head>
<body>
<table border="1">

<tr>
<th>ID</th>
<th>父ID</th>
<th>地名</th>
<th>邮编</th>
<th>管理</th>
<th>删除</th>
</tr>
<%

String pid = request.getParameter("parentid");
if(pid == null || pid.trim().length() == 0)
{
    pid = "0";
}
int iPid = Integer.parseInt(pid);        //转换数据类型
//获取数据
MembersDAL md = new MembersDAL();

ArrayList<Members> al = md.getList(iPid);

if(al != null)
{
    for(Members u : al)
    {
        /*
        if(u.getPostCode() == null)
        {
            u.setPostCode("");
        }
        */
        out.print("<tr><td>"+u.getId() + "</td><td>"+u.getParentid()+ "</td><td>" + u.getName() + "</td><td>" + (u.getPostCode() == null ? "":u.getPostCode()) + "</td><td>"
        + "<a href=‘index.jsp?parentid="+u.getId() +"‘>下级地区</a></td><td><a onclick=‘return confirmDelete();‘ href=‘DeleteMember?id=" + u.getId() + "& parentid=" + u.getParentid() + "‘>删除</a></td></tr>"
                );
    }
}

//遍历数据(循环输出)

%>
</table>
<!-- 无序排序,版面设计 -->
<form method="post" action="InsertMember" onSubmit="return test();">
<input name="parentid" type="hidden" value="<%=pid %>" />
<ul>
<li>请输入地区:<input id="name" name="name" type="text" width=30 /></li>
<li>请输入邮编:<input id="post" name="postcode" type="text" width=30 maxlength="6"/></li>
<li><input type="submit" value="提交" /> <input type="reset" value="取消" /> </li>
</ul>
</form>

</body>
</html>

index.jsp

package com.hanqi;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hanqi.dao.Members;
import com.hanqi.dao.MembersDAL;

/**
 * Servlet implementation class InsertMember
 */
@WebServlet("/InsertMember")
public class InsertMember extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public InsertMember() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");    

        String name = request.getParameter("name");
        String postcode = request.getParameter("postcode");
        //接收父ID
        String parentid = request.getParameter("parentid");
        if(name != null && name.trim().length() > 0)
        {
            //get方式时需要的转码  post方式不需要
//            name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

            if(parentid != null && parentid.trim().length() > 0)
            {

                //调用数据访问层
                //构建实体类  实例化
                Members m = new Members();
                m.setName(name);
                m.setParentid(Integer.parseInt(parentid));
                m.setPostCode(postcode);

                MembersDAL md = new MembersDAL();
                try
                {
                    if(md.insert(m) >0)
                    {

                        response.sendRedirect("index.jsp?parentid="+parentid);        //根据parentid来进行跳转

                    }
                    else
                    {
                        response.getWriter().append("保存数据失败");
                    }
                }
                catch (Exception e)
                {
                    response.getWriter().append("发生错误" + e.getMessage());

                    e.printStackTrace();
                }
            }
            else
            {
                response.getWriter().append("parentid不能为空");
            }
        }
        else
        {
            response.getWriter().append("请正确填写地区名称");
        }

        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

InsertMember.java

package com.hanqi.dao;

import java.sql.*;

public class DBHelper {
    //获取connection对象   static 静态方法 不需要调用他的实例化
    public static Connection getConnection() throws Exception    //工具类中异常不要用try catch
    {
        //加载数据库驱动,并注册到驱动管理器
        Class.forName("oracle.jdbc.driver.OracleDriver");
        //数据库连接字符串
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        //获取connection对象 (个人理解为登陆数据库 并将数据关联)
        Connection conn = DriverManager.getConnection(url,"MemberDB","123654789");    //url,名称,密码
        return conn;

    }

}

DBHelper.java

package com.hanqi.dao;

public class Members {

    private int id;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    private int parentid;

    public int getParentid() {
        return parentid;
    }
    public void setParentid(int parentid) {
        this.parentid = parentid;
    }

    private String name;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    private String postCode;
    public String getPostCode() {
        return postCode;
    }

    public void setPostCode(String postCode) {
        this.postCode = postCode;
    }
}

Members.java

package com.hanqi.dao;

import java.sql.*;
import java.util.*;

public class MembersDAL
{
    //增
    //创建一个实体类 m 并将它放置进去
    public int insert(Members m) throws Exception
    {
        int rtn = 0;

        Connection conn = DBHelper.getConnection();

        PreparedStatement pst = null;

        if (conn != null)
        {
            try
            {
                String sql = "insert into MEMBERS (id, parentid, name,PostCode) values (SQ_MEMBERDB_ID.nextval,?,?,?) ";

                pst = conn.prepareStatement(sql);

                pst.setInt(1, m.getParentid());
                pst.setString(2, m.getName());
                pst.setString(3, m.getPostCode());

                //将执行结果赋给返回值
                rtn = pst.executeUpdate();
            }
            catch(Exception ex)
            {
                throw ex;
            }
            finally
            {
                try
                {
                    pst.close();
                }
                catch(Exception e)
                {
                    conn.close();
                }
                }
            }

            return rtn;
        }

    //查找
    public ArrayList<Members> getList(int parentid) throws Exception         //将父ID传进去,这样能够继承上级ID
{
    ArrayList<Members> rtn = null;        //    如果没有查到数据就会返回空

    Connection conn = DBHelper.getConnection();

    PreparedStatement pst = null;

    if (conn != null)
    {
        try
        {

        String sql = "select * from Members where parentid = ?";

        pst = conn.prepareStatement(sql);

        pst.setInt(1, parentid);

        ResultSet rs = pst.executeQuery();
        if(rs != null)
        {
            rtn = new ArrayList<Members>();        //如果能够正常查询到数据,才会实例化

            while(rs.next())
            {
                Members u = new Members();
                u.setId(rs.getInt("id"));
                u.setParentid(rs.getInt("parentid"));
                u.setName(rs.getString("name"));
                u.setPostCode(rs.getString("postcode"));
                rtn.add(u);        //取一个数就放一个数
            }
        }
        }
        catch(Exception ex)
        {
            throw ex;
        }
        finally
        {
        try
        {
            pst.close();
        }
        catch(Exception e)
        {
            conn.close();
        }
        }
    }
    return rtn;
}

/*
    //删除
            public int delete(int id) throws Exception
            {
                int rtn = -1;

                Connection conn = DBHelper.getConnection();

                PreparedStatement pst = null;

                if (conn != null)
                {
                    try
                    {
                        String sql = "delete Members where id = ?";
                    //String sql = "delete Members where id = ? or parentid = ?";

                        pst = conn.prepareStatement(sql);

                        pst.setInt(1, id);
                //        pst.setInt(2, id);

                        rtn = pst.executeUpdate();
                    }
                    catch(Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        try
                        {
                            pst.close();
                        }
                        catch(Exception e)
                        {
                            conn.close();
                        }
                    }
            }

                return rtn;
            }

*/
        //递归的私有的方法    自己调用自己
            private void dgDel(Connection conn,int id) throws SQLException
            {
                PreparedStatement pst = null;
                ResultSet rs = null;
                Statement st = null;
                try
                {
                    String sql = "delete Members where id = ?";

                    pst = conn.prepareStatement(sql);

                    pst.setInt(1, id);

                    pst.executeUpdate();

                    sql = "select * from Members where parentid = " + id;
                    //遍历子节点
                    st = conn.prepareStatement(sql);

                    rs = st.executeQuery(sql);

                    if(rs != null)
                    {
                        while(rs.next())
                        {
                            dgDel(conn,rs.getInt("id"));    //递归调用
                        }
                    }
                }
                catch(Exception ex)
                {
                    ex.printStackTrace();
                }
                finally
                {
                    try
                    {
                        rs.close();
                    }
                    catch(Exception ex)
                    {

                    }
                    try
                    {
                        pst.close();
                    }
                    catch(Exception ex)
                    {

                    }
                    try
                    {
                        st.close();
                    }
                    catch(Exception ex)
                    {

                    }
                }
            }    

            //递归删除

            public int deleteDG(int id) throws Exception
            {
                int rtn = -1;

                Connection conn = DBHelper.getConnection();

                PreparedStatement pst = null;

                if (conn != null)
                {

                    try
                    {

                    conn.setAutoCommit(false);        //    关闭自动提交

                    //递归级联删除
                    dgDel(conn,id);

/*
                        String sql = "delete Members where id = ? or parentid=?";

                        pst = conn.prepareStatement(sql);

                        pst.setInt(1, id);
                        pst.setInt(2, id);

                        rtn = pst.executeUpdate();
*/
                        conn.commit();                    //    手动提交修改

                    }
                    catch(Exception ex)
                    {

                        conn.rollback();                //回滚

                        throw ex;
                    }
                    finally
                    {
                        try
                        {
                            pst.close();
                        }
                        catch(Exception e)
                        {
                            conn.close();
                        }
                    }
            }

                return rtn;
            }

}

MembersDAL.java

package com.hanqi;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.hanqi.dao.MembersDAL;

/**
 * Servlet implementation class DeleteMember
 */
@WebServlet("/DeleteMember")
public class DeleteMember extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public DeleteMember() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    response.setCharacterEncoding("UTF-8");    

    String id = request.getParameter("id");
    String parentid = request.getParameter("parentid");
    MembersDAL ud = new MembersDAL();
    if(id != null && id.trim().length() > 0)
    {
        try
        {
            //转换
            //int ud = Integer.parseInt(id);
            //ud.delete(id);
            ud.deleteDG(Integer.parseInt(id));    //将 id 强制转换为 int 型

            response.sendRedirect("index.jsp?parentid=" + (parentid == null ? "0" : parentid));

        }
        catch (Exception e)
        {
            response.getWriter().append("删除数据失败");

            e.printStackTrace();
        }
//删除
    }
    else
    {
        response.getWriter().append("ID不能为空");
    }
    }

    private String parentid() {
        // TODO 自动生成的方法存根
        return null;
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

DeleteMember.java

时间: 2024-10-10 13:17:10

20151220--导航前四问已解答的相关文章

利用程序随机构造N个已解答的数独棋盘

项目需求:利用程序随机构造N个已解答的数独棋盘 输入:数独棋盘题目个数N (0 < N <= 1000000) 输出:随机生成N个不重复的已解答完毕的数独棋盘, 并输出到sudotiku.txt,每个数独棋盘中间隔一行 #include<iostream> #include<cstdlib> #include<ctime> #include<fstream> using namespace std; ofstream ocout; int sud

【已解答】Linux ./configure --prefix 命令是什么意思?

源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表. 其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/sha

带下拉子菜单的导航菜单

一.带下拉子菜单的导航菜单 下拉菜单在一些企业网站应用尤为广泛,它存在使用方便,占用空间小等特点.之前纵向导航教程中已使用过二级导航,今天制作下横向导航菜单的二级菜单,方法和纵向一样,只不过由纵向改变为横向而已,下面我们以上一章第二节用图片美化的横向导航中的实例进行修改. 先在html代码增加二级菜单的代码: <div id=”menu”><ul><li><a id=”current” href=”#”>首页</a></li><

(转)ROS导航之参数配置和自适应蒙特卡罗定位

我们的机器人使用两种导航算法在地图中移动:全局导航(global)和局部导航(local).这些导航算法通过代价地图来处理地图中的各种信息,导航stack使用两种costmaps http://www.cnblogs.com/zjiaxing/p/5543386.html存储环境的障碍信息.一个costmap进行全局规划,在整个环境做长期的规划,而另一个是用于局部规划和避障. 全局导航: 在已建立的地图上做一个远距离目标的路径规划. 局部导航: 在正在建立的地图上做近距离目标同时要实时避开障碍物

ROS导航之参数配置和自适应蒙特卡罗定位

我们的机器人使用两种导航算法在地图中移动:全局导航(global)和局部导航(local).这些导航算法通过代价地图来处理地图中的各种信息,导航stack使用两种costmaps http://www.cnblogs.com/zjiaxing/p/5543386.html存储环境的障碍信息.一个costmap进行全局规划,在整个环境做长期的规划,而另一个是用于局部规划和避障. 全局导航: 在已建立的地图上做一个远距离目标的路径规划. 局部导航: 在正在建立的地图上做近距离目标同时要实时避开障碍物

IOS视图控制器导航及生命周期研究Demo

1.背景: 2014年4月份第一次接触IOS端开发,为某银行开发一款金融app.在开发的最后阶段,加入了需要从任意一个页面直接返回主页的功能.悲催的是,当时没有使用UINavigationController进行导航管理,而是使用了IOS中的模态跳转方式(presentViewController/dismissViewControllerAnimated). 因此需要找的一种方法进行,实现如下方式的导航跳转: 已知: 页面a→页面b→页面c 求解: 页面c直接跳回到页面a,并且要求不能有内存泄

Prism 4 文档 ---第8章 导航

作为同用户具有丰富的交互的客户端应用程序,它的用户界面(UI)将会持续不断的更新来反映用户工作的当前的任务和数据.用户界面可以进行一段时间相当大的变化作为用户交互的应用程序中完成各种任务.通过该应用程序协调这些用户界面的变化的过程通常被称为导航. 经常,导航意味着某些控件将会从UI中移除,其他的控件将会被添加到UI中.在另外的情况下,导航也意味着一个或多个存在的控件的可视化状态被更新.---例如,一些控件可能被简单的隐藏或收缩而另外的一些控件被显示后展开.类似的,导航可能意味着一个控件展示的绑定

实现导航

在本章中,我们将使用导航控制器并继续创建FoodTracker app的导航流程.在课程结束后,你将有一个导航策略和交互流程.当你完成时,你的app看起来如下所示: 学习目标在课程结束时,你将学会:1.在storyboard中的导航控制器内嵌入一个已经存在的视图控制器 2.在两个视图控制器之间创建桥梁 3.在storyboard的Attributes inspector内编辑一个segue的属性 4.通过使用prepareForSegue(_:sender:)来在视图控制器之间传递数据 5.执行

112-今日闲情:瞅啥?不是你想象那样的 求大神解答

请=加=我=们=的=V+信[wqv 370]关注免费资料实力解答请=加=我=们=的=V+信[wqv 370]关注免费资料用心分析112期已解答,请加我们的导师免费获取答案,期期免费获取,不收任何费用赶紧行动起来111期:[猴羊] 开 :羊16 中110期:[龙猪] 开 :猪36 中109期:[羊兔] 开 :羊04 中108期:[蛇虎] 开 :蛇30 中107期:[牛马] 开 :牛46 中106期:[牛鸡] 开 :鸡26 中105期:[马兔] 开 :马41 中104期:[鼠兔] 开 :鼠35 中