码迷,mamicode.com
首页 > Web开发 > 详细

servlet+jsp 增删改查

时间:2015-03-30 22:55:10      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

 

个人觉得这种模式是MVC模式

  1. 先写一个类,类里面有几个属性。 
  2. 写一个接口。里面有增删改查的方法。                   (写在service里)
  3. 写一个类实现这个接口(实现里面的增删改查等操作)     (写在service里)
  4. 连接数据库
  5. 写 servlet操作,  处理增删改查的信息。
  6. Jsp页面  (写页面显示或者上传,添加的页面布局等)与servlet实现交互,从而实现以上功能。

 

增删改查具体实例如下————  具体代码:

XinxManager.java

package cn.hpu.service;

import java.util.List;

import cn.hpu.gu.Xinx;

//定义接口 增删改查,获取表单信息,通过id获取信息等方法

public interface XinxManager{

      public List<Xinx>getXinxs();

      public boolean add(Xinx xin);

      public boolean  del(String id);

      public boolean update( Xinx xin);

      public boolean select(String name,String password);

      public Xinx  getXinxById(String id);

}

 

//定义一个类实现这个接口的方法

XinxManagerImp.Java

 

 

 

package cn.hpu.service;

 

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

 

import cn.hpu.gu.Xinx;

import cn.hpu.util.util;

 

import com.mysql.jdbc.PreparedStatement;

 

public class XinxManagerImp  implements XinxManager{

 

     

    //增加

      public boolean add(Xinx xin) {

           boolean          flag  =  false;

//定义一个标志,赋值为false

           Connection  conn = null;

           PreparedStatement pst =null;

          conn = util.getConnection();

     String sql="insert into report( title,speaker ,address ,unit , time,content ,dateposted)values(?,?,?,?,?,?,?)";

//几个参数几个问号,这里id设置的是自增的所以没必要添加

        try{

conn = util.getConnection();  

pst = (PreparedStatement) conn.prepareStatement(sql);

           //pst.setString(1, xin.getId());

           //pst.setInt(1, xin.getId());

//get所要添加的信息,set到数据库对应的位置

             pst.seString(, xin.getTitle());

             pst.setString(2, xin.getSpeaker());

             pst.setString(3, xin.getAddress());

             pst.setString(4, xin.getUnit());

             pst.setString(5, xin.getTime().toString());

             pst.setString(6, xin.getContent());

             pst.setString(7,xin.getDateposted().toString());

           //executeUpdate(sql)是更新数据,

            //返回int类型是返回的更新了多少行,也就是受影响的行数,如果为0,则表示无更新

          

             int rows = pst.executeUpdate();

             if(rows>0)

             {

                   flag=true;

                   }

        }catch (Exception e) {

           e.printStackTrace();

      }finally{

           util.close(pst, conn);

      }

       return flag;        //返回flag方便后面的获取

      }

   

      //删除

      public boolean del(String id) {

           boolean   flag =  false;

Connection conn = null;

           PreparedStatement pst = null;

           conn = util.getConnection();

           try{

                 String sql = "delete from report where id like?";

                 pst = (PreparedStatement) conn.prepareStatement(sql);

                 pst.setString(1, id);

                 int rows = pst.executeUpdate();

                 if(rows>0){

                  flag = true;

                 }

           }catch (Exception e) {

                 e.printStackTrace();

                 }finally{

                      util.close(pst, conn);

                 }

                 return flag;

      }

 

      //查询

      public List<Xinx> getXinxs() {

//用到了类型转换  (方法内定义的 public List<Xinx>getXinxs();)

           List<Xinx> list = new ArrayList<Xinx>();

          

            Connection conn = null;

            ResultSet rs = null;    //!!!!!!!

          Statement stmt = null;

          try{

           conn =  util.getConnection();

           String sql = "select * from report";

                       //创建Statement (Sql语句的执行环境)

           stmt = conn.createStatement();

                      

           rs = stmt.executeQuery(sql);

                 //executeQuery(String sqlString)执行查询数据库的SQL,

                 //eg:SELECT语句,返回一个结果集(ResultSet)

           while( rs.next()){     //!!!!

            Xinx xin = new Xinx();

             // 查询。类的所有成员信息都set出来

            xin.setId(rs.getString("id"));

//解读一下,请求获取 字符串,然后都set出来

            xin.setSpeaker(rs.getString("speaker"));               xin.setAddress(rs.getString("address"));

            xin.setTitle(rs.getString("title"));

            xin.setTime(rs.getString("time"));

            xin.setContent(rs.getString("content"));

            xin.setUnit(rs.getString("unit"));

            xin.setDateposted(rs.getString("dateposted"));

            list.add(xin);   //!!!!!!

           }

          }catch (Exception e) {

                 e.printStackTrace();

           }finally{

           util.close(rs, stmt, conn);

           }

       return list;

      }

     

