SEO教程

SEO教程

Products

当前位置:首页 > SEO教程 >

如何获取国外旅游攻略网站宽屏源码的详细步骤?

96SEO 2026-02-23 11:50 8


向生成增删改查2.2.aspect切面层2.3.Mybatis

如何获取国外旅游攻略网站宽屏源码的详细步骤?

generator逆向生成2.4.根据生成代码编写Biz层与实现类

三、controller层代码编写四、前台代码与分页代码五、案例测试

一、前期准备

xmlnshttp://maven.apache.org/POM/4.0.0

xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.niyin/groupIdartifactIdzjlzy_ssm/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingnamezjlzy_ssm

Maven

--urlhttp://www.example.com/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.plugin.version3.7.0/maven.compiler.plugin.version!--添加jar包依赖--!--1.spring

5.0.2.RELEASE相关--spring.version5.0.2.RELEASE/spring.version!--2.mybatis相关--mybatis.version3.4.5/mybatis.version!--mysql--mysql.version5.1.44/mysql.version!--pagehelper分页jar依赖--pagehelper.version5.1.2/pagehelper.version!--mybatis与spring集成jar依赖--mybatis.spring.version1.3.1/mybatis.spring.version!--3.dbcp2连接池相关

druid--commons.dbcp2.version2.1.1/commons.dbcp2.versioncommons.pool2.version2.4.3/commons.pool2.version!--4.log日志相关--log4j2.version2.9.1/log4j2.versionlog4j2.disruptor.version3.2.0/log4j2.disruptor.versionslf4j.version1.7.13/slf4j.version!--5.其他--junit.version4.12/junit.versionservlet.version4.0.0/servlet.versionlombok.version1.18.2/lombok.versionmybatis.ehcache.version1.1.0/mybatis.ehcache.versionehcache.version2.10.0/ehcache.versionredis.version2.9.0/redis.versionredis.spring.version1.7.1.RELEASE/redis.spring.versionjackson.version2.9.3/jackson.versionjstl.version1.2/jstl.versionstandard.version1.1.2/standard.versiontomcat-jsp-api.version8.0.47/tomcat-jsp-api.versioncommons-fileupload.version1.3.3/commons-fileupload.versionhibernate-validator.version5.0.2.Final/hibernate-validator.versionshiro.version1.3.2/shiro.version/propertiesdependencies!--1.spring相关--dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependency!--2.mybatis相关--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion${mybatis.version}/version/dependency!--mysql--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency!--pagehelper分页插件jar包依赖--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion${pagehelper.version}/version/dependency!--mybatis与spring集成jar包依赖--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion${mybatis.spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdversion${spring.version}/version/dependency!--mybatis与ehcache整合--dependencygroupIdorg.mybatis.caches/groupIdartifactIdmybatis-ehcache/artifactIdversion${mybatis.ehcache.version}/version/dependency!--ehcache依赖--dependencygroupIdnet.sf.ehcache/groupIdartifactIdehcache/artifactIdversion${ehcache.version}/version/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion${redis.version}/version/dependencydependencygroupIdorg.springframework.data/groupIdartifactIdspring-data-redis/artifactIdversion${redis.spring.version}/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion${jackson.version}/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion${jackson.version}/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-annotations/artifactIdversion${jackson.version}/version/dependency!--3.dbcp2连接池相关--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-dbcp2/artifactIdversion${commons.dbcp2.version}/versionexclusionsexclusionartifactIdcommons-pool2/artifactIdgroupIdorg.apache.commons/groupId/exclusion/exclusions/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion${commons.pool2.version}/version/dependency!--springmvc依赖--dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency!--4.log日志相关依赖--!--

log4j2日志相关依赖

slf4j核心包--dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion${slf4j.version}/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdjcl-over-slf4j/artifactIdversion${slf4j.version}/versionscoperuntime/scope/dependency!--核心log4j2jar包--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion${log4j2.version}/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion${log4j2.version}/version/dependency!--用于与slf4j保持桥接--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-slf4j-impl/artifactIdversion${log4j2.version}/version/dependency!--web工程需要包含log4j-web非web工程不需要--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion${log4j2.version}/versionscoperuntime/scope/dependency!--需要使用log4j2的AsyncLogger需要包含disruptor--dependencygroupIdcom.lmax/groupIdartifactIddisruptor/artifactIdversion${log4j2.disruptor.version}/version/dependency!--5.其他--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/versionscopetest/scope/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion${servlet.version}/versionscopeprovided/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/versionscopeprovided/scope/dependencydependencygroupIdjstl/groupIdartifactIdjstl/artifactIdversion${jstl.version}/version/dependencydependencygroupIdtaglibs/groupIdartifactIdstandard/artifactIdversion${standard.version}/version/dependencydependencygroupIdorg.apache.tomcat/groupIdartifactIdtomcat-jsp-api/artifactIdversion${tomcat-jsp-api.version}/version/dependencydependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion${commons-fileupload.version}/version/dependencydependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator/artifactIdversion${hibernate-validator.version}/version/dependency!--shiro依赖--dependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-core/artifactIdversion${shiro.version}/version/dependencydependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-web/artifactIdversion${shiro.version}/version/dependencydependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-spring/artifactIdversion${shiro.version}/version/dependency/dependenciesbuildfinalNamezjlzy_ssm/finalNameresources!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题--resourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题--resourcedirectorysrc/main/resources/directoryincludesinclude*.properties/includeinclude*.xml/include/includes/resource/resourcespluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion${maven.compiler.plugin.version}/versionconfigurationsource${maven.compiler.source}/sourcetarget${maven.compiler.target}/targetencoding${project.build.sourceEncoding}/encoding/configuration/pluginplugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.2/versiondependencies!--使用Mybatis-generator插件不能使用太高版本的mysql驱动

--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency/dependenciesconfigurationoverwritetrue/overwrite/configuration/pluginpluginartifactIdmaven-clean-plugin/artifactIdversion3.1.0/version/plugin!--

see

http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging

--pluginartifactIdmaven-resources-plugin/artifactIdversion3.0.2/version/pluginpluginartifactIdmaven-compiler-plugin/artifactIdversion3.8.0/version/pluginpluginartifactIdmaven-surefire-plugin/artifactIdversion2.22.1/version/pluginpluginartifactIdmaven-war-plugin/artifactIdversion3.2.2/version/pluginpluginartifactIdmaven-install-plugin/artifactIdversion2.5.2/version/pluginpluginartifactIdmaven-deploy-plugin/artifactIdversion2.8.2/version/plugin/plugins/build

/project

jdbc.drivercom.mysql.jdbc.Driver

jdbc.urljdbc:mysql://47.100.191.44:3308/mybatis_ssm?useUnicodetruecharacterEncodingUTF-8

jdbc.usernametest01

1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtd

引入配置文件

resourcejdbc.properties/!--指定数据库jdbc驱动jar包的位置--classPathEntry

locationD:\\temp1\mvn_repository\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar/!--

一个数据库一个context

driverClass${jdbc.driver}connectionURL${jdbc.url}

类型转换

valuefalse//javaTypeResolver!--

--!--

targetPackagecom.niyin.modeltargetProjectsrc/main/java!--

是否允许子包即targetPackage.schemaName.tableName

--property

valuefalse//javaModelGenerator!--

--sqlMapGenerator

targetPackagecom.niyin.mappertargetProjectsrc/main/java!--

是否允许子包即targetPackage.schemaName.tableName

--property

targetPackagecom.niyin.mappertargetProjectsrc/main/java

typeXMLMAPPER!--

是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model

true:com.oop.eksp.user.model.[schemaName]

--property

valuefalse//javaClientGenerator!--

配置表信息

domainObjectNameBook--!--enableCountByExamplefalse

enableDeleteByExamplefalse--!--enableSelectByExamplefalse

enableUpdateByExamplefalse--!--lt;!ndash;

忽略列不生成bean

domainObjectNamebookenableCountByExamplefalse

enableDeleteByExamplefalseenableSelectByExamplefalse

enableUpdateByExamplefalse/table!--table

schema

tableNamet_hibernate_book_category

domainObjectNameHBookCategoryenableCountByExamplefalse

enableDeleteByExamplefalseenableSelectByExamplefalse

enableUpdateByExamplefalse/tabletable

schema

domainObjectNameOrderenableCountByExamplefalse

enableDeleteByExamplefalseenableSelectByExamplefalse

enableUpdateByExamplefalse/tabletable

schema

tableNamet_hibernate_order_item

domainObjectNameOrderitemenableCountByExamplefalse

enableDeleteByExamplefalseenableSelectByExamplefalse

enableUpdateByExamplefalse/table

--/context

/generatorConfiguration③log4j2.xml

?xml

用于指定log4j自动重新配置的监测间隔时间单位是s,最小是5s.

Configuration

nameLOG_HOME/root/workspace/lucenedemo/logs/Propertyproperty

nameERROR_LOG_FILE_NAME/root/workspace/lucenedemo/logs/error/propertyproperty

nameWARN_LOG_FILE_NAME/root/workspace/lucenedemo/logs/warn/propertyproperty

HH:mm:ss.SSS}

