当前位置: 首页 > news >正文

网站后台上传不了文件seo哪家好

网站后台上传不了文件,seo哪家好,做网站的专业叫什么软件,新手怎么做网站优化反射 反射API 获取Class对象的方式:1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象2. 类名.class:通过类名的属性class获取3. 对象.getClass():getClass()方法在Object类中定义着。pack…

反射

反射API

 获取Class对象的方式:1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象2. 类名.class:通过类名的属性class获取3. 对象.getClass():getClass()方法在Object类中定义着。
package cn.itcast.reflect;import cn.itcast.domain.Person;import java.lang.reflect.Constructor;
import java.lang.reflect.Method;public class ReflectDemo4 {/**Class对象功能:* 获取功能:1. 获取成员变量们* Field[] getFields()* Field getField(String name)* Field[] getDeclaredFields()* Field getDeclaredField(String name)2. 获取构造方法们* Constructor<?>[] getConstructors()* Constructor<T> getConstructor(类<?>... parameterTypes)* Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)* Constructor<?>[] getDeclaredConstructors()3. 获取成员方法们:* Method[] getMethods()* Method getMethod(String name, 类<?>... parameterTypes)* Method[] getDeclaredMethods()* Method getDeclaredMethod(String name, 类<?>... parameterTypes)4. 获取类名* String getName()*/public static void main(String[] args) throws Exception {//0.获取Person的Class对象Class personClass = Person.class;/*3. 获取成员方法们:* Method[] getMethods()* Method getMethod(String name, 类<?>... parameterTypes)* Method[] getDeclaredMethods()* Method getDeclaredMethod(String name, 类<?>... parameterTypes)*///获取指定名称的方法Method eat_method = personClass.getMethod("eat");Person p = new Person();//执行方法eat_method.invoke(p);Method eat_method2 = personClass.getMethod("eat", String.class);//执行方法eat_method2.invoke(p,"饭");System.out.println("-----------------");//获取所有public修饰的方法Method[] methods = personClass.getMethods();for (Method method : methods) {System.out.println(method);String name = method.getName();System.out.println(name);//method.setAccessible(true);}//获取类名String className = personClass.getName();System.out.println(className);//cn.itcast.domain.Person}}
package fx.data;import org.junit.Test;import java.lang.reflect.*;
import java.util.Arrays;public class OtherTest {//    获得泛型父类@Testpublic void test1() throws ClassNotFoundException {Class<?> clazz = Class.forName("fx.data.Person");
//        获得父类Type type = clazz.getGenericSuperclass();System.out.println(type);}//    获得父类@org.junit.Testpublic void test2() throws ClassNotFoundException {
//        可以获取:包、修饰符、类型名、父类(包括泛型父类)、父接口(包括泛型父接口)、成员(属性、构造器、方法)、注解(类上的、方法上的、属性上的)。//        Class<Person> clazz = Person.class;Class<?> clazz = Class.forName("fx.data.Person");
//        获得父类Class<?> superclass = clazz.getSuperclass();System.out.println(superclass);}//    获得接口@Testpublic void test3() throws ClassNotFoundException {Class<?> clazz = Class.forName("fx.data.Person");Class<?>[] inter = clazz.getInterfaces();System.out.println(Arrays.toString(inter));for (Class o : inter) {System.out.println(o);}}//    获得接口@Testpublic void test4() throws ClassNotFoundException {Class<?> aClass = Class.forName("fx.data.Person");Package aPackage = aClass.getPackage();
//        System.out.println(aPackage);Type genericSuperclass = aClass.getGenericSuperclass();System.out.println(genericSuperclass);ParameterizedType genericSuperclass1 = (ParameterizedType) genericSuperclass;
//        System.out.println(genericSuperclass1);Type[] actualTypeArguments = genericSuperclass1.getActualTypeArguments();System.out.println(((Class) actualTypeArguments[0]).getName());}//    public int age = 1;@Testpublic void test5() throws ClassNotFoundException, NoSuchFieldException, InstantiationException, IllegalAccessException {Class<?> aClass = Class.forName("fx.data.Person");Object o = aClass.newInstance();Field age = aClass.getField("age");age.set(o, 2);Object o1 = age.get(o);System.out.println(o1);}//    private String name;@Testpublic void test6() throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException {Class<?> aClass = Class.forName("fx.data.Person");Object o = aClass.newInstance();Field name = aClass.getDeclaredField("name");
//        获取此属性是可以访问name.setAccessible(true);
//        获得权限后可以使用set()修改值和get()获取值name.set(o, "lqc");System.out.println(name.get(o));//PS:私有属性:替换为getDeclaredField方法,增加setAccessible方法}//    private static String info;@Testpublic void test7() throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException {Class<?> aClass = Class.forName("fx.data.Person");
//        Object o = aClass.newInstance();Field infoFile = aClass.getDeclaredField("info");infoFile.setAccessible(true);//        类变量可以使用nullinfoFile.set(null, "13");
//        infoFile.set(aClass, "13");
//        获得权限后可以使用set()修改值和get()获取值System.out.println(infoFile.get(null));
//        System.out.println(infoFile.get(aClass));//PS:私有属性:替换为getDeclaredField方法,增加setAccessible方法}//    调用制定的方法
//private String showNation(String nation, int age)
//@Testpublic void test8() throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {Class clazz = Class.forName("fx.data.Person");Object o = clazz.newInstance();
//        o.getClass(clazz,String.class,int.class);//方法先找到方法.属性也是一样的. Field name = aClass.getDeclaredField("name");Method showNation = clazz.getDeclaredMethod("showNation", String.class, int.class);
//        设置可以访问showNation.setAccessible(true);//之后就可以调用了.infoFile.set(null, "13");System.out.println(showNation.invoke(o, "lqc", 22));}//    public static void showInfo()@Testpublic void test9() throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {Class clazz = Class.forName("fx.data.Person");Method showNation = clazz.getDeclaredMethod("showInfo");System.out.println(showNation.invoke(clazz));}//        private Person(String name, int age)@Testpublic void test10() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {Class clazz = Class.forName("fx.data.Person");
//        找到Constructor declaredConstructor = clazz.getDeclaredConstructor(String.class, int.class);declaredConstructor.setAccessible(true);
//        调用Object o = declaredConstructor.newInstance("lqc",22 );System.out.println(o);}
}

反射调用全部方法属性构造器

指定属性和方法和构造器.

JDBC代码

package com.atguigu.api.Statement;import java.sql.*;
import java.util.Scanner;public class StatementLogin {public static void main(String[] args) throws Exception {Scanner name = new Scanner(System.in);System.out.println("输入账号");String account = name.nextLine();System.out.println("输入密码");String password = name.nextLine();//        System.out.println(n + "  " + p);String driver = "com.mysql.cj.jdbc.Driver";Class.forName(driver);
//        Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");Statement statement = connection.createStatement();
//        String mysql = "'select * from t_user where account='"+name+"'and password='+'password;'";
//        String sql = "select * from t_user where account ="+account+" and PASSWORD = "+password+";";String sql = "select * from t_user where account = '" + account + "' and password = ' " + password + "' ;";
//        如果* 是查询有别名就用别名
/*
* todo:密码填入     ' or '1'='1   出现了第三个逻辑判断,影响了判断导致结果是true.导致所有数据泄漏出来     是注入攻击
*       这就是静态SQL,没有动态值语句
*
* *///        DQL(查询方法) DML(增加删除修改)//        DML使用这个返回影响了多少行,例如修改了多少行等等
//        int i = statement.executeUpdate(sql);
//        DQL使用这个ResultSet resultSet = statement.executeQuery(sql);
//        将查询的结果返回一个resultSet对象,内部也是有行和列的.System.out.println(resultSet);//resultSet里面查询出来的数据也是有行有列,有游标.next()可以判断下一行是否存在之后到下一行.默认游标在第一行前面.
// next()方法在判断有无下一行之后游标可以往后一行.while (resultSet.next()) {
//            resultSet.get列名类型("列名")int id = resultSet.getInt("id");String account1 = resultSet.getString("account");String password1 = resultSet.getString("password");String nickname = resultSet.getString("nickname");System.out.println(id + "-" + account1 + "-" + password1 + "-" + nickname);}/** TODO:单行数据就用if,多行就用while*** */
        if(resultSet.next()){
//            System.out.println("success");
//        }else{
//            System.out.println("fail");
//        }}
}
package com.atguigu.api.Statement;import com.mysql.cj.jdbc.Driver;import java.sql.*;
import java.util.Properties;public class StatementQuery {/** TODO:*** */public static void main(String[] args) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
//        依赖导入只需要一次.//        1.注册驱动还有反射好处//        方案一:DriverManager.registerDriver(new Driver());
//        这个会注册两次驱动,所以只需要new Driver().里面会触发代码块.DriverManager.registerDriver(new Driver());
//      方案二:  new Driver();代码写死了
//        方案三:String driver = "com.mysql.cj.jdbc.Driver";Class.forName(driver);
//        如果我们使用orlce数据库,new OracleDriver()就要修改我们的代码,重新更新我们的服务器.
//        需要我们的修改代码.使用放射的话,我们把类名字放到我们的数据文件里面.需要的使用进行更改文件就不需要更改代码类名了
//        可以看出放射的好处了.修改名字就能加载类/** Todo:类加载机制:*      加载[class文件-->class对象]*      链接[验证(检查文件类型)-->准备(静态代码块默认赋值)-->解析(触发静态代码块)]*      初始化[(静态属性值赋真实值)]*       类加载机制使用    1.反射  2.new 关键字  3.调用静态属性值  4.调用静态方法  5.子类触发父类   6.程序main方法.* */
//
//        2.链接数据库/*TODO:就像navcat链接数据库链接服务器一样,java程序也是这样的,也是需要ip端口,账号密码链接数据库名字String url:*       数据库驱动及其软件*       url:咯擦了红石头|127.0.0.1*      端口号*      数据库表名字*      账号*      密码* *///这个是三个参数的写法
//        Connection root = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu", "root", "");//        还有两个参数的写法链接数据库
//        Properties info=new Properties();
//        info.put("user","root");
//        info.put("password","");
//        Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu", info);//        还有一种的写法,加上jdbc:mysql://127.0.0.1:3306/atguigu?key=value&key=value;  多了?key=value&key=valueConnection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");//
//        3.创建statement,statement可以发送sql语句到数据库Statement statement = connection.createStatement();
//        4.写sql,运输开车过去数据库,返回结果,String mysql = "select * from t_user;";ResultSet resultSet = statement.executeQuery(mysql);System.out.println(resultSet);
//        看看下一行还有没有数据
//        5.解析结果while (resultSet.next()) {int id = resultSet.getInt("id");String account = resultSet.getString("account");String password = resultSet.getString("PASSWORD");String nickname = resultSet.getString("nickname");System.out.println(id + " " + account + " " + password + " " + nickname);}
//        6.关闭资源statement.close();connection.close();resultSet.close();}
}

prepareStatement

package com.atguigu.prepadred;import com.mysql.cj.jdbc.Driver;import java.sql.*;
import java.util.Scanner;/** 使用预编译statement完成登陆,解决了注入攻击和String拼装问题** */
public class PSUserLoginpart {public static void main(String[] args) throws ClassNotFoundException, Exception {Scanner name = new Scanner(System.in);System.out.println("输入账号");String account = name.nextLine();System.out.println("输入密码");String password = name.nextLine();
//new Driver();Class.forName("com.mysql.cj.jdbc.Driver");
//        会调用类的静态方法Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");
//预编译prepareStatement,用于创建可以运行参数化SQL查询的预编译的声明对象。String mysql = "select * from t_user where account=? and password=?;";PreparedStatement preparedStatement = connection.prepareStatement(mysql);//        单独的占位符进行赋值,index从1开始 ,preparedStatement.setObject(1, account);preparedStatement.setObject(2, password);ResultSet resultSet = preparedStatement.executeQuery();if (resultSet.next()) {System.out.println("登录成功");} else {System.out.println("登录失败");}connection.close();resultSet.close();preparedStatement.close();}
}
package com.atguigu.prepadred;import org.junit.Test;import java.sql.*;
import java.util.*;public class PSCURDpart {@Testpublic void testInsert() throws Exception {
//        写一个javaClass.forName("com.mysql.cj.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");String sql = "INSERT INTO t_user(account,password,nickname) value(?,?,?);";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setObject(1, "lqc");preparedStatement.setObject(2, "123456");preparedStatement.setObject(3, "BOSS");
//        DML语言int row = preparedStatement.executeUpdate();System.out.println(row);if (row >= 1) {System.out.println("插入成功");} else {System.out.println("插入失败");}}@Testpublic void testSelect() throws Exception {//new Driver();Class.forName("com.mysql.cj.jdbc.Driver");
//        会调用类的静态方法Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");
//预编译prepareStatement,用于创建可以运行参数化SQL查询的预编译的声明对象。String mysql = "select * from t_user;";PreparedStatement preparedStatement = connection.prepareStatement(mysql);ResultSet resultSet = preparedStatement.executeQuery();List<Map> list = new ArrayList<>();//            2.装的是列的结果集合ResultSetMetaData metaData = resultSet.getMetaData();System.out.println(metaData);int columnCount = metaData.getColumnCount();//列的数量while (resultSet.next()) {
//Map map = new HashMap();for (int i = 1; i <= columnCount; i++) {Object value = resultSet.getObject(i);String key = metaData.getColumnLabel(i);map.put(key,value);}list.add(map);}System.out.println(list);connection.close();resultSet.close();preparedStatement.close();}
}
package com.atguigu.prepadred;import java.sql.*;public class PSother {public static void main(String[] args) throws Exception {
//        new PSother().returnPrimaryKey();new PSother().Batch();}//主键回显public void returnPrimaryKey() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");
//        会调用类的静态方法Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?user=root&password=");
//预编译prepareStatement,用于创建可以运行参数化SQL查询的预编译的声明对象。String mysql = "INSERT INTO t_user (account, password,nickname) values (?,?,?);";PreparedStatement preparedStatement = connection.prepareStatement(mysql, Statement.RETURN_GENERATED_KEYS);for (int i = 10; i < 10010; i++) {preparedStatement.setObject(1, "test" + i);preparedStatement.setObject(2, "123546" + i);preparedStatement.setObject(3, "管理员" + i);}int rows = preparedStatement.executeUpdate();if (rows > 0) {System.out.println("插入成功");
//            一行一列的结果集对象,     id = 值ResultSet generatedKeys = preparedStatement.getGeneratedKeys();generatedKeys.next();int anInt = generatedKeys.getInt(1);System.out.println(anInt);}
//获取列的话是:statement.getObject(column);}//批量插入/*todo:* 批量细节:*    1.url?rewriteBatchedStatements=true*    2.insert 语句必须使用 values*    3.语句后面不能添加分号;        String mysql = "INSERT INTO t_user (account, password,nickname) values (?,?,?)"    sql没有分号结束*    4.语句不能直接执行,每次需要装货  addBatch() 最后 executeBatch();*/public void Batch() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");
//加入rewriteBatchedStatements=trueConnection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atguigu?rewriteBatchedStatements=true", "root", "");
//        jdbc可以这样INSERT INTO t_user (account, password,nickname) values (?,?,?),(),(),(),();String mysql = "INSERT INTO t_user (account, password,nickname) values (?,?,?)";PreparedStatement preparedStatement = connection.prepareStatement(mysql, Statement.RETURN_GENERATED_KEYS);long star = System.currentTimeMillis();for (int i = 1; i < 10000; i++) {preparedStatement.setObject(1, "testt" + i);preparedStatement.setObject(2, "op" + i);preparedStatement.setObject(3, "管理员" + i);preparedStatement.addBatch();//把()添加到sql后面}preparedStatement.executeBatch();//执行添加后的语句long end = System.currentTimeMillis();System.out.println(end - star + "ms");preparedStatement.close();connection.close();}}

Druid的软链接和硬链接

package com.atguigu.Druid;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.alibaba.druid.pool.DruidPooledConnection;
import org.junit.Test;import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;public class DruidUserpart {//    使用代码来设置连接池public void testHard() throws SQLException {DruidDataSource druidDataSource = new DruidDataSource();
//        设置参数/** todo:必须设置的参数*  1.把驱动交给连接池*  2.url|user|password** */druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/atguigu");druidDataSource.setUsername("root");druidDataSource.setPassword("");/** todo:非必须设置的参数*  1.连接池初始化数量*  2.连接池最大数量* */druidDataSource.setInitialSize(5);druidDataSource.setMaxActive(10);
//        把连接池的连接拿出来DruidPooledConnection connection = druidDataSource.getConnection();connection.close();//连接池提供的,close就是回收连接.}@Testpublic void testSoft() throws Exception {Properties properties = new Properties();InputStream resourceAsStream = DruidUserpart.class.getClassLoader().getResourceAsStream("druid.properties");properties.load(resourceAsStream);//        创建连接池之后   DruidDataSource druidDataSource = new DruidDataSource();  之后配置.DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);Connection connection = dataSource.getConnection();
//        curd操作//connection.close();}}

druid.properties是配置文件

测试用例

0

@Deprecated表示已经弃用

1

元注解就是:注解的注解,相当于是注解的说明
元注解  还有下面代码组成的
public class MyannoTest {}
  • 注解的本质就是一个接口.继承了接口类
  • 在注解中,返回类型很多.也可以设置default
package cn.itcast.day1;public @interface MyAno {//    属性是全局静态属性//    方法是抽象方法//    但是抽象方法在注解是属性int age();String show2() default "mm";Person per();
//    Myanno no();String[] str();
}

下面是测试类

package cn.itcast.day1;@Myanno("12")
//数组只有一个的时候可以不写大括号
@MyAno(age = 1, show2 = "lqc", per = Person.p2, str = {"abc"})
public class MyannoTest {}

2.

@Myanno("12")

这种情况绝对注解的属性值只有一个而且有属性为value.

3.元注解

@Target 注解可以作用的位置
@Retention 注解的存在时间
@Inherited 注解在父类的时候注解可以被子类继承

package cn.itcast.day1;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})
//ElementType.TYPE表示作用与类接口枚举,不能用在方法和属性
//ElementType.FIELD,作用在属性
//ElementType.METHOD作用在方法@Retention(RetentionPolicy.RUNTIME)
//表示当前描述的注解可以再class之中,并且被jvm运行@Retention(RetentionPolicy.CLASS)
//表示当前描述的注解可以再class之中,不会被jvm运行@Retention(RetentionPolicy.SOURCE)
//不会在class和jvm中
@Inherited
public @interface Myanno3 {}

注解的作用

package cn.itcast.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Pro {String className();String methodName();}
package cn.itcast.annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
//通过注解
@Pro(className = "cn.itcast.annotation.Demo1", methodName = "show")
public class ReflectTest {public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
//        1.获取ReflectTest的class文件Class<ReflectTest> demo1Class = ReflectTest.class;Pro annotation = demo1Class.getAnnotation(Pro.class);
//        这里的className()是一个方法,虽然名字叫属性,其实是方法String className = annotation.className();String methodName = annotation.methodName();System.out.println(className + "" + methodName);Class<?> aClass = Class.forName(className);Object o = aClass.newInstance();Method show = aClass.getMethod("show");show.invoke(o);}
}

反射应用,写一个简单的测试框架

package cn.itcast.annotation;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.Buffer;
import java.util.Arrays;public class CalculatorTest {public static void main(String[] args) throws IOException, InvocationTargetException, IllegalAccessException {CalculatorDemo calculatorDemo = new CalculatorDemo();Class aClass = calculatorDemo.getClass();Method[] declaredMethods = aClass.getMethods();BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("bug.txt",true));//        System.out.println(bufferedWriter==null);for (Method method : declaredMethods) {/** todo:心得:这个能否获取注解要看注解的存在时间的设置.!!!** */if (method.isAnnotationPresent(Check.class)) {try {method.invoke(calculatorDemo);} catch (Exception e) {System.out.println("error");bufferedWriter.write("123");// 新增以下两行代码bufferedWriter.newLine();bufferedWriter.flush();}}}}
}
package cn.itcast.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Check {
}

文章转载自:
http://accumbent.tkjh.cn
http://seabed.tkjh.cn
http://summarize.tkjh.cn
http://crystallizable.tkjh.cn
http://deproletarize.tkjh.cn
http://epistolical.tkjh.cn
http://catholicisation.tkjh.cn
http://aquosity.tkjh.cn
http://schlockmaster.tkjh.cn
http://cully.tkjh.cn
http://forlorn.tkjh.cn
http://caseworm.tkjh.cn
http://flied.tkjh.cn
http://casal.tkjh.cn
http://inched.tkjh.cn
http://unclutter.tkjh.cn
http://polltaker.tkjh.cn
http://teg.tkjh.cn
http://overcome.tkjh.cn
http://ifip.tkjh.cn
http://carbonation.tkjh.cn
http://aground.tkjh.cn
http://luxuriancy.tkjh.cn
http://dehydrogenize.tkjh.cn
http://eyeshot.tkjh.cn
http://ventricose.tkjh.cn
http://vouchee.tkjh.cn
http://elbrus.tkjh.cn
http://amish.tkjh.cn
http://audibility.tkjh.cn
http://foliolate.tkjh.cn
http://visionary.tkjh.cn
http://racialist.tkjh.cn
http://ringer.tkjh.cn
http://gapeseed.tkjh.cn
http://evasively.tkjh.cn
http://underlayment.tkjh.cn
http://bugong.tkjh.cn
http://woodenware.tkjh.cn
http://outvalue.tkjh.cn
http://charcoal.tkjh.cn
http://asu.tkjh.cn
http://rangey.tkjh.cn
http://copyholder.tkjh.cn
http://penstock.tkjh.cn
http://simulcast.tkjh.cn
http://assonance.tkjh.cn
http://ek.tkjh.cn
http://canthus.tkjh.cn
http://shutter.tkjh.cn
http://kelantan.tkjh.cn
http://prepared.tkjh.cn
http://ruckus.tkjh.cn
http://apra.tkjh.cn
http://howlet.tkjh.cn
http://advocation.tkjh.cn
http://acaleph.tkjh.cn
http://flippant.tkjh.cn
http://salic.tkjh.cn
http://sonderclass.tkjh.cn
http://unperfect.tkjh.cn
http://mille.tkjh.cn
http://helsingfors.tkjh.cn
http://nicer.tkjh.cn
http://fantasticality.tkjh.cn
http://buffo.tkjh.cn
http://shortite.tkjh.cn
http://octad.tkjh.cn
http://happi.tkjh.cn
http://nucleant.tkjh.cn
http://titular.tkjh.cn
http://rayleigh.tkjh.cn
http://swarthiness.tkjh.cn
http://yellowbelly.tkjh.cn
http://oink.tkjh.cn
http://madafu.tkjh.cn
http://passionate.tkjh.cn
http://innocent.tkjh.cn
http://interpersonal.tkjh.cn
http://protreptic.tkjh.cn
http://psychiatrist.tkjh.cn
http://ascaris.tkjh.cn
http://triskaidekaphobe.tkjh.cn
http://omg.tkjh.cn
http://garibaldist.tkjh.cn
http://supersensitive.tkjh.cn
http://woolgather.tkjh.cn
http://tartarly.tkjh.cn
http://teosinte.tkjh.cn
http://octane.tkjh.cn
http://facs.tkjh.cn
http://gingerbready.tkjh.cn
http://engobe.tkjh.cn
http://tableland.tkjh.cn
http://scorch.tkjh.cn
http://plainstones.tkjh.cn
http://disputable.tkjh.cn
http://quadrupedal.tkjh.cn
http://romola.tkjh.cn
http://psychrometer.tkjh.cn
http://www.hrbkazy.com/news/68801.html

相关文章:

  • 网站备案有什么要求吗广东seo网站推广
  • 做网站被骗没有居住证能不能告他百度百家号登录入口
  • 网站备案流程审核单站长工具域名查询社区
  • 织梦技术网站模版真人seo点击平台
  • 什么网站做问卷好灰色行业推广渠道
  • 网站链接锚点怎么做计算机培训机构
  • 西南交通建设集团有限公司网站天津网站优化
  • 注册型网站推广广告投放的方式有哪些
  • 深圳网络专科网站建设郑州网站建设七彩科技
  • 杭州哪家网站建设公司好点市场调研报告范文模板
  • 网站优化关键词怎么做seo排名赚app
  • 上海最新动态搜索引擎优化策略有哪些
  • 吴志祥最早做的网站是什么网站seo网络推广方法
  • 青海农业网站建设公司qq群引流推广平台
  • 天长做网站的网页开发用什么软件
  • 如何做公司网站优化公司网站如何制作设计
  • 成都做网站多少钱宁波网站建设公司哪家好
  • 网站策划书的基本内容桂林网站优化
  • 有哪些行业需要做网站建设和推广传统营销和网络营销的区别
  • 网站建设前期预算做公司网站的公司
  • 房产网站建设产品chrome下载
  • 东莞黄江做网站公司关键词推广系统
  • 男的怎么做直播网站厦门seo厦门起梦
  • 动易网站后台修改栏目的字重庆百度seo排名优化软件
  • 整站优化网站报价学电脑在哪里报名
  • 政府做网站要什么资质360优化大师官方网站
  • 史志网站建设电商运营培训课程有哪些
  • 电子商务网站怎么做数据库网站下载
  • 网站建设优秀公司沈阳网站seo公司
  • 怎么在企查查网站做企业认证宁波网络推广团队