会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132465个问题

螢幕截圖 2021-06-01 下午11.58.19.png

老師,我想問問為什麼 print(add(20,50)*10) 那里會重新出多一次 sum 然後下一行又出return了的值?? 要怎樣做才只出return的值?? 謝謝老師!


Python 全系列/第一阶段:Python入门/函数和内存分析 20851楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 20852楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask视图基础和URL 20855楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 20856楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 20858楼

老师号,请问为什么我的墙壁与子弹碰撞后不会消失?

'''
新增功能:
    1.实现子弹与墙壁的碰撞

'''

import pygame, time,random  #导入包
from pygame.sprite import Sprite

WIN_WIDTH = 700     #框架大小,颜色
WIN_HEIGHT = 500
BG_COLOR = pygame.Color(0, 0, 0)
TEXT_COLOR = pygame.Color(245, 0, 0)


class MainGame():       #主类
    window = None       #列表,方便储存
    my_tank = None
    #存储敌方坦克的列表  定义敌方坦克的数量
    enemyTankList=[]
    enemyTankAmount=6
    myBulletList=[]       #存储我方子弹
    eBulletList = []  #敌方子弹列表
    ExplodeList = []
    WallList = []

    def startGame(self):        #开始游戏
        pygame.display.init()  # 初始化窗口
        MainGame.window = pygame.display.set_mode([WIN_WIDTH, WIN_HEIGHT])     #初始化游戏窗口大小
        self.createMyTank()
        #初始化敌方坦克,添加到列表中
        self.createETank()
        pygame.display.set_caption('坦克世界1.0')
        while True:     #循环遍历
            time.sleep(0.02)
            MainGame.window.fill(BG_COLOR)
            self.event()        #获取事件
            MainGame.window.blit(self.showText('敌方坦克剩余%d' %len(MainGame.enemyTankList)), (10, 10))
            if MainGame.my_tank and MainGame.my_tank.live:
                MainGame.my_tank.showTank()
            else:
                del MainGame.my_tank
                MainGame.my_tank = None
            #循环遍历敌方坦克列表,展示
            self.blitEnemyTank()
            #调用渲染子弹列表定方法
            self.blitBullet()
            self.blitEBullet()
            if MainGame.my_tank and MainGame.my_tank.live:
                if not MainGame.my_tank.stop:  # 开关启动才可以移动
                    MainGame.my_tank.move()
            self.displayExplode()
            self.createWall()
            self.blitWall()
            pygame.display.update()

    def createMyTank(self):
        MainGame.my_tank = Tank(350, 400)

    def createETank(self):
        top = 100
        #循环生成敌方坦克
        for i in range(MainGame.enemyTankAmount):
            left = random.randint(0,600)
            speed=random.randint(4,6)
            enemy=EnemyTank(left,top,speed)
            MainGame.enemyTankList.append(enemy)        #加入进列表

    def blitEnemyTank(self):
        for enemyTank in MainGame.enemyTankList:
            if enemyTank.live:
                enemyTank.showTank()
                enemyTank.randMove()
            #调用敌方坦克射击
                eBullet=enemyTank.shoot()
            #如果子弹为none,不加入列表
                if eBullet:
            #加载子弹到敌方子弹列表
                    MainGame.eBulletList.append(eBullet)
            else:
                MainGame.enemyTankList.remove(enemyTank)



    def blitBullet(self):
        for bullet in MainGame.myBulletList:
            #如果子弹活着,绘制出来,否则移除
            if bullet.live:
                bullet.showBullet()
                bullet.moveBullet()
                #调用子弹与敌坦克碰撞方法
                bullet.hitEnemyTank()
                bullet.hitWalls()
            else:
                MainGame.myBulletList.remove(bullet)

    def blitEBullet(self):
        for eBullet in MainGame.eBulletList:
            #如果子弹活着,绘制出来,否则移除
            if eBullet.live:
                eBullet.showBullet()
                eBullet.moveBullet()
                eBullet.hitWalls()
                if MainGame.my_tank and MainGame.my_tank.live:
                    eBullet.hitMyTank()
            else:
                MainGame.eBulletList.remove(eBullet)

    def createWall(self):
        for i in range(1,4):
            wall= Wall(160 * i, 230)
            MainGame.WallList.append(wall)

    def blitWall(self):
        for wall in MainGame.WallList:
            if wall.live:
                wall.displayWall()
            else:
                MainGame.WallList.remove(wall)

    def displayExplode(self):
        for explode in MainGame.ExplodeList:
            if explode.live:
                explode.showExplosion()
            else:
                MainGame.ExplodeList.remove(explode)

    def stopGame(self):
        pass

    def endGame(self):
        print('谢谢')
        exit()

    def showText(self, text):  # 绘制文字
        pygame.font.init()  # 文字初始化
        # print(pygame.font.get_fonts())      #查询所有字体
        font = pygame.font.SysFont('kaiti', 18)  # 获取字体对象
        textSurface = font.render(text, True, TEXT_COLOR)
        return textSurface

    def event(self):
        eventList = pygame.event.get()  # 获取所有时间
        for event in eventList:  # 遍历事件
            if event.type == pygame.QUIT:  # 判断按了什么键 #如果是退出就关闭窗口
                self.endGame()

            if event.type == pygame.KEYDOWN:        #event.type=事件类型,event.key=事件按键
                # 判断是上下左右键
                if event.key == pygame.K_ESCAPE and not MainGame.my_tank:
                    self.createMyTank()

                if MainGame.my_tank and MainGame.my_tank.live:
                    if event.key == pygame.K_LEFT:
                        MainGame.my_tank.direction = 'L'
                        MainGame.my_tank.stop = False
                        # MainGame.my_tank.move()
                    # print('按下左键,向左移动')
                    elif event.key == pygame.K_RIGHT:
                        MainGame.my_tank.direction = 'R'
                        MainGame.my_tank.stop = False
                        # MainGame.my_tank.move()
                    # print('按下右键,向右移动')
                    elif event.key == pygame.K_UP:
                        MainGame.my_tank.direction = 'U'
                        MainGame.my_tank.stop = False
                        # MainGame.my_tank.move()
                    # print('按下上键,向上移动')
                    elif event.key == pygame.K_DOWN:
                        MainGame.my_tank.direction = 'D'
                        MainGame.my_tank.stop = False
                        # MainGame.my_tank.move()
                    # print('按下下键,向下移动')
                    elif event.key == pygame.K_SPACE:
                        print('发射子弹')
                        #产生子弹,加入列表
                        if len(MainGame.myBulletList) < 3:        #屏幕内子弹最多只为3
                            m = Bullet(MainGame.my_tank)
                            MainGame.myBulletList.append(m)
                        else:
                            print('子弹数量不足')     #不然就显示不足
                        print('当前屏幕中的子弹数量为:%d'%len(MainGame.myBulletList))


            if event.type == pygame.KEYUP:
                if event.key == pygame.K_UP or event.key == pygame.K_DOWN or event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                    if MainGame.my_tank and MainGame.my_tank.live:
                        MainGame.my_tank.stop = True

