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

如何做私彩网站/中国十大网络销售公司

如何做私彩网站,中国十大网络销售公司,搜索引擎优化技术有哪些,介绍家乡的网站设计策划书接口: 接口实现类: spring config xml文件: 调用文件类: 工厂静态方法实例: 工厂实例方法实例化: 工厂类: 文件: 测试类: set方式注入: p空间注入&#xff1…

 接口:

 接口实现类:

 spring config xml文件:

 调用文件类:

 

 

 

 工厂静态方法实例:

工厂实例方法实例化:

工厂类:

 文件:

测试类:

set方式注入: 

 p空间注入:

有参构造方法的方式进行依赖注入:

 

package Dao;public class User {private String name;private String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", address='" + address + '\'' +'}';}
}

package Impl;import Dao.User;
import Dao.UserDao;import java.util.List;
import java.util.Map;
import java.util.Properties;public class UserDaoImpl implements UserDao {private int age;private String name;private List<String> list;private Map<String, User> map;private Properties properties;public void setProperties(Properties properties) {this.properties = properties;}public void setList(List<String> list) {this.list = list;}public void setMap(Map<String, User> map) {this.map = map;}public void setAge(int age) {this.age = age;}public void setName(String name) {this.name = name;}@Overridepublic void save() {System.out.println(list);System.out.println(map);System.out.println(properties);System.out.println("save running...");}
}

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userDao" class="Impl.UserDaoImpl"><property name="list"><list><value>aaaa</value><value>bbbb</value><value>cccc</value></list></property><property name="map"  ><map><entry key="user1" value-ref="user1"></entry></map></property><property name="properties"><props><prop key="a1">qqqqq</prop><prop key="a2">wwwww</prop></props></property></bean><bean id="user1" class="Dao.User"><property name="name" value="玖" /><property name="address" value="上海" /></bean></beans>

 

 如果配置文件中有多个相同类型的对象时,使用第一个,反之用第二种

例如:

 getBean 方法,通过id ,获取文件中标签的内容,返回标签中class类型的数据

