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

微信小程序怎么批量删掉seo常用优化技巧

微信小程序怎么批量删掉,seo常用优化技巧,做现金贷的网站有哪些,电商平台推广广告词序:Java以其跨平台、安全稳定、易于维护等特性,成为了企业级应用开发的首选语言之一。而J2EE(Java 2 Platform, Enterprise Edition),作为Java技术在企业级应用领域的集大成者,更是以其强大的功能和灵活性&…

    序:Java以其跨平台、安全稳定、易于维护等特性,成为了企业级应用开发的首选语言之一。而J2EE(Java 2 Platform, Enterprise Edition),作为Java技术在企业级应用领域的集大成者,更是以其强大的功能和灵活性,引领着企业级应用开发的新潮流。本章节旨在深入剖析J2EE框架技术的核心原理和最佳实践,带领读者走进这个充满挑战与机遇的世界。我们将从J2EE的基本概念入手,逐步展开对其核心组件的详细讲解,并结合实际案例,展示如何在企业级应用中灵活运用这些技术。

第一节:J2EE框架技术概述

    J2EE(Java 2 Platform, Enterprise Edition)与SSM框架在企业级应用开发中都扮演着重要的角色,但它们之间存在明显的区别和联系。以下是对J2EE与SSM框架关系的详细分析:

一、J2EE框架技术定义:

    J2EE是一套经过长期实践检验的企业级开发规范,具有高度的成熟性和稳定性。它涵盖了多个层次,包括表现层、业务逻辑层和数据访问层,通过明确的分层架构实现了系统的高内聚、低耦合。J2EE提供了丰富的组件和服务,如Servlet、JSP、EJB、JDBC、JMS、JNDI等,以及强大的事务管理、安全管理和分布式对象管理等功能。这些特性使得J2EE成为企业级应用开发的首选平台之一。

二、SSM框架定义:

    SSM框架是Spring、Spring MVC和MyBatis三个框架的整合,是标准的MVC设计模式。其中,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,提供了业务对象的一致管理方法和强大的事务管理抽象;Spring MVC是一个实现了Model-View-Controller模式的Web框架,负责请求的转发和视图管理;MyBatis是一个基于Java的持久层框架,它支持定制化SQL、存储过程以及高级映射,使得数据库操作更加灵活和高效。

三、J2EE与SSM框架的关系

技术层次上的关系:

    J2EE是一个广泛的企业级应用开发平台,它提供了丰富的组件和服务,支持企业级应用的开发、部署和管理。SSM框架则是在J2EE平台上的一个具体实现,它利用J2EE提供的组件和服务,如Servlet、JDBC等,来实现企业级应用的功能。因此,从技术层次上看,SSM框架是J2EE平台上的一个子集或具体实现。

开发模式上的联系:

    2EE平台支持多种开发模式,包括MVC模式等。SSM框架本身就是MVC模式的一个具体实现,它利用Spring MVC来实现控制器的功能,利用MyBatis来实现数据持久化的功能,并利用Spring来实现业务逻辑的处理。

四、SpringMVC模式

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。

    Spring MVC 是结构最清晰的 Servlet+JSP+JavaBean 的实现,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不是完全基于 MVC 系统的框架。Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。Spring MVC 是当今业界最主流的 Web 开发框架,以及最热门的开发技能。

    在 Spring MVC 框架中,Controller 替换 Servlet 来担负控制器的职责,用于接收请求,调用相应的 Model 进行处理,处理器完成业务处理后返回处理结果。Controller 调用相应的 View 并对处理结果进行视图渲染,最终客户端得到响应信息。

五、Spring架构图:

六、组件解析:

1、Data Access/Integration(数据访问/集成)

数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块,具体介绍如下。

JDBC 模块:提供了一个 JBDC 的样例模板,使用这些模板能消除传统冗长的 JDBC 编码还有必须的事务控制,而且能享受到 Spring 管理事务的好处。

ORM 模块:提供与流行的“对象-关系”映射框架无缝集成的 API,包括 JPA、JDO、Hibernate 和 MyBatis 等。而且还可以使用 Spring 事务管理,无需额外控制事务。

OXM 模块:提供了一个支持 Object /XML 映射的抽象层实现,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。将 Java 对象映射成 XML 数据,或者将XML 数据映射成 Java 对象。

JMS 模块:指 Java 消息服务,提供一套 “消息生产者、消息消费者”模板用于更加简单的使用 JMS,JMS 用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

Transactions 事务模块:支持编程和声明式事务管理

2、Web 模块

Spring 的核心容器是其他模块建立的基础,由 Beans 模块、Core 核心模块、Context 上下文模块和 SpEL 表达式语言模块组成,没有这些核心容器,也不可能有 AOP、Web 等上层的功能。具体介绍如下。

Beans 模块:提供了框架的基础部分,包括控制反转和依赖注入。