%msg%n/property/PropertiesAppenders!--这个输出控制台的配置

--Console

控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)

--ThresholdFilter

//Console!--文件会打印出所有信息这个log每次运行程序会自动清空由append属性决定这个也挺有用的适合临时测试用

--!--append为TRUE表示消息增加到指定文件中false表示消息覆盖指定的文件内容默认值是true

--File

appendfalsePatternLayoutpattern%d{yyyy-MM-dd

HH:mm:ss.SSS}

这个会打印出所有的info及以下级别的信息每次大小超过size

则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩作为存档

--RollingFile

fileName${LOG_HOME}/info.logfilePattern${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log!--控制台只输出level及以上级别的信息onMatch其他的直接拒绝onMismatch

--ThresholdFilter

/PatternLayoutpattern%d{yyyy-MM-dd

HH:mm:ss.SSS}

基于时间的滚动策略interval属性用来指定多久滚动一次默认是1

modulatetrue用来调整时间比如现在是早上3aminterval是4那么第一次滚动是在4am接着是8am12am...而不是7am.

--!--

filePattern后的日期格式以及TimeBasedTriggeringPolicy的interval

--!--

SizeBasedTriggeringPolicy:Policies子节点

基于指定文件大小的滚动策略size属性用来定义每个日志文件的大小.

--!--

--/Policies/RollingFileRollingFile

nameRollingFileWarn

fileName${WARN_LOG_FILE_NAME}/warn.logfilePattern${WARN_LOG_FILE_NAME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.logThresholdFilter

levelwarn

/PatternLayoutpattern%d{yyyy-MM-dd

HH:mm:ss.SSS}

/PoliciesTimeBasedTriggeringPolicy

size2

DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20

max20

fileName${ERROR_LOG_FILE_NAME}/error.logfilePattern${ERROR_LOG_FILE_NAME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd-HH-mm}-%i.logThresholdFilter

levelerror

/PatternLayoutpattern%d{yyyy-MM-dd

HH:mm:ss.SSS}

warn-%d{yyyy-MM-dd-HH-mm}-%i.log

/!--

--/Policies/RollingFile/Appenders!--然后定义logger只有定义了logger并引入的appenderappender才会生效

--Loggers!--过滤掉spring和mybatis的一些无用的DEBUG信息

--logger

//root/Loggers/Configuration④spring-mybatis.xml

?xml

xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/context

xmlns:txhttp://www.springframework.org/schema/txxmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd!--1.

注解式开发

--context:annotation-config/!--

用注解方式注入bean并指定查找范围com.javaxl.ssm及子子孙孙包--context:component-scan

base-packagecom.niyin/context:property-placeholder

locationclasspath:jdbc.properties/bean

iddataSource

classorg.apache.commons.dbcp2.BasicDataSourcedestroy-methodcloseproperty

namedriverClassName

value${jdbc.password}/!--初始连接数--property

nameinitialSize

value10/!--设置为-1时如果没有可用连接连接池会一直无限期等待直到获取到连接为止。

--!--如果设置为N毫秒则连接池会等待N毫秒等待不到则抛出异常--property

namemaxWaitMillis

classorg.mybatis.spring.SqlSessionFactoryBean!--

指定数据源

valueclasspath*:com/niyin/**/mapper/*.xml/!--

指定别名

valuecom/niyin/**/model/!--配置pagehelper插件--property

namepluginsarraybean

classcom.github.pagehelper.PageInterceptorproperty

namepropertiesvaluehelperDialectmysql/value/property/bean/array/property/bean!--2)

自动扫描com/javaxl/ssm/**/mapper下的所有XxxMapper接口(其实就是DAO接口)并实现这些接口--!--

即可直接在程序中使用dao接口不用再获取sqlsession对象--bean

classorg.mybatis.spring.mapper.MapperScannerConfigurer!--basePackage

namebasePackage

valuecom/niyin/**/mapper/property

valuesqlSessionFactory//beanbean

idtransactionManager

classorg.springframework.jdbc.datasource.DataSourceTransactionManagerproperty

namedataSource

transaction-managertransactionManager

/beans

xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsdimport

resourceclasspath:spring-mybatis.xml/import

?xml

xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aopxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd!--1)