class BaseItem(Sprite):
    def __init__(self,color,width,height):
        pygame.sprite.Sprite.__init__(self)


class Tank(BaseItem):
    # 添加距离左边left,距离上面top
    def __init__(self, left, top):
        self.images = {'U': pygame.image.load('photo/tank/p1tankU.gif'),
                       'D': pygame.image.load('photo/tank/p1tankD.gif'),
                       'L': pygame.image.load('photo/tank/p1tankL.gif'),
                       'R': pygame.image.load('photo/tank/p1tankR.gif')
                       }
        self.direction = 'L'
        # 根据当前图片方向获取图片
        self.image = self.images[self.direction]
        # 根据当前图片获取区域
        self.rect = self.image.get_rect()
        # 设置left top距离
        self.rect.left = left
        self.rect.top = top
        self.speed = 4
        self.stop = True
        self.live = True

    def move(self):
        # 判断坦克方向进行移动
        if self.direction == 'U':
            if self.rect.top > 0:
                self.rect.top -= self.speed
        elif self.direction == 'D':
            if self.rect.top + self.rect.height < WIN_HEIGHT:
                self.rect.top += self.speed
        elif self.direction == 'L':
            if self.rect.left > 0:
                self.rect.left -= self.speed
        elif self.direction == 'R':
            if self.rect.left + self.rect.height < WIN_WIDTH:
                self.rect.left += self.speed

    def shoot(self):
        return Bullet(self)

    def showTank(self):
        # 获取展示的对象
        self.image = self.images[self.direction]
        # 使用blit方法展示
        MainGame.window.blit(self.image, self.rect)


class myTank(Tank):
    def __init__(self):
        pass


class EnemyTank(Tank):
    def __init__(self,left,top,speed):
        #super(enemyTank,self).__init__(left,top)
        self.live = True
        self.images={
            'U':pygame.image.load('photo/tank/enemy1U.gif'),
            'D': pygame.image.load('photo/tank/enemy1D.gif'),
            'L': pygame.image.load('photo/tank/enemy1L.gif'),
            'R': pygame.image.load('photo/tank/enemy1R.gif')
        }
        #随机生成坦克方向
        self.direction=self.randDirection()
        #根据方向获取图片
        self.image=self.images[self.direction]
        #区域
        self.rect=self.image.get_rect()
        self.rect.left=left
        self.rect.top=top
        self.speed=speed
        #移动开关
        self.flag=True
        #步数变量
        self.step = 60

    def randDirection(self):
        num=random.randint(1,4)
        if num==1:
            return'U'
        elif num==2:
            return'D'
        elif num== 3:
            return'L'
        elif num==4:
            return'R'

    def randMove(self):
        if self.step <= 0:
            self.direction = self.randDirection()
            self.step=70
        else:
            self.move()
            #步数递减
            self.step -= 1

    def shoot(self):
        num = random.randint(1,1000)
        if num <= 25:
            return Bullet(self)


class Bullet(BaseItem):
    def __init__(self,tank):
        self.image=pygame.image.load('photo/tank/enemymissile.gif')
        #坦克方向=子弹方向
        self.direction=tank.direction
        #获取区域
        self.rect=self.image.get_rect()
        #子弹left top与方向有关 画图计算
        if self.direction == 'U':
            self.rect.left= tank.rect.left+tank.rect.width/2-self.rect.width/2
            self.rect.top= tank.rect.top-self.rect.height
        elif self.direction =='D':
            self.rect.left=tank.rect.left+tank.rect.width/2-self.rect.width/2
            self.rect.top=tank.rect.top+tank.rect.height
        elif self.direction == 'L':
            self.rect.left = tank.rect.left - self.rect.width / 2 - self.rect.width / 2
            self.rect.top = tank.rect.top + tank.rect.width/2-self.rect.width/2
        elif self.direction == 'R':
            self.rect.left = tank.rect.left + tank.rect.width
            self.rect.top = tank.rect.top + tank.rect.width/2-self.rect.width/2
        self.speed=6
        #用来记录子弹是否碰撞
        self.live = True

    def showBullet(self):
        #加载图片surface到窗口
        MainGame.window.blit(self.image,self.rect)

    def moveBullet(self):
        if self.direction == 'U':
            if self.rect.top > 0:
                self.rect.top -= self.speed
            else:       #修改状态值
                self.live=False
        elif self.direction == 'D':
            if self.rect.top + self.rect.height < WIN_HEIGHT:
                self.rect.top += self.speed
            else:
                self.live=False
        elif self.direction == 'L':
            if self.rect.left > 0:
                self.rect.left -= self.speed
            else:
                self.live=False
        elif self.direction == 'R':
            if self.rect.left + self.rect.width < WIN_WIDTH:
                self.rect.left += self.speed
            else:
                self.live=False

    #新增子弹碰撞敌方坦克方法
    def hitEnemyTank(self):
        for eTank in MainGame.enemyTankList:
            if pygame.sprite.collide_rect(eTank,self):
                #打中产生爆炸效果,加入爆炸效果列表
                explode = explosionEffect(eTank)
                MainGame.ExplodeList.append(explode)
                eTank.live = False
                self.live = False
                
    def hitMyTank(self):
        if pygame.sprite.collide_rect(self,MainGame.my_tank):
    # 产生爆炸效果,加入到爆炸效果列表
            explode = explosionEffect(MainGame.my_tank)
            MainGame.ExplodeList.append(explode)
            #修改子弹状态
            self.live = False
            #修改我方坦克状态
            MainGame.my_tank.live = False

    def hitWalls(self):
        for wall in MainGame.WallList:
            if pygame.sprite.collide_rect(wall,self):
                self.live = False
                wall.hp -= 1
                if wall.hp <= 0:
                    wall.live = False


class Wall():
    def __init__(self,left,top):
        self.image = pygame.image.load('photo/tank/steels.gif')
        self.rect = self.image.get_rect()
        self.rect.left = left
        self.rect.top = top
        self.live = True    #判断墙壁是否应该在窗口中展示
        self.hp = 5     #墙壁生命值

    def displayWall(self):
        MainGame.window.blit(self.image,self.rect)


class explosionEffect():
    def __init__(self,tank):
        self.rect = tank.rect
        self.step = 0
        self.images = [
            pygame.image.load('photo/tank/blast0.gif'),
            pygame.image.load('photo/tank/blast1.gif'),
            pygame.image.load('photo/tank/blast2.gif'),
            pygame.image.load('photo/tank/blast3.gif'),
            pygame.image.load('photo/tank/blast4.gif')
        ]
        self.image = self.images[self.step]
        self.live = True

    def showExplosion(self):
        if self.step < len(self.images):
            MainGame.window.blit(self.image, self.rect)
            self.image = self.images[self.step]
            self.step += 1

        else:
            self.live = False
            self.step = 0


class Music():
    def __init__(self):
        pass

    def playmusic(self):
        pass


if __name__ == '__main__':
    MainGame().startGame()


Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 20859楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 20860楼

老师你好,在做这个蓝莓派项目首页时,我在想如果按照视频老师讲的那样去设计,会不会引起比较严重的回流和重绘的问题?例如首页的轮播图,视频里老师讲的是只留一个最外层的div元素,其余的元素全部都通过js动态的创建:

 <!--顶部轮播  这种做法会引起回流和重绘-->
    <div class="dblb"> </div>
//banner.js
(function() {


    //首页轮播图

    //直接进入页面后自动发送Ajax请求
    $.ajax({
        type: 'get',
        url: 'php/getTopSwiperData.php',
        dataType: 'json',
        success: function(res) {
            // console.log(res.swiperinfo);
            var swiperInfoArr = res.swiperinfo;

            //选中swiper容器
            var dblb = document.querySelector('.dblb');

            //构建swiper容器
            var swiperhd = document.createElement('div');
            swiperhd.className = 'swiper-container swiper-hd';
            dblb.appendChild(swiperhd);


            //构建wrapper
            var swiperhd_wraper = document.createElement('div');
            swiperhd_wraper.className = 'swiper-wrapper';
            swiperhd.appendChild(swiperhd_wraper);

            //构建slide
            for (var i = 0; i < swiperInfoArr.length; i++) {

                //每一个slide容器
                var slideDiv = document.createElement('div'); //创建元素
                slideDiv.className = 'swiper-slide'; //给创建的元素添加类名
                slideDiv.style.backgroundImage = 'url("' + swiperInfoArr[i].imgUrl + '")'; //给创建的元素添加背景图片
                swiperhd_wraper.appendChild(slideDiv);

                //每一个slide里面的内容
                var contDiv = document.createElement('div'); //创建元素
                contDiv.className = 'ss-hd-text ani'; //给创建的元素添加类名
                contDiv.setAttribute('swiper-animate-effect', 'bounceInRight'); //创建属性并赋值
                contDiv.setAttribute('swiper-animate-duration', '0.3s'); //创建属性并赋值

                slideDiv.appendChild(contDiv);

                //每一个slide里面的文本标题
                var h1 = document.createElement('h1');
                h1.setAttribute('align', 'center');
                h1.innerHTML = swiperInfoArr[i].dataTitle;
                contDiv.appendChild(h1);

                //每一个slide里面的文本主体内容
                var p = document.createElement('p');
                p.innerHTML = swiperInfoArr[i].dataContent;

                contDiv.appendChild(p);
            }

            //构建wrapper平级的pagination
            var swiperhd_page = document.createElement('div');
            swiperhd_page.className = 'swiper-pagination hd-page';
            swiperhd.appendChild(swiperhd_page);

            //设置自动轮播
            // var mySwiper1 = new Swiper('.swiper-container1', {
            //     pagination: '.swiper-pagination',
            //     autoplay: 2000,
            //     speed: 1000,
            //     autoplayDisableOnInteraction: false,
            //     parallax: true,
            //     loop: true
            // });

            //swiper构建完毕后初始化
            var swiper_hd = new Swiper('.swiper-hd', {
                pagination: '.hd-page',
                onInit: function(swiper) {
                    swiperAnimateCache(swiper); //隐藏动画元素
                    swiperAnimate(swiper); //初始化完成,开始动画
                },
                onSlideChangeEnd: function(swiper) {
                    swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
                }
            });



        }
    });


})();

这是按照视频里老师的做法然后设计的轮播图;

然后我就在想可不可以换一种做法,例如首页的乐章部分,我还是像以前的做法那样,把它的静态布局全部写好,只是把需要后台填充的内容部分情况,意思就是只写个框架,然后通过php和js联合去获取后台数据,大致如下:

<!-- 主体内容区域 -->
    <div class="main">
        <!---------------------乐章板块  start -------------------->
        <div class="product p-yz" id="p_yz">
            <a class="p-title" href="#">
                <span class="p-title-c">乐章</span>
                <div class="icon"><img src="" alt="" /></div>
                <span class="p-title-e">MOVEMENT</span>
            </a>
            <div class="p-details">
                <div class="swiper-container" id="swiper-container2">
                    <div class="swiper-wrapper">
                        <!------------------------ 第一屏4个  start----------------------->
                        <div class="swiper-slide swiper-p-yz">
                            <!--产品展示里面的大块,可以动态添加,里面的数据来自后台(需适配)-->
                            <ul class="clearFix">
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!------------------------ 第一屏4个  end----------------------->

                        <!------------------------ 第二屏4个  start----------------------->
                        <div class="swiper-slide swiper-p-yz">
                            <!--产品展示里面的大块,可以动态添加,里面的数据来自后台(需适配)-->
                            <ul class="clearFix">
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!------------------------ 第二屏4个  end----------------------->

                        <!------------------------ 第三屏4个  start----------------------->
                        <div class="swiper-slide swiper-p-yz">
                            <!--产品展示里面的大块,可以动态添加,里面的数据来自后台(需适配)-->
                            <ul class="clearFix">
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!------------------------ 第三屏4个  end----------------------->
                    </div>
                    <!--小圆点 -->
                    <div class="swiper-pagination"></div>
                </div>
            </div>
        </div>
        <!---------------------乐章板块  end -------------------->
    </div>
(function() {
//yuezhang1.js

    //直接进入页面后自动发送Ajax请求
    $.ajax({
        type: 'get',
        url: 'php/yuezhang1Data.php',
        dataType: 'json',
        success: function(res) {

            var yuezhang1info = res.yuezhang1info;

            for (var j = 0; j < yuezhang1info.length; j++) {

                //选择元素
                var artical_pic = document.querySelectorAll('.artical-pic');
                for (var i = 0; i < artical_pic.length; i++) {
                    artical_pic[i].src = yuezhang1info[j].yzPic;
                    // console.log(artical_pic[i]);
                }

                //选择元素
                var artical_title = document.querySelectorAll('.artical-title');
                for (var n = 0; n < artical_title.length; n++) {
                    artical_title[n].innerHTML = yuezhang1info[j].articalTitle;
                }

                //选择元素
                var author = document.querySelectorAll('.author');
                for (var m = 0; m < author.length; m++) {
                    author[m].innerHTML = yuezhang1info[j].author;
                }

                //选择元素
                var artical_cont = document.querySelectorAll('.artical-cont');
                for (var k = 0; k < artical_cont.length; k++) {
                    artical_cont[k].innerHTML = yuezhang1info[j].articalCont;
                }

                //选择元素
                var p_yz_date = document.querySelectorAll('.p-yz-date');
                for (var l = 0; l < p_yz_date.length; l++) {
                    p_yz_date[l].innerHTML = yuezhang1info[j].date;
                }

                //选择元素
                var p_yz_hour_minute1 = document.querySelectorAll('.p-yz-hour_minute1');
                for (var o = 0; o < p_yz_hour_minute1.length; o++) {
                    p_yz_hour_minute1[o].innerHTML = yuezhang1info[j].time;
                }

                //选择元素
                var zan_num = document.querySelectorAll('.zan-num');
                for (var p = 0; p < zan_num.length; p++) {
                    zan_num[p].innerHTML = yuezhang1info[j].zan;
                }

                //选择元素
                var pl_num = document.querySelectorAll('.pl-num');
                for (var p = 0; p < pl_num.length; p++) {
                    pl_num[p].innerHTML = yuezhang1info[j].pl;
                }
            }

            //构建pagination
            var mySwiper1 = new Swiper('#swiper-container1', {
                pagination: '.swiper-pagination',
                autoplay: 2000,
                speed: 1000,
                autoplayDisableOnInteraction: false,
                parallax: true,
                loop: true
            });


            function otherLunbo(swiperContainer) {
                var mySwiper2 = new Swiper(swiperContainer, {
                    pagination: '.swiper-pagination',
                    loop: true,
                    noSwiping: true,
                    autoplayDisableOnInteraction: false
                });
                mySwiper2.params.autoplay = false;
            }
            otherLunbo("#swiper-container2");
            otherLunbo("#swiper-container3");
            otherLunbo("#swiper-container4");
            otherLunbo("#swiper-container5");
        }
    });
})();
<?php
//yuezhang1Data.php
 $success=array('msg'=>'ok');

 //连接数据库 pdo方式
 try{
    $pdo=new PDO('mysql:host=localhost;dbname=lanmeipai;port=3306','root','123456');
   }catch(PDOException $e){
       echo $e->getMessage();
   }

   //设置字符集
   $pdo->exec('set names utf8');

   //查询数据库里的表
   $sql="select *  from index_yzinfo  where 1";

   //prepare()方法负责准备要执行的查询
    //execute()方法使用一组给定的列参数反复地执行查询
    $result=$pdo->prepare($sql);
    $result->execute();

    //绑定数据
    $result->bindColumn(1,$yzPic);//第一例
    $result->bindColumn(2,$articalTitle);//第二例
    $result->bindColumn(3,$author);//第三例
    $result->bindColumn(4,$articalCont);
    $result->bindColumn(5,$date);
    $result->bindColumn(6,$time);
    $result->bindColumn(7,$zan);
    $result->bindColumn(8,$pl);
  

    $info=[];//存放数据

    //循环输出数据库里的数据
    for($i=0;$result->fetch(PDO::FETCH_COLUMN);$i++){
        $info[$i]=array('yzPic'=>$yzPic,'articalTitle'=>$articalTitle,'author'=>$author,'articalCont'=>$articalCont,'date'=>$date,'time'=>$time,'zan'=>$zan,'pl'=>$pl);
    }

    //将索引到的数据放入$success中并进行返回
    $success['yuezhang1info']=$info;
    echo json_encode($success);

//  echo json_encode($success);
?>

但是我发现我这样设计后,数据倒是有,但是为什么每一个小模块里的数据获取的都是数据里的最后一个:


图片.png




图片.png

希望老师能帮我解决这个问题和疑惑。

最后这是我的源代码:

lanmeipai.zip



还有最后想吐槽一下自己,做项目时感觉好多相关知识都模糊了,然后就是边写项目边回去翻看笔记啥的,然后再接着写,

WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 20861楼
Python 全系列/第一阶段:Python入门/编程基本概念 20862楼

避坑!!!
博客:
https://blog.csdn.net/a755199443/article/details/92637977

可以正常运行的正常shell脚本代码(两处中文处记得更改!):

#!/bin/bash

 

cd `dirname $0`

 

CUR_SHELL_DIR=`pwd`

CUR_SHELL_NAME=`basename ${BASH_SOURCE}`

 

JAR_NAME="项目名(如eureka-1.0-SNAPSHOT.jar)"

JAR_PATH=$CUR_SHELL_DIR/$JAR_NAME

 

#JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024m -XX:PermSize=128m"

JAVA_MEM_OPTS=""

 

SPRING_PROFILES_ACTIV="-Dspring.profiles.active=配置文件变量名称(如eureka1)"

#SPRING_PROFILES_ACTIV=""

LOG_DIR=$CUR_SHELL_DIR/logs

LOG_PATH=$LOG_DIR/${JAR_NAME%..log

 

echo_help()

{

    echo -e "syntax: sh $CUR_SHELL_NAME start|stop"

}

 

if [ -z $1 ];then

    echo_help

    exit 1

fi

 

if [ ! -d "$LOG_DIR" ];then

    mkdir "$LOG_DIR"

fi

 

if [ ! -f "$LOG_PATH" ];then

    touch "$LOG_DIR"

fi

 

if [ "$1" == "start" ];then

 

    # check server

    PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`

    if [ -n "$PIDS" ]; then

        echo -e "ERROR: The $JAR_NAME already started and the PID is ${PIDS}."

        exit 1

    fi

 

    echo "Starting the $JAR_NAME..."

 

    # start

    nohup java $JAVA_MEM_OPTS -jar $SPRING_PROFILES_ACTIV $JAR_PATH >> $LOG_PATH 2>&1 &

 

    COUNT=0

    while [ $COUNT -lt 1 ]; do

        sleep 1

        COUNT=`ps  --no-heading -C java -f --width 1000 | grep "$JAR_NAME" | awk '{print $2}' | wc -l`

        if [ $COUNT -gt 0 ]; then

            break

        fi

    done

    PIDS=`ps  --no-heading -C java -f --width 1000 | grep "$JAR_NAME" | awk '{print $2}'`

    echo "${JAR_NAME} Started and the PID is ${PIDS}."

    echo "You can check the log file in ${LOG_PATH} for details."

 

elif [ "$1" == "stop" ];then

 

    PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`

    if [ -z "$PIDS" ]; then

        echo "ERROR:The $JAR_NAME does not started!"

        exit 1

    fi

 

    echo -e "Stopping the $JAR_NAME..."

 

    for PID in $PIDS; do

        kill $PID > /dev/null 2>&1

    done

 

    COUNT=0

    while [ $COUNT -lt 1 ]; do

        sleep 1

        COUNT=1

        for PID in $PIDS ; do

            PID_EXIST=`ps --no-heading -p $PID`

            if [ -n "$PID_EXIST" ]; then

                COUNT=0

                break

            fi

        done

    done

 

    echo -e "${JAR_NAME} Stopped and the PID is ${PIDS}."

else

    echo_help

    exit 1

fi


JAVA 全系列/第十九阶段:Spring Cloud微服务技术栈/Spring Cloud(旧) 20863楼

mavenDemo1.zip

老师 能帮我看下嘛,tomcat一直启动不成功,下面是信息

"C:\Program Files\Java\jdk1.8.0_161\bin\java.exe" -Dmaven.multiModuleProjectDirectory=E:\mavenDemo1 "-Dmaven.home=E:\编译软件\idea\IntelliJ IDEA 2020.3.3\plugins\maven\lib\maven3" "-Dclassworlds.conf=E:\编译软件\idea\IntelliJ IDEA 2020.3.3\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=E:\编译软件\idea\IntelliJ IDEA 2020.3.3\plugins\maven\lib\maven-event-listener.jar" "-javaagent:E:\编译软件\idea\IntelliJ IDEA 2020.3.3\lib\idea_rt.jar=61505:E:\编译软件\idea\IntelliJ IDEA 2020.3.3\bin" -Dfile.encoding=UTF-8 -classpath "E:\编译软件\idea\IntelliJ IDEA 2020.3.3\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar;E:\编译软件\idea\IntelliJ IDEA 2020.3.3\plugins\maven\lib\maven3\boot\plexus-classworlds.license" org.codehaus.classworlds.Launcher -Didea.version=2020.3.3 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run

[INFO] Scanning for projects...

[INFO] 

[INFO] -----------------------< org.example:mavenDemo1 >-----------------------

[INFO] Building mavenDemo1 1.0-SNAPSHOT

[INFO] --------------------------------[ war ]---------------------------------

[INFO] 

[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ mavenDemo1 >>>

[INFO] 

[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mavenDemo1 ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] Copying 1 resource

[INFO] Copying 6 resources

[INFO] 

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ mavenDemo1 ---

[INFO] Nothing to compile - all classes are up to date

[INFO] 

[INFO] <<< tomcat7-maven-plugin:2.2:run (default-cli) < process-classes @ mavenDemo1 <<<

[INFO] 

[INFO] 

[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ mavenDemo1 ---

[INFO] Running war on http://localhost:8080/

[INFO] Using existing Tomcat server configuration at E:\mavenDemo1\target\tomcat

[INFO] create webapp with contextPath: 

六月 01, 2021 9:05:07 下午 org.apache.coyote.AbstractProtocol init

信息: Initializing ProtocolHandler ["http-bio-8080"]

六月 01, 2021 9:05:07 下午 org.apache.coyote.AbstractProtocol init

严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]

java.net.BindException: Address already in use: JVM_Bind <null>:8080

at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:407)

at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:623)

at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)

at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)

at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)

at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)

at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1238)

at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:592)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)

at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)

at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

Caused by: java.net.BindException: Address already in use: JVM_Bind

at java.net.DualStackPlainSocketImpl.bind0(Native Method)

at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)

at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)

at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)

at java.net.ServerSocket.bind(ServerSocket.java:375)

at java.net.ServerSocket.<init>(ServerSocket.java:237)

at java.net.ServerSocket.<init>(ServerSocket.java:181)

at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)

at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:394)

... 36 more


六月 01, 2021 9:05:07 下午 org.apache.catalina.core.StandardService initInternal

严重: Failed to initialize connector [Connector[HTTP/1.1-8080]]

org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)

at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)

at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341)

at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1238)

at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:592)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)

at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)

at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed

at org.apache.catalina.connector.Connector.initInternal(Connector.java:983)

at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

... 31 more

Caused by: java.net.BindException: Address already in use: JVM_Bind <null>:8080

at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:407)

at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:623)

at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)

at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)

at org.apache.catalina.connector.Connector.initInternal(Connector.java:981)

... 32 more

Caused by: java.net.BindException: Address already in use: JVM_Bind

at java.net.DualStackPlainSocketImpl.bind0(Native Method)

at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)

at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)

at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)

at java.net.ServerSocket.bind(ServerSocket.java:375)

at java.net.ServerSocket.<init>(ServerSocket.java:237)

at java.net.ServerSocket.<init>(ServerSocket.java:181)

at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)

at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:394)

... 36 more


六月 01, 2021 9:05:07 下午 org.apache.catalina.core.StandardService startInternal

信息: Starting service Tomcat

六月 01, 2021 9:05:07 下午 org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: Apache Tomcat/7.0.47

六月 01, 2021 9:05:09 下午 org.apache.catalina.core.ApplicationContext log

信息: No Spring WebApplicationInitializer types detected on classpath


JAVA 全系列/第六阶段:项目管理与SSM框架/SpringMVC 20864楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637