Core 核心模块:封装了 Spring 框架的底层部分,包括资源访问、类型转换及一些常用工具类。

Context 上下文模块:建立在 Core 和 Beans 模块的基础之上,集成 Beans 模块功能并添加资源绑定、数据验证、国际化、Java EE 支持、容器生命周期、事件传播等。ApplicationContext 接口是上下文模块的焦点。

SpEL 模块:提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。

3、Core Container(Spring 的核心容器)

Spring 的核心容器是其他模块建立的基础,由 Beans 模块、Core 核心模块、Context 上下文模块和 SpEL 表达式语言模块组成,没有这些核心容器,也不可能有 AOP、Web 等上层的功能。具体介绍如下。

Beans 模块:提供了框架的基础部分,包括控制反转和依赖注入。

Core 核心模块:封装了 Spring 框架的底层部分,包括资源访问、类型转换及一些常用工具类。

Context 上下文模块:建立在 Core 和 Beans 模块的基础之上,集成 Beans 模块功能并添加资源绑定、数据验证、国际化、Java EE 支持、容器生命周期、事件传播等。ApplicationContext 接口是上下文模块的焦点。

SpEL 模块:提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从 Spring 容器获取 Bean,它也支持列表投影、选择和一般的列表聚合等。

4、AOP、Aspects、Instrumentation 和 Messaging

在 Core Container 之上是 AOP、Aspects 等模块,具体介绍如下:

AOP 模块:提供了面向切面编程实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中,这样各司其职,降低业务逻辑和通用功能的耦合。

Aspects 模块:提供与 AspectJ 的集成,是一个功能强大且成熟的面向切面编程(AOP)框架。

Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。

messaging 模块:Spring 4.0 以后新增了消息(Spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持。

5、Test 模块

Test 模块:Spring 支持 Junit 和 TestNG 测试框架,而且还额外提供了一些基于 Spring 的测试功能,比如在测试 Web 框架时,模拟 Http 请求的功能。

第二节:SSM搭建过程

    第一步:点击new create project创建maven项目,选择webapp项目,如下图所示:

    创建过程中只需一直下一步即可,直至完成。完成后,对项目进行调试,如下图所示:

在项目中分别建立如下package工作包,具体含义分别为:控制层(Controller)、数据层(DAO)、实体类(Model)、业务逻辑层(Service)、工具类(utils)。

    项目中,resource为静态资源,一般存放配置文件;webapp为web项目存放路径,例如JSP页面、CSS、JS等;pom.xml为项目所用的依赖配置文件,用于引入jar包或其它组件等。

    项目搭建完成后,并且依赖也导入成功即可,验证依赖导入如下图所示:

    第二步:配置tomcat,首先建立如下图所示的模块,保证tomcat有可用的项目加载模块:

其次,打开tomcat配置页面进行配置,如下图所示:

注意第二个标签页配置,如图所示:

    第三步:修改如下配置文件:

1)log4j.properties

log4j.rootLogger=DEBUG, stdout,CONSOLE, ERROR, WARN, INFO, DEBUG, ALL
###############Log4j 4 SQL Output start#################
#mybatis部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
#与sql相关
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#-----------------------------------------------------------------------------------------------------
#输出信息到控制台CONSOLE
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#-----------------------------------------------------------------------------------------------------
#输出ERROR 级别以上的日志到error.log
log4j.logger.ERROR=ERROR
log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File =E:/log/error.log
log4j.appender.ERROR.Threshold = ERROR 
log4j.appender.ERROR.Append = true
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#-----------------------------------------------------------------------------------------------------
#输出WARN 级别以上的日志到warn.log
log4j.logger.WARN=WARN
log4j.appender.WARN = org.apache.log4j.DailyRollingFileAppender
log4j.appender.WARN.File =E:/log/warn.log
log4j.appender.WARN.Threshold = WARN
log4j.appender.WARN.Append = true
log4j.appender.WARN.layout = org.apache.log4j.PatternLayout
log4j.appender.WARN.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#-----------------------------------------------------------------------------------------------------
#输出INFO级别以上的内容到info.log中
log4j.logger.INFO=INFO
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = E:/log/info.log
log4j.appender.INFO.Threshold = INFO 
log4j.appender.INFO.Append = true
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#-----------------------------------------------------------------------------------------------------
#输出DEBUG 级别以上的日志到debugger.log
log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.File = E:/log/debugger.log
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.Append = true
log4j.appender.DEBUG.layout = org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#-----------------------------------------------------------------------------------------------------
#输出ALL级别的日志到all.log
log4j.logger.ALL=ALL
log4j.appender.ALL = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ALL.File = E:/log/all.log
log4j.appender.file.DatePattern ='.'yyyy-MM-dd
log4j.appender.ALL.Threshold = ALL 
log4j.appender.ALL.Append = true
log4j.appender.ALL.layout = org.apache.log4j.PatternLayout
log4j.appender.ALL.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
​