package Demo;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;import javax.sql.DataSource;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
import java.util.ResourceBundle;public class DataSourceTest {@Testpublic void test1() throws Exception {  //测试手动创建c3p0连接池ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();  //创建连接池Properties properties = new Properties();  //创建文件类对象String path = DataSourceTest.class.getClassLoader().getResource("druid.properties").getPath();  //获取文件对象properties.load(new FileReader(path));  //加载文件//加载mysql数据库comboPooledDataSource.setDriverClass(properties.getProperty("driver"));comboPooledDataSource.setJdbcUrl(properties.getProperty("url"));comboPooledDataSource.setUser(properties.getProperty("user"));comboPooledDataSource.setPassword(properties.getProperty("password"));Connection connection = comboPooledDataSource.getConnection();  //连接mysql数据库String sql = "select * from student";  //编写sql语句PreparedStatement preparedStatement = connection.prepareStatement(sql);  //创建sql对象ResultSet resultSet = preparedStatement.executeQuery();  //将获取到的值存储在resultset集合中while (resultSet.next()) {  //遍历打印System.out.println("编号:" + resultSet.getString("id") + "     姓名:" + resultSet.getString("name") + "     年龄:" + resultSet.getString("age") + "     员工号:" + resultSet.getString("region_id"));}connection.close();preparedStatement.close();}@Testpublic void test2() throws Exception {  //测试手动创建druid连接池DruidDataSource comboPooledDataSource = new DruidDataSource();ResourceBundle druid = ResourceBundle.getBundle("druid");  //读取配置文件//连接数据库信息comboPooledDataSource.setDriverClassName(druid.getString("driver"));comboPooledDataSource.setUrl(druid.getString("url"));comboPooledDataSource.setUsername(druid.getString("user"));comboPooledDataSource.setPassword(druid.getString("password"));DruidPooledConnection connection = comboPooledDataSource.getConnection();  //获取连接对象System.out.println(connection);connection.close();}@Testpublic void test3() throws Exception {  //测试Spring容器产生数据源对象ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");DataSource bean = classPathXmlApplicationContext.getBean(DataSource.class);Connection connection = bean.getConnection();String sql = "select * from student";  //编写sql语句PreparedStatement preparedStatement = connection.prepareStatement(sql);  //创建sql对象ResultSet resultSet = preparedStatement.executeQuery();  //将获取到的值存储在resultset集合中while (resultSet.next()) {  //遍历打印System.out.println("编号:" + resultSet.getString("id") + "     姓名:" + resultSet.getString("name") + "     年龄:" + resultSet.getString("age") + "     员工号:" + resultSet.getString("region_id"));}connection.close();preparedStatement.close();}
}

properties文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/gb1
user=root
password=123456

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
"><!--    加载外部的properties文件--><context:property-placeholder location="classpath:druid.properties"/><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${driver}"/><property name="jdbcUrl" value="${url}"/><property name="user" value="${user}"/><property name="password" value="${password}"/></bean></beans>

测试类:

 @Testpublic void test3() throws Exception {  //测试Spring容器产生数据源对象ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");DataSource bean = classPathXmlApplicationContext.getBean(DataSource.class);Connection connection = bean.getConnection();String sql = "select * from student";  //编写sql语句PreparedStatement preparedStatement = connection.prepareStatement(sql);  //创建sql对象ResultSet resultSet = preparedStatement.executeQuery();  //将获取到的值存储在resultset集合中while (resultSet.next()) {  //遍历打印System.out.println("编号:" + resultSet.getString("id") + "     姓名:" + resultSet.getString("name") + "     年龄:" + resultSet.getString("age") + "     员工号:" + resultSet.getString("region_id"));}connection.close();preparedStatement.close();}

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
"><!--    加载外部的properties文件到spring容器中--><context:property-placeholder location="classpath:druid.properties"/><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${driver}"/><property name="jdbcUrl" value="${url}"/><property name="user" value="${user}"/><property name="password" value="${password}"/></bean><context:component-scan base-package="Impl" />
<!--    遍历这个目录下的所有注释--></beans>

注解的简单使用类:

userDao类:

package Impl;import Dao.UserDao;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;//<bean name="userDao" class="Impl.UserDaoImpl"/>
//@Component("userDao")
@Repository("userDao")
public class UserDaoImpl implements UserDao {@Value("${driver}")  //寻找spring容器中的key为driver对应的值,将值注入给driver变量
private String driver;@Overridepublic void save() {System.out.println("save running...");System.out.println(driver);}
}

service类:

package Impl;import Dao.UserDao;
import Service.UserService;
import org.junit.jupiter.api.parallel.ResourceLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;//<bean id="userService" class="Impl.UserServiceImpl">
//@Component("userService")
@Service("userService")
public class UserServiceImpl implements UserService{//     <property name="userDao" ref="userDao" />@Autowired  //从spring容器中寻找userDao类型的数据,找到后进行注入@Qualifier("userDao")  //从spring容器中寻找userDa的id的bean数据private UserDao userDao;//    public void setUserDao(UserDao userDao) {
//        this.userDao = userDao;
//    }@Overridepublic void save() {userDao.save();}
}

配置类:

核心配置类:

package config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;@Configuration  //标志该类是Spring的核心配置类//<context:component-scan base-package="Impl" />
//<!--    遍历这个目录下的所有注释-->
@ComponentScan("Impl")//<!--    加载外部的properties文件到spring容器中-->
//<context:property-placeholder location="classpath:druid.properties"/>
@PropertySource("classpath:druid.properties")@Import({DataSourceConfiguration.class})  //导入类
public class SpringCofiguration {
}

配置类:

package config;import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;
import java.beans.PropertyVetoException;public class DataSourceConfiguration {//导入文件数据@Value("${driver}")private String driver;@Value("${url}")private String url;@Value("${user}")private String user;@Value("${password}")private String password;@Bean("dataSource")  //Spring会将当前方法的返回值以指定名称存储到Spring容器中public DataSource getDataSource() throws PropertyVetoException {ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass(driver);dataSource.setJdbcUrl(url);dataSource.setUser(user);dataSource.setPassword(password);return dataSource;}
}

测试类:

package Demo;import Service.UserService;
import config.SpringCofiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class UserController {public static void main(String[] args) {
//        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");  //获取文件ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringCofiguration.class);  //加载配置类UserService userService = applicationContext.getBean(UserService.class);userService.save();}
}

package Demo;import Service.UserService;
import config.SpringCofiguration;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.sql.DataSource;
import java.sql.SQLException;@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration("classpath:applicationContext.xml")
@ContextConfiguration(classes = {SpringCofiguration.class})public class SpringJunitTest {@Autowiredprivate UserService userService;@Autowiredprivate DataSource dataSource;@Testpublic void test1() throws SQLException {userService.save();System.out.println(dataSource.getConnection());}}
package config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;@Configuration  //标志该类是Spring的核心配置类//<context:component-scan base-package="Impl" />
//<!--    遍历这个目录下的所有注释-->
@ComponentScan("Impl")//<!--    加载外部的properties文件到spring容器中-->
//<context:property-placeholder location="classpath:druid.properties"/>
@PropertySource("classpath:druid.properties")@Import({DataSourceConfiguration.class})  //导入类public class SpringCofiguration {
}

自定义ContextLoaderListener

web.xml文件:

        注意:全局参数中文件名称报红,是正常现象,其实程序已经正常检测到文件

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>applicationContext.xml</param-value></context-param><!--  配置监听器--><listener><listener-class>listener.ContextLoadLister</listener-class></listener><servlet><servlet-name>UserServlet</servlet-name><servlet-class>web.UserServlet</servlet-class></servlet><servlet-mapping><servlet-name>UserServlet</servlet-name><url-pattern>/userservlet</url-pattern></servlet-mapping></web-app>

工具类:

        作用:当传递一个ServletContext 文本域对象时,返回app键对应的值

package listener;import org.springframework.context.ApplicationContext;import javax.servlet.ServletContext;public class WebApplicationContextUtils {public static ApplicationContext getWebApplicationContext(ServletContext servletContext){return (ApplicationContext) servletContext.getAttribute("app");}
}

监听类:

        作用:当创建服务器时,自动创建文本域对象以及文本域对象值

package listener;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class ContextLoadLister implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent servletContextEvent) {ServletContext servletContext = servletContextEvent.getServletContext();//读取web.xml中contextConfigLocation对应的全局参数String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");ApplicationContext app = new ClassPathXmlApplicationContext(contextConfigLocation);  //通过参数获取xml文件中的内容servletContext.setAttribute("app",app);}@Overridepublic void contextDestroyed(ServletContextEvent servletContextEvent) {}
}

appLicationContext.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
"><!--    加载外部的properties文件到spring容器中--><context:property-placeholder location="classpath:druid.properties"/><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${driver}"/><property name="jdbcUrl" value="${url}"/><property name="user" value="${user}"/><property name="password" value="${password}"/></bean><context:component-scan base-package="Impl" />
<!--    遍历这个目录下的所有注释--></beans>

服务器端:

package web;import Service.UserService;
import config.SpringCofiguration;
import listener.WebApplicationContextUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");  //获取文件ServletContext servletContext = this.getServletContext();  //获取文本域对象// ApplicationContext app = (ApplicationContext) servletContext.getAttribute("app");  //获取文本域中的app键对应的值ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);  //传递文本域对象,调用WebApplicationContextUtils工具类的方法UserService userService = app.getBean(UserService.class);userService.save();}
}

                使用spring自带的工具类和监听类

