百度SEO

百度SEO

Products

当前位置:首页 > 百度SEO >

如何开展网站开发业务,并有效利用WordPress来吸引流量?

96SEO 2026-02-23 13:02 29


简介2

创建controller.v1、service、mapper、config6.2.3

如何开展网站开发业务,并有效利用WordPress来吸引流量?

bootstrap.yml6.2.3.2

Controller层ApUserLoginController类7.1.3

完善业务层接口

http://192.168.204.129:8848/nacos

初始工程搭建

解压heima-leadnews.zip并且导入idea设置jdk为1.8

4.1.2

heima-leadnews-common模块下的com.heima.common.exception包下自定义异常类CustomException如果我们手动抛出异常就需要抛出CustomException类

public

CustomException(AppHttpCodeEnum

appHttpCodeEnum){this.appHttpCodeEnum

AppHttpCodeEnum

注解ControllerAdviceControllerAdvice本质上是一个Component因此也会被当成组件扫描一视同仁扫扫扫。

这个类是为那些声明了ExceptionHandler、InitBinder

ModelAttribute注解修饰的方法的类而提供的专业化的Component

ControllerAdvice

return*/ExceptionHandler(Exception.class)ResponseBodypublic

ResponseResult

e){e.printStackTrace();log.error(catch

exception:{},e.getMessage());return

ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR);}/***

自定义异常*

return*/ExceptionHandler(CustomException.class)ResponseBodypublic

ResponseResult

ResponseResult.errorResult(e.getAppHttpCodeEnum());}

}在heima-leadnews-model模块下的com.heima.model包下的common包下的enums包下有个枚举类AppHttpCodeEnum用来存放对异常的说明

public

登录段1~50NEED_LOGIN(1,需要登录后操作),LOGIN_PASSWORD_ERROR(2,密码错误),//

TOKEN50~100TOKEN_INVALID(50,无效的TOKEN),TOKEN_EXPIRE(51,TOKEN已过期),TOKEN_REQUIRE(52,TOKEN是必须的),//

SIGN验签

100~120SIGN_INVALID(100,无效的SIGN),SIG_TIMEOUT(101,SIGN已过期),//

参数错误

500~1000PARAM_REQUIRE(500,缺少参数),PARAM_INVALID(501,无效参数),PARAM_IMAGE_FORMAT_ERROR(502,图片格式有误),SERVER_ERROR(503,服务器内部错误),//

数据错误

1000~2000DATA_EXIST(1000,数据已经存在),AP_USER_DATA_NOT_EXIST(1001,ApUser数据不存在),DATA_NOT_EXIST(1002,数据不存在),//

数据错误

3000~3500NO_OPERATOR_AUTH(3000,无权限操作),NEED_ADMIND(3001,需要管理员权限);int

code;String