2)mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <settings>        <setting name="lazyLoadingEnabled" value="false" />        <setting name="logImpl" value="STDOUT_LOGGING" />    </settings></configuration>

3)mybatis-spring.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"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mybaits-spring="http://mybatis.org/schema/mybatis-spring"xsi:schemaLocation="http://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/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://mybatis.org/schema/mybatis-springhttp://mybatis.org/schema/mybatis-spring.xsd">
​<!-- 配置数据源(方式二时采用开启context:property-placeholder,方式一时需关闭) --><!--<context:property-placeholder location="classpath:mysqldb.properties"/>--><!-- 方式一 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><!-- 方式一 --><property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8&amp;useSSL=false" /><property name="username" value="root" /><property name="password" value="yourpassword" /><!-- 方式二 --><!--<property name="driverClassName" value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" />--><!-- 其他信息 --><property name="initialSize" value="1" /><property name="minIdle" value="1" /><property name="maxActive" value="20" /><property name="maxWait" value="60000" /><!-- 超过时间限制是否回收 --><property name="removeAbandoned" value="true" /><!-- 超过时间限制多长;--><property name="removeAbandonedTimeout" value="180" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><!-- 用来检测连接是否有效的sql,要求是一个查询语句--><property name="validationQuery" value="SELECT 1" /><!-- 申请连接的时候检测 --><property name="testWhileIdle" value="true" /><!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --><property name="testOnBorrow" value="false" /><!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能  --><property name="testOnReturn" value="false" /></bean>
​<!-- Mybatis文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:mybatis-config.xml" /><property name="dataSource" ref="dataSource" /><!-- 映射文件路径 --><property name="mapperLocations" value="classpath:dao/*.xml" /></bean>
​<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="dao" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /></bean>
​<!-- 事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean>
​<tx:annotation-driven transaction-manager="transactionManager" />
</beans>
​

4)spring.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"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://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/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
​<!-- 自动注入 --><context:component-scan base-package="service.impl" /><!-- 引用redis管理文件 --><!--<import resource="classpath:application-redis.xml" />-->
</beans>

5)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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
​<!-- 启用spring mvc 注解 --><context:annotation-config />
​<!-- 设置使用注解的类所在的jar包 --><context:component-scan base-package="controller" />
​<!-- 完成请求和注解POJO的映射 --><mvc:annotation-driven/>
​<!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"p:prefix="/" p:suffix=".jsp" />
​
</beans>

6)web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-appversion="4.0"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xml="http://www.w3.org/XML/1998/namespace"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml,classpath:mybatis-spring.xml</param-value></context-param><servlet><servlet-name>springDispatcherServlet</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>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

当然,在上述web.xml文件中的<web-app></web-app>之间也可以写入欢迎页的默认页面,通常是index.html或index.jsp等,如:

<welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list>

至此,框架已经基本搭建完成,但目前为止还无法实际应用,后续如何修改使用,我们看下一个章节!

http://www.dtcms.com/wzjs/131252.html

相关文章:

  • 江苏省建设工程质量监督站网站培训机构seo
  • 搭建网站哪个好如何提高自己在百度的排名
  • 一站式手机网站制作百度官网认证价格
  • 网络平台创建需要多少钱网络营销seo优化
  • 曲阜做网站百度统计代码安装位置
  • 新的龙岗网站建设百度关键词热度查询
  • 十堰网站建设价格重庆百度seo代理
  • php做的网站预览世界杯大数据
  • 兰州模板网站建设佛山关键词排名工具
  • 200M电信宽带做网站网店运营
  • 怎么样给公司做网站互联网营销师是什么
  • wordpress文章页修改seo优化搜索结果
  • 先做网站还是先收集样品培训总结怎么写
  • 国外wordpress电影模板seo网站分析工具
  • 长春网站建设首选网诚传媒深圳seo技术
  • 用空间做网站如何做好安全搜索推广渠道有哪些
  • 网站建立于网页设计网络推广平台有哪些?
  • 淮北电子商务网站建设厦门seo排名优化公司
  • 模板网站怎么做做网络推广为什么会被抓
  • 北京seoqq群福州短视频seo公司
  • 税务门户网站建设成果整站优化cms
  • 做网站工资待遇如何做电商新手入门
  • 深圳跨境电商公司排名seo怎么做整站排名
  • 企业建设好一个网站后 如何进行网站推广大庆建站公司
  • 网站播放大视频如何做哈尔滨seo服务
  • wordpress+任务发布插件网站如何做seo推广
  • 如何做网站反链怎么样在百度上免费推广
  • 做网站需要数据库么seo搜索优化待遇
  • gogogo高清在线观看视频成都百度快照优化排名
  • 网站建设客户评价推广有奖励的app平台