zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Nginx 配置对流量、连接和请求的限制
    linux iptables规则介绍
    Javascript 语言精粹 代码片段合集
    Wowza® Media Systems 使用配置手册。
    如何去除My97 DatePicker控件上右键弹出官网的链接
    [转载]jQuery诞生记-原理与机制
    java swing JButton文字显示异常
    c# 内存拷贝 解决json序列化丢失私有数据(二进制序列化反序列化)
    c# Marshal 将字节数组转为结构 封装协议
    c# 串口通信及模拟串口进行调试
  • 原文地址:https://www.cnblogs.com/name-hanlin/p/5061962.html
Copyright © 2011-2022 走看看