扫描com.zking.zf及子子孙孙包下的控制器(扫描范围过大耗时)--context:component-scan

此标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter

/!--3)

classorg.springframework.web.servlet.view.InternalResourceViewResolver!--

viewClass需要在pom中引入两个包standard.jar

and

nameviewClassvalueorg.springframework.web.servlet.view.JstlView/propertyproperty

nameprefix

mapping/static/**/--aop:aspectj-autoproxy//beans

?xml

xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1display-nameArchetype

Created

--context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-context.xml/param-value/context-param!--

--listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener!--

Spring和web项目集成end

--filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classasync-supportedtrue/async-supportedinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping!--

Spring

--servletservlet-nameSpringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!--此参数可以不配置默认值为/WEB-INF/springmvc-servlet.xml--init-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-mvc.xml/param-value/init-paramload-on-startup1/load-on-startup!--web.xml

3.0的新特性是否支持异步--async-supportedtrue/async-supported/servletservlet-mappingservlet-nameSpringMVC/servlet-nameurl-pattern//url-pattern/servlet-mapping

2.1.导入相关util类

javax.servlet.http.HttpServletRequest;

import

2422581023658455731L;//页码private

int

isPaginationtrue;//上一次的请求路径private

String

pagereq.getParameter(page);String