 //修改

      public boolean update(Xinx xin){

          boolean flag = false;

           Connection conn = null;

           java.sql.PreparedStatement pst = null;

           conn = util.getConnection();

           String sql= "update report set title=?,speaker=?,address=?,unit=?,time=?,content=?,dateposted=? where id = "+xin.getId();     //where id = ?";  (两个是一个意思,自where后的东西,是可以替换的,下面会稍作修改,因为多了一个问号)       

          

           try{

                 pst = conn.prepareStatement(sql);

                 pst.setString(1, xin.getTitle());

                 pst.setString(2, xin.getSpeaker());  

                 pst.setString(3, xin.getAddress());

                 pst.setString(4, xin.getUnit());

                 pst.setString(5, xin.getTime());

                 pst.setString(6, xin.getContent());

                 pst.setString(7, xin.getDateposted());

                 //如果不加这个会出错(Statement parameter 8 not set.)说为设置,所以如果用问号,那就几个问号,设计几个Statement parameter。

               //pst.setString(8, xin.getId());

                 int  rows = pst.executeUpdate();

                 if(rows>0)

                 {flag = true;}

           }catch (Exception e)

           {

                 e.printStackTrace();

           }

            finally

           {

                 util.close(pst, conn);

                 }

          

           return flag;

      }

     

     

      //根据id查询它的所有信息

     

      public  Xinx getXinxById(String id) {

      Connection conn = null;

       ResultSet  rs = null;

       Statement   stmt = null;

       Xinx xin = new Xinx();

       try{

            conn =  util.getConnection();

            String sql = "select * from report where id ="+id;

            stmt = conn.createStatement();

            rs =  stmt.executeQuery(sql);

            while(rs.next())

            {

          //测试一下看看获取id了木有

                System.out.println(rs.getString("id")+"通过id查询信息");

                if(rs.getString("id").equals(id)) {

                            //查询  显示出来

                      xin.setId(rs.getString("id"));

                      xin.setTitle(rs.getString("title"));

                    xin.setSpeaker(rs.getString("speaker"));

                    xin.setAddress(rs.getString("address"));

                    xin.setTime(rs.getString("time"));

                    xin.setContent(rs.getString("content"));

                    xin.setUnit(rs.getString("unit"));

                    xin.setDateposted(rs.getString("dateposted"));

                      }

            }

            

       }catch (Exception e)

       {

            e.printStackTrace();

      }finally

      {

           util.close(rs, stmt, conn);

      }

        

      System.out.println(xin.getId());

      return xin;

      }

     

      public boolean select(String name, String password) {

           // TODO Auto-generated method stub

           return false;

      }

 

}

addServlet.java

package cn.hpu.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import cn.hpu.gu.Xinx;

import cn.hpu.service.XinxManager;

import cn.hpu.service.XinxManagerImp;

 

public class AddServlet extends HttpServlet {

 

      public void doGet(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

                 this.doPost(request, response);

          

      }

 

      public void doPost(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

         //防止中文乱码,这样最保险  

           response.setContentType("text/html;chartset=utf-8");

           request.setCharacterEncoding("utf-8");

           response.setCharacterEncoding("utf-8");

             

           //   request.getParameter()获取jsp页面提交的数据

        String  id = request.getParameter("id");

           String title = request.getParameter("title");

           String speaker = request.getParameter("speaker");

           String address = request.getParameter("address");

           String unit = request.getParameter("unit");

           String time = request.getParameter("time");

           String content = request.getParameter("content");

           String dateposted = request.getParameter("dateposted");

          

           Xinx xin = new Xinx();

           //xin.setId(0);

           xin.setTitle(title);

           xin.setSpeaker(speaker);

           xin.setAddress(address);

           xin.setUnit(unit);

           xin.setTime(time);

           xin.setContent(content);

           xin.setDateposted(dateposted);

          

           XinxManager   xm = new XinxManagerImp();

           boolean flag = xm.add(xin);

          

           System.out.println("增加这里的"+flag);

          

           if(flag == true )

           //跟上面的意思是一样的if(flag)

                 {

                 //作用: 增加成功后会调到一个页面,显示出来

                   Xinx xin1 = xm.getXinxById(id);

                   //通过id获的这组信息,用setAttribute传到表单页面

                 request.setAttribute("xin1", xin);

//在     login1.jsp显示新添加的信息,这样一目了然         

request.getRequestDispatcher("login1.jsp").forward(request, response);

                  

                 /*或者直接跳到主页面

                 //request.setAttribute("param", "success");

                 System.out.println("添加成功");

                 //request.getRequestDispatcher("login.jsp").forward(request, response);

                 response.setContentType("text/html");

                 PrintWriter out = response.getWriter();

                 out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

                 out.println("<HTML>");

                 out.println("  <HEAD><TITLE>添加成功</TITLE></HEAD>");

                 out.println("  <BODY>");

                 out.println("添加成功!!!");

                 out.println("<a href = ‘login.jsp‘> 返回主页面</a>");

                 out.println("  </BODY>");

                 out.println("</HTML>");

                 out.flush();

                 out.close();

*/

           }else {

                

                 //request.setAttribute("param", "failed");

                 System.out.println("添加失败");

                 //如果添加失败转发到原来的页面

                 request.getRequestDispatcher("add.jsp").forward(request, response);

                

           }

      }

 

}

 

 

 

 

 

 

 

<%@ page language="java" import="java.util.*,cn.hpu.gu.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

Login1.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>My JSP ‘login1.jsp‘ starting page</title>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

 

  </head>

 

  <body>

 <!--  修改成功! <a href="login.jsp">返回主界面</a>  -->  

 

   <h3>增加或者修改后的信息   | <a href="login.jsp">返回主界面</a>  </h3>

  

   <table border="1" cellpadding="0" cellspacing="0" width="80%" align="center">

  <tr>

       <!--   <th>序号</th> -->

         <th>题目</th>

         <th>主讲</th>

         <th>地址</th>

         <th>主讲人单位</th>

         <th>时间</th>

         <th>内容</th>

         <th>发布时间</th>

         <th>操作</th>

  </tr>

    <%

   

        

                             //   XinxManager xm = new XinxManagerImp(); 

   

                          //  List<Xinx> list = xm.getXinxs();

       

                         //  if(list!=null)

                       // {

                      //    for(int i=0; i<list.size(); i++)

                         // {

                                //   Xinx xin = list.get(i);

    

   

      

         Xinx  xin =(Xinx)request.getAttribute("xin1");

          if(xin!=null)

    

    {

       

   %>

 <tr>

       <!--  <td><%=xin.getId()%></td> -->

        <td><%=xin.getTitle() %></td>

        <td><%=xin.getSpeaker() %></td>

        <td><%=xin.getAddress()%></td>

        <td><%=xin.getUnit() %></td>

        <td><%=xin.getTime() %></td>

        <td><%=xin.getContent() %></td>

        <td><%=xin.getDateposted() %></td>

       

        <td>

        <a href="DelServlet?id=<%=xin.getId() %>">删除</a>

        <a href="UpdateServlet1?id=<%=xin.getId() %>">修改</a> 

         <!-- 点击修改,执行UpdateServlet1,通过id获取要修改的信息 ,,,转到-->

        </td>

   

  </tr> 

  <%

  //    }

   }

   %>

  </table> 

  </body>

</html>

 

 

 

 

DelServlet.Java

package cn.hpu.servlet;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import cn.hpu.service.XinxManager;

import cn.hpu.service.XinxManagerImp;

 

public class DelServlet extends HttpServlet {

 

     

      public void doGet(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

                 this.doPost(request, response);

          

      }

      public void doPost(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

           String id = request.getParameter("id");

           XinxManager  xm = new XinxManagerImp();

           boolean flag = xm.del(id);

           if(flag == true)

           {

          response.sendRedirect("login.jsp");  

           }

          

          

      }

 

}

Search.java   查询的servlet

package cn.hpu.servlet;

 

import java.io.IOException;

import java.sql.ResultSet;

import java.util.List;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.omg.PortableServer.ForwardRequest;

 

 

import cn.hpu.gu.Xinx;

import cn.hpu.service.XinxManager;

import cn.hpu.service.XinxManagerImp;

 

public class Search extends HttpServlet {

 

      public void doGet(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

                 this.doPost(request, response);

      }

 

      public void doPost(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

               XinxManager xm = new XinxManagerImp();

               List<Xinx>  list = xm.getXinxs();

               request.setAttribute("list", list);

               //转发

               request.getRequestDispatcher("login.jsp").forward(request, response);

             

      }

}

 

Login.jsp

 

 

 

<%@ page language="java" import="java.util.*,cn.hpu.gu.*" pageEncoding="utf-8"%>

<%@page import="cn.hpu.service.XinxManager"%>

<%@page import="cn.hpu.service.XinxManagerImp"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>管理员操作页面</title>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

 

  </head>

  <h2>管理信息</h2>

 

       欢迎${sessionScope.loginuser}登陆

  <!--

     request.getSession().getAttribute() 与 ${sessionScope}  它们都是取值的,

         前面的是java代码,写在java源文件中,或者jsp的<%%>中

        后面的属于表达式,直接嵌在HTML代码中取值

        -->

 

   <a href="add.jsp">添加学生</a>  <a href = "index.jsp">退出</a>

    

  

   <hr/>

  <body>

 

  <table border="1" cellpadding="0" cellspacing="0" width="80%" align="center">

  <tr>

       <!--   <th>序号</th> -->

         <th>题目</th>

         <th>主讲</th>

         <th>地址</th>

         <th>主讲人单位</th>

         <th>时间</th>

         <th>内容</th>

         <th>发布时间</th>

         <th>操作</th>

  </tr>

    <%

   

       

    XinxManager xm = new XinxManagerImp();

    List<Xinx> list = xm.getXinxs();

  

     if(list!=null)

     {

     for(int i=0; i<list.size(); i++)

     {

        Xinx xin = list.get(i);

    

    

   

       

   %>

 <tr>

       <!--  <td><%=xin.getId()%></td> -->

        <td><%=xin.getTitle() %></td>

        <td><%=xin.getSpeaker() %></td>

        <td><%=xin.getAddress()%></td>

        <td><%=xin.getUnit() %></td>

        <td><%=xin.getTime() %></td>

        <td><%=xin.getContent() %></td>

        <td><%=xin.getDateposted() %></td>

       

        <td>

        <a href="DelServlet?id=<%=xin.getId() %>">删除</a>

        <a href="UpdateServlet1?id=<%=xin.getId() %>">修改</a> 

         <!-- 点击修改,执行UpdateServlet1,通过id获取要修改的信息 ,,,转到-->

        </td>

   

  </tr> 

  <%

   }

   }

   %>

  </table>

 

  </body>

</html>

 

UpdateServlet1.java

 

package cn.hpu.servlet;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import cn.hpu.gu.Xinx;

import cn.hpu.service.XinxManager;

import cn.hpu.service.XinxManagerImp;

 

public class UpdateServlet1 extends HttpServlet {

 

           //通过login.jsp中的修改跳这,(获取数据库中要更改单的信息)

      public void doGet(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

 

             this.doPost(request, response);

      }

 

      public void doPost(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

             

             //通过id获取要修改的信息

                 String id = request.getParameter("id");

                 XinxManager  xm = new XinxManagerImp();

                 System.out.println("获取数据库中要更新id的所有信息"+id);

                

                 //调用XinxManagerImp.java里的方法

                 Xinx  xin = xm.getXinxById(id);

          

               if(xin != null)

               {

                   //通过id获得的xin的信息用setAttribute方法穿到表单中

                   request.setAttribute("xin",xin);

                   //跳转到更改页面

                   request.getRequestDispatcher("update.jsp").forward(request, response);              }

               

              }

 

}

 

update.jsp

 

 

 