pom.xml配置

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_spring_web</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.9</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.9</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope></dependency></dependencies></project>

web.xml配置

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!--  配置监听器--><listener><listener-class>org.springframework.test.context.ContextConfiguration</listener-class></listener><servlet><servlet-name>UserServlet</servlet-name><servlet-class>web.UserServlet</servlet-class></servlet><servlet-mapping><servlet-name>UserServlet</servlet-name><url-pattern>/userservlet</url-pattern></servlet-mapping></web-app>

测试类:

package web;import Service.UserService;
import config.SpringCofiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");  //获取文件ServletContext servletContext = this.getServletContext();  //获取文本域对象// ApplicationContext app = (ApplicationContext) servletContext.getAttribute("app");  //获取文本域中的app键对应的值//ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);  //传递文本域对象,调用WebApplicationContextUtils工具类的方法WebApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);  //使用spring中自带的工具类和监听类UserService userService = app.getBean(UserService.class);userService.save();}
}

第一步:

pom.xml文件配置:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mave_spring_web_2</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.9</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.9</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.9</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope></dependency></dependencies></project>

第二步:

web.xml文件配置:

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><!--  配置SpringMVC的前端控制器--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

第三步:

创建类:

package ttt;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class UserController {@RequestMapping("/quick")public String save(){System.out.println("Controller save running...");return "success.jsp";}
}

success.jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>success!</h1>
</body>
</html>

第五步:

spring_mvc.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
"><!--    Controller的组件扫描--><context:component-scan base-package="ttt" /></beans>

效果图:

当访问类时,自动跳转到jsp页面

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
"><!--    Controller的组件扫描--><context:component-scan base-package="ttt" /><!--    配置内部资源视图解析器--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        /jsp/success.jsp--><property name="prefix" value="/jsp/" /><property name="suffix" value=".jsp" /></bean></beans>

 页面跳转的几种方式:

package ttt;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;@Controller
public class UserController {@RequestMapping(value = "/quick2")public ModelAndView save2(){ModelAndView modelAndView = new ModelAndView();//设置模型数据modelAndView.addObject("username","白金");//设置视图名称modelAndView.setViewName("success");return modelAndView;}@RequestMapping(value = "/quick3")public ModelAndView save3(ModelAndView modelAndView){//设置模型数据modelAndView.addObject("username","银灰");//设置视图名称modelAndView.setViewName("success");return modelAndView;}@RequestMapping(value = "/quick4")public String save4(Model model){model.addAttribute("username","内卫");return "success";}@RequestMapping(value = "/quick5")public String save5(HttpServletRequest request){request.setAttribute("username","花官");return "success";}@RequestMapping("/quick")public String save(){System.out.println("Controller save running...");return "success";}
}

pom.xml文件配置:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mave_spring_web_2</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.9</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.9</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.9</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency></dependencies></project>

 spring_MVC文件配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
"><!--    Controller的组件扫描--><context:component-scan base-package="ttt" /><!--    配置内部资源视图解析器--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        /jsp/success.jsp--><property name="prefix" value="/jsp/" /><property name="suffix" value=".jsp" /></bean><!--    配置处理器映射器--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> </bean></list></property></bean></beans>
package ttt;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import user.User;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@Controller
public class UserController {@RequestMapping(value = "/quick2")public ModelAndView save2(){ModelAndView modelAndView = new ModelAndView();//设置模型数据modelAndView.addObject("username","白金");//设置视图名称modelAndView.setViewName("success");return modelAndView;}@RequestMapping(value = "/quick3")public ModelAndView save3(ModelAndView modelAndView){//设置模型数据modelAndView.addObject("username","银灰");//设置视图名称modelAndView.setViewName("success");return modelAndView;}@RequestMapping(value = "/quick4")public String save4(Model model){model.addAttribute("username","内卫");return "success";}@RequestMapping(value = "/quick5")public String save5(HttpServletRequest request){request.setAttribute("username","花官");return "success";}@RequestMapping("/quick6")public void save6(HttpServletResponse response) throws IOException {  //回写数据response.getWriter().print("hello ");}@RequestMapping("/quick7")@ResponseBody   //响应体,告诉springMVC,当前方法的返回数据为响应体数据public String save7() {  //回写数据return "hello joune";}@RequestMapping("/quick8")@ResponseBodypublic String save8() throws JsonProcessingException {User user = new User();user.setName("lisi");user.setAge(18);//利用json的转化工具,将对象转化为json格式的字符串返回ObjectMapper objectMapper = new ObjectMapper();String json = objectMapper.writeValueAsString(user);return json;}@RequestMapping("/quick")public String save(){System.out.println("Controller save running...");return "success";}
}

 

 spring_mvc.xml文件配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
"><!--    Controller的组件扫描--><context:component-scan base-package="ttt" /><!--    配置内部资源视图解析器--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        /jsp/success.jsp--><property name="prefix" value="/jsp/" /><property name="suffix" value=".jsp" /></bean><!--    配置处理器映射器-->
<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">-->
<!--        <property name="messageConverters">-->
<!--            <list>-->
<!--                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> </bean>-->
<!--            </list>-->
<!--        </property>-->
<!--    </bean>--><!--    mvc的注解驱动--><mvc:annotation-driven/></beans>

获得User集合类型的参数

测试类:

VO封装类:

package user;import java.util.List;public class VO {private List<User> userList;public List<User> getUserList() {return userList;}public void setUserList(List<User> userList) {this.userList = userList;}@Overridepublic String toString() {return "VO{" +"userList=" + userList +'}';}public VO(List<User> userList) {this.userList = userList;}public VO() {}
}

表单页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="/mave_spring_web_2_war_exploded/quick14" method="post"><input type="text" name="userList[0].name"><br><input type="text" name="userList[0].age"><br><input type="text" name="userList[1].name"><br><input type="text" name="userList[1].age"><br><input type="submit" value="提交">
</form>
</body>
</html>

web.xml文件:

 

 

 

date转换器类:

package converter;import org.springframework.core.convert.converter.Converter;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DateConverter  implements Converter<String ,Date> {@Overridepublic Date convert(String dataStr) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");Date date=null;try {date = simpleDateFormat.parse(dataStr);} catch (ParseException e) {e.printStackTrace();}return date;}
}

 配置文件spring_mvc.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><!--    Controller的组件扫描--><context:component-scan base-package="ttt" /><!--    配置内部资源视图解析器--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        /jsp/success.jsp--><property name="prefix" value="/jsp/" /><property name="suffix" value=".jsp" /></bean><!--    配置处理器映射器-->
<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">-->
<!--        <property name="messageConverters">-->
<!--            <list>-->
<!--                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> </bean>-->
<!--            </list>-->
<!--        </property>-->
<!--    </bean>--><!--    mvc的注解驱动--><mvc:annotation-driven conversion-service="ConversionService"/><!--    开放资源的访问--><mvc:resources mapping="/js/**" location="/js/" /><!--    如果找不到资源,则交由原始服务器--><mvc:default-servlet-handler/><!--    声明转换器--><bean id="ConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><list><bean class="converter.DateConverter" /></list></property></bean></beans>

测试类:

 

其中:

JSESSIONID是Cookie请求头中键的名称,通过键的名称获取请求体

测试类: 

 spring_mvc配置类:

多文件上传

测试类:

upload.xml表单文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="/mave_spring_web_2_war_exploded/quick24" method="post" enctype="multipart/form-data">名称<input type="text" name="username"><br>文件<input type="file" name="uploadFile"><br>文件<input type="file" name="uploadFile"><br>文件<input type="file" name="uploadFile"><br><input type="submit" value="提交">
</form>
</body>
</html>

总结

package test;import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.jdbc.core.JdbcTemplate;import java.beans.PropertyVetoException;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;public class JdbcTempletTest {public static void main(String[] args) throws IOException, PropertyVetoException {Properties properties = new Properties();String path = JdbcTempletTest.class.getClassLoader().getResource("jdbc.properties").getPath();properties.load(new FileReader(path));ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass(properties.getProperty("jdbc.driver"));dataSource.setJdbcUrl(properties.getProperty("jdbc.url"));dataSource.setUser(properties.getProperty("jdbc.username"));dataSource.setPassword(properties.getProperty("jdbc.password"));JdbcTemplate jdbcTemplate = new JdbcTemplate();jdbcTemplate.setDataSource(dataSource);int update = jdbcTemplate.update("insert into student values (5,\"泥岩\",16,5)");System.out.println(update);}
}

applicationContext.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--    加载外部的properties文件--><context:property-placeholder location="classpath:jdbc.properties"/><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!--    jdbc模板对象--><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource" /></bean></beans>

测试类:
 

package test;import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;public class JdbcTempletTest {@Testpublic  void test1() throws IOException, PropertyVetoException {Properties properties = new Properties();String path = JdbcTempletTest.class.getClassLoader().getResource("jdbc.properties").getPath();properties.load(new FileReader(path));ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass(properties.getProperty("jdbc.driver"));dataSource.setJdbcUrl(properties.getProperty("jdbc.url"));dataSource.setUser(properties.getProperty("jdbc.username"));dataSource.setPassword(properties.getProperty("jdbc.password"));JdbcTemplate jdbcTemplate = new JdbcTemplate();jdbcTemplate.setDataSource(dataSource);int update = jdbcTemplate.update("insert into student values (5,\"泥岩\",16,5)");System.out.println(update);}@Testpublic  void test2() throws IOException, PropertyVetoException, SQLException {ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");DataSource bean = classPathXmlApplicationContext.getBean(DataSource.class);  //通过bean标签的id名,获取数据Connection connection = bean.getConnection();String sql = "INSERT INTO student VALUES (6,\"凯尔希\",1900,6)";PreparedStatement preparedStatement = connection.prepareStatement(sql);int i = preparedStatement.executeUpdate();System.out.println(i);}@Testpublic  void test3() throws IOException, PropertyVetoException, SQLException {ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");JdbcTemplate bean1 = classPathXmlApplicationContext.getBean(JdbcTemplate.class);int update = bean1.update("INSERT INTO student VALUES (7,\"赫默\",28,7)");System.out.println(update);}}

简单的CRUD操作: 

package test;import User.student;
import com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class JdbcTemplateCRUDTest {@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void testQueryAll() {Object o = jdbcTemplate.queryForObject("select count(*) from student", long.class);System.out.println(o);}@Testpublic void Update() {jdbcTemplate.update("insert into student values (8,\"守林人\",23,8)");}@Testpublic void Delete() {jdbcTemplate.update("DELETE  FROM student WHERE id=2");}
}

 SpringMVC拦截器:

 

拦截器类:

package interceptor;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class MyInterceptor1  implements HandlerInterceptor {//在目标方法执行之前public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws ServletException, IOException {System.out.println("preHandle");String param = request.getParameter("param");if("yes".equals(param)){return true;}else {request.getRequestDispatcher("/error.jsp").forward(request,response);return false;  //默认返回false,后面的方法都不会执行}}//在目标方法执行之后,视图对象返回之前执行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView){modelAndView.addObject("name","sili");System.out.println("postHandle");}//在流程都执行完毕后,执行public void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object handler,Exception exception){System.out.println("afterCompletion");}
}

spring_mvc配置类:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><!--    Controller的组件扫描--><context:component-scan base-package="controllerTest" /><!--    配置内部资源视图解析器--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--        /jsp/success.jsp--><property name="prefix" value="/" /><property name="suffix" value=".jsp" /></bean><!--    配置处理器映射器-->
<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">-->
<!--        <property name="messageConverters">-->
<!--            <list>-->
<!--                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> </bean>-->
<!--            </list>-->
<!--        </property>-->
<!--    </bean>--><!--    mvc的注解驱动--><mvc:annotation-driven conversion-service="ConversionService"/><!--    开放资源的访问--><mvc:resources mapping="/js/**" location="/js/" /><!--    如果找不到资源,则交由原始服务器--><mvc:default-servlet-handler/><!--    mvc注解驱动--><mvc:annotation-driven /><!--    声明转换器--><bean id="ConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><list><bean class="converter.DateConverter" /></list></property></bean><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--        上传总文件大小--><property name="maxUploadSize" value="5242800" />
<!--        上传单个文件的大小--><property name="maxUploadSizePerFile" value="5242800" />
<!--        上传文件的编码器--><property name="defaultEncoding" value="UTF-8" /></bean><!--    配置拦截器--><mvc:interceptors><mvc:interceptor>
<!--            对哪些资源进行拦截--><mvc:mapping path="/**/"/>
<!--            拦截时,执行类--><bean class="interceptor.MyInterceptor1" /></mvc:interceptor></mvc:interceptors></beans>

返回对象类:

package controllerTest;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
public class controller {@RequestMapping("/target")public ModelAndView show(){System.out.println("目标资源执行。。。。");ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("name" ,"joune");modelAndView.setViewName("index");return modelAndView;}
}

 

 

 

 

http://www.jmfq.cn/news/5270059.html

相关文章:

  • 朝阳网络 网站建设/中国搜索引擎市场份额
  • 劳务公司注册需要什么条件/关键词优化排名查询
  • 提高网站粘性/广告商对接平台
  • 网站建设管理工作计划/十大营销策划公司排名
  • 绍兴市网站建设/快手seo软件下载
  • google外贸建站/搜索词
  • 优酷视频放到网站上怎么做/临沂森拓网络科技有限公司
  • 重庆做网站做得好的公司/公司宣传网页怎么做
  • html5后台网站模板/谷歌 翻墙入口
  • seo网站的锚文本怎么写/快速网站轻松排名哪家好
  • 做效果图赚钱的网站/保定seo网络推广
  • 长春网站建设工作室/现在有哪些培训学校
  • 免费vi模板网站/郑州网站营销推广公司
  • 二级学院网站建设方案/天津百度关键词推广公司
  • 影视app源码/关键词seo排名怎么做的
  • 海曙网站制作/整站外包优化公司
  • dw做的网站有域名么/东莞网络优化服务商
  • 网站排版图片/廊坊seo排名优化
  • 电子商务网站建设运营/建站开发
  • 深圳电器公司招聘信息/海口网站关键词优化
  • 网站运营费用预算/发稿平台
  • 海门网站开发/资源搜索引擎
  • 网站前端与后台必须同时做吗/深圳网络络推广培训
  • 织梦微电影分享网站织梦整站源码/晨阳seo顾问
  • 网站体验调查问卷怎么做/百度认证官网
  • seo整站网站推广优化排名/做百度推广效果怎么样
  • 智能营销型网站制作/百度竞价推广的优势
  • 学校网站建设报价/优化排名
  • 武汉网站排名提升/账户竞价托管费用
  • 青岛企业网站制作哪家好/搜索引擎都有哪些