rowsreq.getParameter(rows);String

paginationreq.getParameter(pagination);this.setPage(page);this.setRows(rows);this.setPagination(pagination);this.urlreq.getContextPath()req.getServletPath();this.mapreq.getParameterMap();}public

String

{if(null!page!.equals(page.trim()))this.page

int

{if(null!rows!.equals(rows.trim()))this.rows

int

Integer.parseInt(total);}public

boolean

{if(null!isPagination!.equals(isPagination.trim()))this.isPagination

Boolean.parseBoolean(isPagination);}/***

获取分页起始标记位置*

(this.getPage()-1)*this.rows;}/***

末页*

totalpagethis.total/this.rows;if(this.total%this.rows!0)totalpage;return

totalpage;}/***

nextPagethis.page1;if(this.pagethis.getMaxPage())nextPagethis.getMaxPage();return

nextPage;}/***

previousPagethis.page-1;if(previousPage1)previousPage1;return

String

com.github.pagehelper.PageHelper;

import

com.github.pagehelper.PageInfo;

import

org.aspectj.lang.ProceedingJoinPoint;

import

org.aspectj.lang.annotation.Around;

import

org.aspectj.lang.annotation.Aspect;

import

org.springframework.stereotype.Component;import

Component

PageBean){pageBean(PageBean)param;break;

}}if

pageBean.isPagination()){PageHelper.startPage(pageBean.getPage(),pageBean.getRows());}Object

lst

args.proceed();if(pageBean!null

pageBean.isPagination()){PageInfo

pageInfo

http://mybatis.org/dtd/mybatis-3-mapper.dtd

mapper

namespacecom.niyin.mapper.bookMapper

resultMap

#{bid,jdbcTypeINTEGER}/selectdelete

iddeleteByPrimaryKey

#{bid,jdbcTypeINTEGER}/deleteinsert

idinsert

parameterTypecom.niyin.model.book

insert

#{price,jdbcTypeREAL})/insertinsert

idinsertSelective

parameterTypecom.niyin.model.book

insert

#{price,jdbcTypeREAL},/if/trim/insertupdate

parameterTypecom.niyin.model.book

update

#{price,jdbcTypeREAL},/if/setwhere

bid

#{bid,jdbcTypeINTEGER}/updateupdate

idupdateByPrimaryKey

parameterTypecom.niyin.model.book

update

#{bid,jdbcTypeINTEGER}/updateselect

idselectByPager

parameterTypecom.niyin.model.book

select

concat(%,#{bname},%)/if/where/select/mapperpackage

import

org.springframework.stereotype.Repository;import

public

updateByPrimaryKeySelective(book

record);int

com.niyin.utils.PageBean;import

interface

updateByPrimaryKeySelective(book

record);int

org.springframework.beans.factory.annotation.Autowired;

import

org.springframework.stereotype.Service;import

java.util.List;

bookMapper.deleteByPrimaryKey(bid);}Overridepublic

int

bookMapper.insert(record);}Overridepublic

int

bookMapper.insertSelective(record);}Overridepublic

book

bookMapper.selectByPrimaryKey(bid);}Overridepublic

int

updateByPrimaryKeySelective(book

record)

bookMapper.updateByPrimaryKeySelective(record);}Overridepublic

int

bookMapper.updateByPrimaryKeySelective(record);}Overridepublic

Listbook

org.springframework.beans.factory.annotation.Autowired;

import

org.springframework.stereotype.Controller;

import

org.springframework.web.bind.annotation.*;import

javax.servlet.http.HttpServletRequest;

import

bookBiz;RequestMapping(/list)public

String

PageBean();pageBeanage.setRequest(request);Listbook

books

pageBeanage);request.setAttribute(lst,books);request.setAttribute(pageBean,pageBeanage);return

list;};RequestMapping(/add)public

String

bookBiz.insertSelective(b);return

redirect:list;};RequestMapping(/del)public

String

b){bookBiz.deleteByPrimaryKey(b.getBid());return

redirect:list;};RequestMapping(/edit)public

String

b){bookBiz.updateByPrimaryKeySelective(b);return

redirect:list;};RequestMapping(/preSave)public

String

(b!nullb.getBid()!nullb.getBid()!0){book

bookBiz.selectByPrimaryKey(b.getBid());model.addAttribute(bs,bs);}return

edit;

org.springframework.stereotype.Controller;

import

org.springframework.web.bind.annotation.PathVariable;

import

org.springframework.web.bind.annotation.RequestMapping;Controller

public

}RequestMapping(/page/{dir}{page})public

String

page;}RequestMapping(/order/presave)public

String

/order/presave;}RequestMapping(/clz/presave)public

String

javax.servlet.jsp.JspException;

import

javax.servlet.jsp.tagext.BodyTagSupport;import

com.niyin.utils.PageBean;public

class

隐藏的form表单---这个就是上一次请求下次重新发的奥义所在

idpageBeanForm

注意page参数每次都会提交我们需要避免if(!page.equals(key))

{sb.append(

justify-content-center);sb.append(

classpage-item

hrefjavascript:gotoPage(1)首页/a/li);sb.append(

classpage-item

hrefjavascript:gotoPage(pageBean.getPreivousPage())lt;/a/li);//

less

href#pageBean.getPage()/a/li);sb.append(

classpage-item

hrefjavascript:gotoPage(pageBean.getNextPage())gt;/a/li);sb.append(

classpage-item

hrefjavascript:gotoPage(pageBean.getMaxPage())尾页/a/li);sb.append(

classpage-item

hrefjavascript:skipPage()确定/a/li);sb.append(

classpage-itemb共pageBean.getTotal()条/b/li);sb.append(/ul);//

typetext/javascript);sb.append(

function

document.getElementById(pageBeanForm).page.value

page;);sb.append(

document.getElementById(pageBeanForm).submit(););sb.append(

});sb.append(

document.getElementById(skipPage).value;);sb.append(

(!page

alert(请输入1~pageBean.getMaxPage()的数字););sb.append(

return;);sb.append(

xmlnshttp://java.sun.com/xml/ns/j2eexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsdversion2.0descriptionzking

1.1

library/descriptiondisplay-namezking

core/display-nametlib-version1.1/tlib-versionshort-namezking/short-nameurihttp://jsp.veryedu.cn/uritagnamepage/nametag-classcom.niyin.tag.PageTag/tag-classbody-contentJSP/body-contentattributenamepageBean/namerequiredtrue/requiredrtexprvaluetrue/rtexprvalue/attribute/tag/taglib

③list.jsp

urihttp://java.sun.com/jsp/jstl/core

prefixc%

http://www.w3.org/TR/html4/loose.dtd

html

charsetUTF-8linkhrefhttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.cssrelstylesheetscriptsrchttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.js/scripttitle博客列表/titlestyle

input

classform-inlineaction${pageContext.request.contextPath

}/clz/list

href${pageContext.request.contextPath

}/clz/preSave新增/a

scopecol操作/th/tr/***adtbodyc:forEach

varb

href${pageContext.request.contextPath

href${pageContext.request.contextPath

}/clz/del?bid${b.bid}删除/a/td/tr/c:forEach/tbody

/table

http://www.w3.org/TR/html4/loose.dtd

html

action${pageContext.request.contextPath

}/clz/${empty



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