<%@ page language="java" import="java.util.*,cn.hpu.gu.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

   

    <title>修改页面</title>

   

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

 

  </head>

 

   <%

     //表单中通过getAttribute获取setAttribute 传来的xin的信息

     Xinx  xin =(Xinx)request.getAttribute("xin");

     

 

   %>

 

  <body>

   <h1>修改信息</h1>

   <hr/>

      <!-- 然后用 xin.getSpeaker() 等分别获的各自对应位置的数据-->

   <form action="UpdateServlet" method="post">

   <table>

            <!--让id跟着表单一快传过去,id设置了style="display: none;"表单页面中id被隐藏看不到-->

       <inputname="id"type="text"value="<%=xin.getId()%>"style="display: none;"/>  

      <tr align="left"> <th> 题  目</th>

         <th><input name="title" type="text" value="<%=xin.getTitle()%> "></th>

        </tr>

      <tr align="left"><th> 主  讲</th>

          <th><input name="speaker" type="text"  value="<%=xin.getSpeaker() %>"></th>

      </tr>

    <tr align="left">

           <th> 地  址</th> <th><input name="address" type="text" value="<%=xin.getAddress()%>"> </th>

   </tr>

    <tr align="left">

           <th>主讲人单位</th> <th><input name="unit" type="text" value="<%=xin.getUnit() %> "></th>

    </tr>

    <tr align="left">

            <th> 时  间</th> <th><input name="time" type="date" value="<%=xin.getTime() %> "></th>

   </tr>

    <tr align="left">

           <th>  内  容</th> <th ><input name="content" type="text" value=" <%=xin.getContent() %> "></th>

   </tr>

    <tr align="left">

           <th>发布时间</th> <th><input name="dateposted" type="date" value=" <%=xin.getDateposted() %>"></th>

   </tr>

 

         <tr align="left">

         <th><input type="submit" value=" 修改" /></th>

   </tr>

  

   </table>

  </form>

  <!-- 在form表单中通过action="UpdateServlet" 将数据传到UpdateServlet中,,,转到-->

  </body>

</html>

 

UpdateServlet.java

 

package cn.hpu.servlet;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

 

import cn.hpu.gu.Xinx;

import cn.hpu.service.XinxManager;

import cn.hpu.service.XinxManagerImp;

 

public class UpdateServlet extends HttpServlet {

 

     

      //进行数据库中信息修好,也就是重新获取修改后提交的信息

 

      public void doGet(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

                 this.doPost(request, response);

      }

 

     

      public void doPost(HttpServletRequest request, HttpServletResponse response)

                 throws ServletException, IOException {

                      response.setContentType("text/html;chartset=utf-8");

                      response.setCharacterEncoding("utf-8");

                      request.setCharacterEncoding("utf-8");

                 

                      //request.getParameter()方法是 获取Http(这里是更改表单)提交过来的数据

                      String id = request.getParameter("id");

                      String title = request.getParameter("title");

                      String speaker = request.getParameter("speaker");

                      String address = request.getParameter("address");

                      String unit = request.getParameter("unit");

                      String time = request.getParameter("time");

                      String content = request.getParameter("content");

                      String dateposted = request.getParameter("dateposted");

                       

                      XinxManager xm = new XinxManagerImp();

                       Xinx xin = new Xinx();

                          //将新数据set进去。。。

                       xin.setId(id);

                       xin.setTitle(title);

                       xin.setSpeaker(speaker);

                       xin.setAddress(address);

                       xin.setUnit(unit);

                       xin.setTime(time);

                       xin.setContent(content);

                       xin.setDateposted(dateposted);

                          //调用update(Xinx xin)方法{里面将get的新数据信息,再set到数据库中,从而完成修改}

                     

                       boolean flag = xm.update(xin);

                        System.out.println("修改后提交的信息"+id);

                       if(flag == true)

                       {      

                                //例子

                                //Student stu1 = sm.getStudentById(id);

                                  //request.setAttribute("stu1",stu1);

                                

                                  Xinx xin1 = xm.getXinxById(id);

                                  request.setAttribute("xin1", xin);

                                  request.getRequestDispatcher("login1.jsp").forward(request, response);

                               System.out.println(xin.getId()+"9999999999999");

                            //request.getRequestDispatcher("login.jsp").forward(request, response);

                       }else

                       {

                       }

      }

}

 

servlet+jsp 增删改查

标签:

原文地址:http://www.cnblogs.com/guyu/p/4379332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!