errorMessage;AppHttpCodeEnum(int

code,

resource下META-INF有spring.factories只有有微服务引用了heima-leadnews-common服务器初始化spring容器的时候就会找到spring.factories把spring.factories中需要自动配置的文件加载到当前微服务的容器中也就能用全局处理器了。

4.3

打开本地sql工具引入sql脚本创建leadnews_user有四张表

5.1.2

在heima-leadnews-model模块下创建com.heima.model.user.pojos包下创建实体类ApUser

TableId(value

密码、通信等加密盐*/TableField(salt)private

String

密码,md5加密*/TableField(password)private

String

是*/TableField(is_certification)private

Boolean

是否身份认证*/TableField(is_identity_au***ntication)private

Boolean

0正常1锁定*/TableField(status)private

Boolean

注册时间*/TableField(created_time)private

Date

heima-leadnews-service模块是管理其他所有微服务模块

6.1

然后创建一个包com.heima.user再创建一个引导类UserApplication

启动类注解

MapperScan(com.heima.user.mapper)

继承MybatisPlus扫描Mapper接口没有就在com.heima.user下创建mapper包

MapperScan(com.heima.user.mapper)

public

{SpringApplication.run(UserApplication.class,

args);}

创建controller.v1、service、mapper、config

6.2.3

和bootstrap.yml在同一目录下bootstrap.yml

先加载

application.yml后加载application.yml会覆盖

创建bootstrap.yml

leadnews-usercloud:nacos:discovery:server-addr:

192.168.204.129:8848config:server-addr:

192.168.204.129:8848file-extension:

yml这里面暂时只有Nacos的配置关于数据库的等等都需要在Nacos的配置中心进行配置

spring:datasource:driver-class-name:

jdbc:mysql://localhost:3306/leadnews_user?useUnicodetruecharacterEncodingUTF-8serverTimezoneUTCuseSSLfalseusername:

rootpassword:

设置Mapper接口所对应的XML文件位置如果你在Mapper接口中有自定义方法需要进行该配置

设置别名包扫描路径通过该属性可以给包中的类注册别名type-aliases-package:

发布查看

encodingUTF-8?configuration!--定义日志文件的存储地址,使用绝对路径--property

nameLOG_HOME

valueD:\Code\JavaCode\HeimaToutiao\logs/!--

Console

classch.qos.logback.core.ConsoleAppenderencoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd

HH:mm:ss.SSS}

%msg%n/patterncharsetutf8/charset/encoder/appender!--

按照每天生成日志文件

classch.qos.logback.core.rolling.RollingFileAppenderrollingPolicy

classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名--fileNamePattern${LOG_HOME}/leadnews.%d{yyyy-MM-dd}.log/fileNamePattern/rollingPolicyencoderpattern%d{yyyy-MM-dd

HH:mm:ss.SSS}

%msg%n/pattern/encoder/appender!--

异步输出

classch.qos.logback.classic.AsyncAppender!--

不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志

--discardingThreshold0/discardingThreshold!--

--appender-ref

nameorg.apache.ibatis.cache.decorators.LoggingCache

levelDEBUG

heima-leadnews-model模块下的com.heima.model.user.pojos.dtos包下创建LoginDto类

Data

Controller层ApUserLoginController类

再在heima-leadnews-service模块下的com.heima.user.controller.v1下创建ApUserLoginController类

POST请求采用RequestBody

{PostMapping(/login_auth)public

ResponseResult

login(RequestBody(requiredfalse)

LoginDto

在com.heima.user.mapper创建ApUserMapper接口

Mapper

用户名、密码if(StringUtils.isNotBlank(dto.getPhone())

StringUtils.isNotBlank(dto.getPassword()))

{//1.1

getOne(Wrappers.ApUserlambdaQuery().eq(ApUser::getPhone,

null)

ResponseResult.errorResult(AppHttpCodeEnum.AP_USER_DATA_NOT_EXIST,

用户不存在);}//1.2

DigestUtils.md5DigestAsHex((password

salt).getBytes());if(!pwd.equals(dbUser.getPassword()))

{return

ResponseResult.errorResult(AppHttpCodeEnum.LOGIN_PASSWORD_ERROR,

密码错误);}//1.3

AppJwtUtil.getToken(dbUser.getId().longValue());MapString,Object

mapnew

HashMap();map.put(token,token);//清空敏感信息前端只要id,手机号,昵称ApUser

userVOnew

ApUser();userVO.setId(dbUser.getId());userVO.setPhone(dbUser.getPhone());userVO.setName(dbUser.getName());map.put(user,userVO);return

ResponseResult.okResult(map);}else{//2.游客登录MapString,Object

mapnew

HashMap();map.put(token,AppJwtUtil.getToken(0L));return

ResponseResult.okResult(map);}}

}加密采用DigestUtils.md5DigestAsHex传入字节流

生成JWT令牌是使用heima-leadnews-utils模块下的com.heima.utils.common包下的AppJWTUtil

public

MDk4ZjZiY2Q0NjIxZDM3M2NhZGU0ZTgzMjYyN2I0ZjY;//

最小刷新间隔(S)private

HashMap();claimMaps.put(id,id);long

currentTime

System.currentTimeMillis();return

Jwts.builder().setId(UUID.randomUUID().toString()).setIssuedAt(new

Date(currentTime))

//接收用户.compressWith(CompressionCodecs.GZIP)

//数据压缩方式.signWith(SignatureAlgorithm.HS512,

generalKey())

