zoukankan      html  css  js  c++  java
  • 课堂测试

    考试要求:

    1登录账号:要求由612位字母、数字、下划线组成,只有字母可以开头;(1分)

    2登录密码:要求显示“• ”或“*”表示输入位数,密码要求八位以上字母、数字组成。(1分)

    3性别:要求用单选框或下拉框实现,选项只有“男”或“女”;(1分)

    4学号:要求八位数字组成,前四位为2018”开头,输入自己学号;(1分)

    5姓名:输入自己的姓名;

    5电子邮箱:要求判断正确格式xxxx@xxxx.xxxx;(1分)

    6点击“添加”按钮,将学生个人信息存储到数据库中。(3分)

    7可以演示连接上数据库。(2分)

    步骤:

    一、建立输入的数据对应的类和相应的函数。

    package com.entry;
    
    public class user {
    private String id;//账号
    private String password;//密码
    private String name;//姓名
    private String sex;//性别
    private String number;//学号
    private String mail;//邮箱
    private String xueyuan;//学院
    private String xi;//
    private String banji;//班级
    private String nian;//
    private String shengyuandi;//生源地
    private String beizhu;//备注
    
    public String getBeizhu() {
        return beizhu;
    }
    public void setBeizhu(String beizhu) {
        this.beizhu = beizhu;
    }
    public String getShengyuandi() {
        return shengyuandi;
    }
    public void setShengyuandi(String shengyuandi) {
        this.shengyuandi = shengyuandi;
    }
    public String getNian() {
        return nian;
    }
    public void setNian(String nian) {
        this.nian = nian;
    }
    public String getBanji() {
        return banji;
    }
    public void setBanji(String banji) {
        this.banji = banji;
    }
    public String getXi() {
        return xi;
    }
    public void setXi(String xi) {
        this.xi = xi;
    }
    public String getXueyuan() {
        return xueyuan;
    }
    public void setXueyuan(String xueyuan) {
        this.xueyuan = xueyuan;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public String getMail() {
        return mail;
    }
    public void setMail(String mail) {
        this.mail = mail;
    }
    public user(){}
    public user(String name, String password) {
        this.name = name;
        this.password = password;
    };
    public user(String id, String password, String name, String sex, String number, String mail,
                String xueyuan, String xi, String banji, String nian, String shengyuandi, String beizhu) {
        super();
        this.id = id;
        this.password = password;
        this.name = name;
        this.sex = sex;
        this.number = number;
        this.mail = mail;
        this.xueyuan = xueyuan;
        this.xi= xi;
        this.banji = banji;
        this.nian = nian;
        this.shengyuandi = shengyuandi;
        this.beizhu = beizhu;
    }
    }

    二、建立有关数据库连接,导入的类。

    package com.dao;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import com.entry.user;
    import com.util.DBUtil;
    
    public class userDao {
        //添加
            public boolean add(user user) {
                String sql = "insert into user2(id,sex,password,number,mail,name,xueyuan,xi,banji,nian,shengyuandi,beizhu)" 
                        + "values('" + user.getId() + "','" + user.getName() + "','" + user.getPassword() + "','" 
                        + user.getSex() + "','" + user.getMail() + "','" + user.getNumber() + "','" 
                        + user.getXueyuan() + "','" + user.getXi() + "','" + user.getBanji() + "','" 
                        + user.getNian() + "','" + user.getShengyuandi() + "','" + user.getBeizhu() + "')'" ;
                //创建数据库链接
                Connection conn = DBUtil.getConn();
                Statement state = null;
                boolean f = false;
                int a = 0;
                
                try {
                    state = conn.createStatement();
                    state.executeUpdate(sql);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    //关闭连接
                    DBUtil.close(state, conn);
                }
                
                if (a > 0) {
                    f = true;
                }
                return f;
            }
            
            
             /*
             * 验证名称是否唯一
             * true --- 不唯一
             */
            public boolean id(String id) {
                boolean f = false;
                String sql = "select id from user2 where name = '" + id + "'";
                //c创建数据库连接
                Connection conn = DBUtil.getConn();
                Statement state = null;
                ResultSet rs = null;       
                try {
                    state = conn.createStatement();
                    rs = state.executeQuery(sql);
                    while (rs.next()) {
                        f = true;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    DBUtil.close(rs, state, conn);
                }
                return f;
            }
    }
    package com.service;
    
    import com.dao.userDao;
    import com.entry.user;
    
    public class userservice {
    userDao cDao = new userDao();
        
        /*添加*/
        public boolean add(user user) {
            boolean f = false;
            if(!cDao.id(user.getId())) {
                cDao.add(user);
                f = true;
            }
            return f;
        }
          
    }
    package com.servlet;
    
    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.entry.user;
    import com.service.userservice;
    
    @WebServlet("/AddServlet")
    public class AddServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        
        userservice service = new userservice();    
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("utf-8");
            String method = req.getParameter("method");
            if("add".equals(method))
             doGet(req,resp);
        
        }
        
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
             request.setCharacterEncoding("utf-8");
                //获取数据
                String id = request.getParameter("id");
                String password = request.getParameter("password");
                String sex = request.getParameter("sex");
                String number = request.getParameter("number");
                String name = request.getParameter("name");
                String mail = request.getParameter("mail");
                String xueyuan = request.getParameter("xueyuan");    
                String xi = request.getParameter("xi");
                String banji = request.getParameter("banji");
                String nian = request.getParameter("nian");
                String shengyuandi = request.getParameter("shengyuandi");
                String beizhu = request.getParameter("beizhu");
                user user = new user(id,password,sex,number,name,mail,xueyuan,xi,banji,nian,shengyuandi,beizhu);
                 System.out.println(id);
                //添加后消息显示
                if(service.add(user)) {
                    request.setAttribute("message", "添加成功");
                    request.getRequestDispatcher("NewFile.jsp").forward(request,response);
                } else {
                    request.setAttribute("message", "用户名重复,请重新录入");
                    request.getRequestDispatcher("NewFile.jsp").forward(request,response);
                }
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            doGet(request, response);
        }
    
    }
    package com.util;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    /*
     * 数据库连接工具
     */
    public class DBUtil {
         
        public static String db_url = "jdbc:mysql://localhost:3306/user?useSSL=false";
        public static String db_user = "root";
        public static String db_pass = "root";
         
        public static Connection getConn () {
            Connection conn = null;
             
            try {
                Class.forName("com.mysql.jdbc.Driver");//加载驱动
                conn = DriverManager.getConnection(db_url, db_user, db_pass);
            } catch (Exception e) {
                e.printStackTrace();
            }
             
            return conn;
        }
         
        /*10关闭连接*/
        public static void close (Statement state, Connection conn) {
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
             
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
         
        public static void close (ResultSet rs, Statement state, Connection conn) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
             
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
             
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
     
        public static void main(String[] args) throws SQLException {
            Connection conn = getConn();
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            String sql ="select * from user";
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            if(rs.next()){
                System.out.println("空");
            }else{
                System.out.println("不空");
            }
        }
    }

    三、建立jsp文件,在lib中导入需要的jdbc。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Insert title here</title>
    <meta charset="UTF-8">
        <title>注册页面</title>
    </head>
    <body>
        <%
             Object message = request.getAttribute("message");
             if(message!=null && !"".equals(message)){
         
        %>
             <script type="text/javascript">
                  alert("<%=request.getAttribute("message")%>");
             </script>
        <%} %>
        <div align="center">
            <h6 style="color: black;">注册</h6>
         
            <form name = "form1" action="AddServlet?method=add" method="post" onsubmit="return check_submit()">
        <table>
                <tr>
                    <td>登陆账号:</td>
                    <td colspan="2"> <input type="text" id="id" name="id"  maxlength="12" onblur="blur_id()" onfocus="focus_id()"/></td>
                    <td width="300"><div id="result"></td>
                </tr>
                <tr>
                    <td>登陆密码:</td>
                    <td colspan="2"> <input type="password" id="password" name="password" onblur="blur_pass()" onfocus="focus_pass()" /></td>
                    <td width="300"><div id="result1"></td>
                </tr>
                <tr>
                    <td>性别:</td>
                    <td colspan="2"><input type="radio" id="sex" name="sex" value="男"><input type="radio" id="sex"name="sex" value="女">女</td>
                </tr>
                <tr>
                    <td>学号:</td>
                    <td colspan="2"><input type="number" id="number" name="number" onblur="blur_num()" onfocus="focus_num()" /></td>
                     <td width="300"><div id="result2"></td>
                </tr>
                <tr>
                    <td>姓名:</td>
                    <td colspan="2"><input type="text" id="name" name="name" onblur="blur_name()" onfocus="focus_name()" /></td>
                    <td width="300"><div id="result4"></td>
                </tr>
                <tr>
                    <td>电子邮箱:</td>
                    <td colspan="2"><input type="email" id="mail" name="mail" onblur="blur_mail()" onfocus="focus_mail()" /></td>
                    <td width="300"><div id="result3"></td>
                </tr>
                <tr>
                    <td>所在学院:</td>
                    <td colspan="2"><input type="text" id="xueyuan" name="xueyuan" onblur="blur_xueyuan()" onfocus="focus_xueyuan()" /></td>
                    <td width="300"><div id="result5"></td>
                </tr>
                <tr>
                    <td>所在系:</td>
                    <td colspan="2"><input type="text" id="xi" name="xi" onblur="blur_xi()" onfocus="focus_xi()" /></td>
                    <td width="300"><div id="result6"></td>
                </tr>
                <tr>
                    <td>所在班级:</td>
                    <td colspan="2"><input type="text" id="banji" name="banji"  onblur="blur_banji()" onfocus="focus_banji()"/></td>
                    <td width="300"><div id="result7"></td>
                </tr>
                <tr>
                    <td>入学年份(届):</td>
                    <td colspan="2">
                    <select name="nian" id="nian">
                    <option value="2019" >2019</option>
                    <option value="2018" >2018</option>
                    <option value="2017" >2017</option>
                    <option value="2016" >2016</option>
                    <option value="2015" >2015</option>
                    <option value="2014" >2014</option>
                    </select>届</td>
                </tr>
                <tr>
                    <td>生源地:</td>
                    <td colspan="2"><input type="text" id="shengyuandi" name="shengyuandi"  onblur="blur_shengyuandi()" onfocus="focus_shengyuandi()"/></td>
                    <td width="300"><div id="result8"></td>
                </tr>
                <tr>
                    <td>备注:</td>
                    <td colspan="2"><input type="text" id="beizhu" name="beizhu" onblur="blur_beizhu()" onfocus="focus_beizhu()" /></td>
                    <td width="300"><div id="result9"></td>
                </tr>
                <tr>
                <td colspan="3"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button type="submit" class="b">添加</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                 </td>
                
                </tr>
        </table>
        </form>
        </div>
        <script type="text/javascript">
    /*
        表单验证
    */
    var flag = false;   // flag 如果为true(即用户名合法)就允许表单提交, 如果为false(即用户名不合法)阻止提交
    function focus_pass()
    {
        var nameObj = document.getElementById("result1");
        nameObj.innerHTML = "由八位以上字符和数字组成";
        nameObj.style.color="#999";
        }
    function blur_pass()
    {
        var nameObj = document.getElementById("result1");
        // 判断用户名是否合法
        var str2 = check_user_pass(document.form1.password.value);
        nameObj.style.color="red";
        if ("密码合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    
    function check_user_pass(str)
    {  var str2 = "密码合法";
    if ("" == str)
    {
        str2 = "密码为空";
        return str2;
    }
    else if (str.length<8)
    {
        str2 = "密码应是八位以上组成";
        return str2;
    }
    else if (!check_word(str))
    {
        str2 = "未含有英文字符";
        return str2;
    }
    
    return str2;
        
        
        }
    
    function focus_num()
    {
        var nameObj = document.getElementById("result2");
        nameObj.innerHTML = "由八位数字组成,由“2018”开头";
        nameObj.style.color="#999";
    }
    function blur_num()
    {
        var nameObj = document.getElementById("result2");
        // 判断用户名是否合法
        var str2 = check_user_number(document.form1.number.value);
        nameObj.style.color="red";
        if ("学号合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_number(str)
    {
        var str2 = "学号合法";
        if ("" == str)
        {
            str2 = "学号为空";
            return str2;
        }
        else if (str.length!=8)
        {
            str2 = "学号应是八位组成";
            return str2;
        }
        else if(!check_firstnum(str))
        {
            str2 = "必须以“2018”开头";
            return str2;
        }
        return str2;
    }
        
        
        
    function focus_beizhu()
    {
        var nameObj = document.getElementById("result9");
        nameObj.style.color="#999";
    }
    function blur_beizhu()
    {
        var nameObj = document.getElementById("result9");
        // 判断用户名是否合法
        var str2 = check_user_beizhu(document.form1.beizhu.value);
        nameObj.style.color="red";
        if ("备注合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_beizhu(str)
    {
        var str2 = "备注合法";
        if ("" == str)
        {
            str2 = "备注为空";
            return str2;
        }
        return str2;
    }
    
    
    
    
    
    function focus_shengyuandi()
    {
        var nameObj = document.getElementById("result8");
        nameObj.style.color="#999";
    }
    function blur_shengyuandi()
    {
        var nameObj = document.getElementById("result8");
        // 判断用户名是否合法
        var str2 = check_user_shengyuandi(document.form1.shengyuandi.value);
        nameObj.style.color="red";
        if ("生源地合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_shengyuandi(str)
    {
        var str2 = "生源地合法";
        if ("" == str)
        {
            str2 = "生源地为空";
            return str2;
        }
        return str2;
    }
    
    
    
    
    
    function focus_banji()
    {
        var nameObj = document.getElementById("result7");
        nameObj.style.color="#999";
    }
    function blur_banji()
    {
        var nameObj = document.getElementById("result7");
        // 判断用户名是否合法
        var str2 = check_user_banji(document.form1.banji.value);
        nameObj.style.color="red";
        if ("班级合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_banji(str)
    {
        var str2 = "班级合法";
        if ("" == str)
        {
            str2 = "班级为空";
            return str2;
        }
        return str2;
    }
    
    
    
    function focus_xi()
    {
        var nameObj = document.getElementById("result6");
        nameObj.style.color="#999";
    }
    function blur_xi()
    {
        var nameObj = document.getElementById("result6");
        // 判断用户名是否合法
        var str2 = check_user_xi(document.form1.xi.value);
        nameObj.style.color="red";
        if ("系名合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_xi(str)
    {
        var str2 = "系名合法";
        if ("" == str)
        {
            str2 = "系名为空";
            return str2;
        }
        return str2;
    }
    
    
    
    
    
    function focus_xueyuan()
    {
        var nameObj = document.getElementById("result5");
        nameObj.style.color="#999";
    }
    function blur_xueyuan()
    {
        var nameObj = document.getElementById("result5");
        // 判断用户名是否合法
        var str2 = check_user_xueyuan(document.form1.xueyuan.value);
        nameObj.style.color="red";
        if ("学院名合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_xueyuan(str)
    {
        var str2 = "学院名合法";
        if ("" == str)
        {
            str2 = "学院名为空";
            return str2;
        }
        return str2;
    }
    
    
    
    function focus_name()
    {
        var nameObj = document.getElementById("result4");
        nameObj.style.color="#999";
    }
    function blur_name()
    {
        var nameObj = document.getElementById("result4");
        // 判断用户名是否合法
        var str2 = check_user_name(document.form1.name.value);
        nameObj.style.color="red";
        if ("姓名合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_name(str)
    {
        var str2 = "姓名合法";
        if ("" == str)
        {
            str2 = "姓名为空";
            return str2;
        }
        return str2;
    }
    
    
    
    
    function focus_mail()
    {
        var nameObj = document.getElementById("result3");
        nameObj.innerHTML = "格式要求:xxxx@xxxx.xxxx";
        nameObj.style.color="#999";
    }
    function blur_mail()
    {
        var nameObj = document.getElementById("result3");
        // 判断用户名是否合法
        var str2 = check_user_mail(document.form1.mail.value);
        nameObj.style.color="red";
        if ("邮箱合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    function check_user_mail(str)
    {
        var str2 = "邮箱合法";
        var regex = /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/;
        if ("" == str)
        {
            str2 = "邮箱为空";
            return str2;
        }
        else if(!regex.test(str))
        {
            str2 = "邮箱格式错误";
            return str2;
        }
        return str2;
    }    
        
        
    function focus_id()
    {
        var nameObj = document.getElementById("result");
        nameObj.innerHTML = "由六到十二英文字符和数字组成";
        nameObj.style.color="#999";
        }
    function blur_id()
    {
        var nameObj = document.getElementById("result");
        // 判断用户名是否合法
        var str2 = check_user_id(document.form1.id.value);
        nameObj.style.color="red";
        if ("账号合法" ==  str2)
        {
            flag = true;
            nameObj.innerHTML = str2;
        }
        else
        {
            nameObj.innerHTML = str2;
        }
    }
    
    function check_user_id(str)
    {
        var str2 = "账号合法";
        if ("" == str)
        {
            str2 = "账号为空";
            return str2;
        }
        else if ((str.length<=4)||(str.length>=12))
        {
            str2 = "账号应是六到十二位组成";
            return str2;
        }
        else if (!check_word(str))
        {
            str2 = "未含有英文字符";
            return str2;
        }
        else if(!check_firstword(str))
        {
            str2 = "必须以英文字母开头";
            return str2;
        }
        return str2;
    }
    
    function check_firstnum(str)
    {
        var arr = ["2","0","1","8"];
        if((arr[0] == str.charAt(0))&&
           (arr[1] == str.charAt(1))&&
           (arr[2] == str.charAt(2))&&
           (arr[3] == str.charAt(3)))
            {
                return true;
            }
        else
            {
                return false;
            }
        }
        
        
    function check_firstword(str)
    {   var arr = ["a", "b", "c", "d", "e", "f", "g", "h","i","j", "k", "l", "m", "n", "o", "p", "q","r", "s", "t", "u", "v", "w", "x", "y","z","A", "B", "C", "D", "E", "F", "G", "H","I","J", "K", "L", "M", "N", "O", "P", "Q","R","S", "T", "U", "V", "W", "X", "Y", "Z"];
    for (var i = 0; i < arr.length; i++)
    {
            if (arr[i] == str.charAt(0))
            {
                return true;
            }
    }   
    return false;
        }
    
    
    function check_word(str)
    {   var arr = ["a", "b", "c", "d", "e", "f", "g", "h","i","j", "k", "l", "m", "n", "o", "p", "q","r", "s", "t", "u", "v", "w", "x", "y","z","A", "B", "C", "D", "E", "F", "G", "H","I","J", "K", "L", "M", "N", "O", "P", "Q","R","S", "T", "U", "V", "W", "X", "Y", "Z"];
    for (var i = 0; i < arr.length; i++)
    {
        for (var j = 0; j < str.length; j++)
        {
            if (arr[i] == str.charAt(j))
            {
                return true;
            }
        }
    }   
    return false;
        }
    
    // 验证用户名是否含有特殊字符
    function check_other_char(str)
    {
        var arr = ["&", "\", "/", "*", ">", "<", "@", "!"];
        for (var i = 0; i < arr.length; i++)
        {
            for (var j = 0; j < str.length; j++)
            {
                if (arr[i] == str.charAt(j))
                {
                    return true;
                }
            }
        }   
        return false;
    }
    // 根据验证结果确认是否提交
    function check_submit()
    {
        if (flag == false)
        {
            return false;
        }
        return true;
    }
    </script>
    </head>
    </body>
    </html>

    四、在Navicat中建立相应的表。

    完成。

  • 相关阅读:
    [ Algorithm ] N次方算法 N Square 动态规划解决
    [ Algorithm ] LCS 算法 动态规划解决
    sql server全文索引使用中的小坑
    关于join时显示no join predicate的那点事
    使用scvmm 2012的动态优化管理群集资源
    附加数据库后无法创建发布,error 2812 解决
    浅谈Virtual Machine Manager(SCVMM 2012) cluster 过载状态检测算法
    windows 2012 r2下安装sharepoint 2013错误解决
    sql server 2012 数据引擎任务调度算法解析(下)
    sql server 2012 数据引擎任务调度算法解析(上)
  • 原文地址:https://www.cnblogs.com/zql-42/p/11716819.html
Copyright © 2011-2022 走看看