Jwts.parser().setSigningKey(generalKey()).parseClaimsJws(token);}/***

获取payload

getJws(token).getHeader();}/***

param

{claims.getExpiration().before(new

Date());//

需要自动刷新TOKENif((claims.getExpiration().getTime()-System.currentTimeMillis())REFRESH_TIME*1000){return

-1;}else

Base64.getEncoder().encode(TOKEN_ENCRY_KEY.getBytes());SecretKey

key

HashMap();map.put(id,11);*/System.out.println(AppJwtUtil.getToken(1102L));JwsClaims

jws

AppJwtUtil.getJws(eyJhbGciOiJIUzUxMiIsInppcCI6IkdaSVAifQ.H4sIAAAAAAAAADWLQQqEMAwA_5KzhURNt_qb1KZYQSi0wi6Lf9942NsMw3zh6AVW2DYmDGl2WabkZgreCaM6VXzhFBfJMcMARTqsxIG9Z888QLui3e3Tup5Pb81013KKmVzJTGo11nf9n8v4nMUaEY73DzTabjmDAAAA.4SuqQ42IGqCgBai6qd4RaVpVxTlZIWC826QA9kLvt9d-yVUw82gU47HDaSfOzgAcloZedYNNpUcd18Ne8vvjQA);Claims

claims

jws.getBody();System.out.println(claims.get(id));}}7.2.2

Controller注入

apUserService;PostMapping(/login_auth)public

ResponseResult

访问http://localhost:51801/api/v1/login/login_auth

App端网关

dependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactId/dependency

/dependencies8.2

创建引导类com.heima.app.gateway.AppGatewayApplication

public

{SpringApplication.run(AppGatewayApplication.class,

args);}

leadnews-app-gatewaycloud:nacos:discovery:server-addr:

192.168.204.129:8848config:server-addr:

192.168.204.129:8848file-extension:

yml8.2.3

spring:cloud:gateway:globalcors:add-to-simple-url-handler-mapping:

truecorsConfigurations:[/**]:allowedHeaders:

*allowedOrigins:

当请求匹配到该路由时它会被路由到leadnews-user服务的实例。

URI的前缀lb://表示路由到负载均衡器。

predicates:

定义了路由的匹配规则。

在这种情况下请求路径必须以/user/开头才会匹配到此路由。

filters:

定义了路由的过滤器。

在这里使用了StripPrefix过滤器该过滤器会将请求的路径中的一层前缀移除。

具体来说这里是将路径中的第一层/user移除以便在转发请求到leadnews-user服务时去除不必要的前缀。

访问http://localhost:51601/user/api/v1/login/login_auth

9.1

在heima-leadnews-gateway模块下创建com.heima.app.gateway.filter.AuthorizeFilter类用作全局过滤器

Component

{//1.获取Request对象和Response对象ServerHttpRequest

request

exchange.getRequest();ServerHttpResponse

response

exchange.getResponse();//2.判断当前请求是否为登录请求如果是直接放行if

(request.getURI().getPath().contains(/login))

{//放行return

chain.filter(exchange);}//3.获取当前请求的token信息String

token

request.getHeaders().getFirst(token);//4.判断token是否存在if(StringUtils.isBlank(token))

{response.setStatusCode(HttpStatus.UNAUTHORIZED);return

response.setComplete();}//5.判断token是否有效//5.1

解析tokentry{Claims

AppJwtUtil.getClaimsBody(token);//5.2

result

AppJwtUtil.verifyToken(body);if(result

1||result

token过期response.setStatusCode(HttpStatus.UNAUTHORIZED);return

(Exception

token无效response.setStatusCode(HttpStatus.UNAUTHORIZED);return

response.setComplete();}//6.放行return

int

在nginx的conf目录下创建文件夹leadnews.conf新建文件heimi-leadnews-app.conf

nginx端口8801然后转发到gateway端口51601gateway添加user路径后通过Nacos路由到leadnews-user也就是端口51801完成访问

静态资源存放在D:/Code/JavaCode/HeimaToutiao/app-web/展示其目录下的index.html

upstream

D:/Code/JavaCode/HeimaToutiao/app-web/;index

index.html;}location

http://heima-app-gateway/$1;proxy_set_header

HOST

不改变源请求头的值proxy_pass_request_body

on;

#开启获取请求体proxy_pass_request_headers

on;

application/octet-stream;sendfile

on;keepalive_timeout



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback