【游侠股市 源码】【七哥源码】【斗破传奇源码】组播 源码_组播源码分析

2024-12-26 15:24:46 来源:ubuntu 源码安装nfs 分类:综合

1.UE4 Delegate(委托)相关源码分析(一)
2.Tomcat9.0?
3.为什么感觉电信的组播组播iptv没广电清晰?
4.一文讲解Linux内核——组播路由协议原理
5.springboot和jsp的区别?

组播 源码_组播源码分析

UE4 Delegate(委托)相关源码分析(一)

       UE4委托是强效设计,尤其在大型项目中大放异彩。源码源码无论是分析模块解耦、扩展接口还是组播组播实现替换自定义实现,其价值巨大。源码源码未使用委托的分析游侠股市 源码程序员,当功能复杂且相互关联时,组播组播项目管理必定混乱。源码源码C++中,分析委托实现基于函数指针,组播组播核心是源码源码存储并调用。然而,分析成员函数指针的组播组播存在让C++委托实现变得独特而高效。UE4内置强大、源码源码实用的分析代理机制,本系列旨在深入解析代理源码,并提供实例应用。

       打开代理宏定义文件,七哥源码虽近行,主体类型仅几种。定义事件`DECLARE_EVENT`显得特别,其用途似乎不小但使用未广泛。事件与组播委托相似,但允许仅定义事件的类调用`Broadcast`、`IsBound`和`Clear`函数,限制外部类对这些函数的访问,便于在公共接口中公开事件。测试发现,外部仍然能调用这些函数,官方文档描述与实际不符。不确定是否为版本更新或使用方法问题。

       普通单播代理定义`TBaseDelegate`模板类,继承`FDelegateBase`,使用`DelegateAllocator`存储`IDelegateInstance`对象,其中包含代理实现。斗破传奇源码普通多播代理则定义`TMulticastDelegate`模板类,继承`TBaseMulticastDelegate`,核心是`TInvocationList`数组,存储多个代理处理对象,并通过添加和删除函数维护数组,实现多播逻辑。广播时,遍历数组依次调用各代理处理对象。使用多播时,只需考虑绑定代理,无需解绑,无效代理会自动移除。

       动态单播代理定义类`TBaseDynamicDelegate`,继承`TScriptDelegate`,存储`TWeakPtr(UObject指针)`和`FName(函数名称)`,通过反射系统找到对应`UFunction`执行。动态代理依赖UE4强大反射系统,流量卡源码搭建绑定函数需加上`UFUNCTION()`宏。绑定函数时,`AddDynamic`等宏将函数指针转换为函数名称,或直接传递函数名称并调用`BindFunction`。动态多播可通过添加`BlueprintAssignable`标记,让蓝图使用并绑定。

       UE4委托实现多样,但核心在于管理回调,实现模块解耦与功能扩展。掌握其原理与应用,有助于更高效地构建大型项目。

Tomcat9.0?

       j2ee服务器有哪些

       ä¼—所周知,J2EE应用服务器百花齐放,种类众多。那么J2EE应用服务器有哪些?又有哪些功能呢?一起来看看吧!

       ä»ŽåŠŸèƒ½å®žçŽ°ä¸Šåˆ’分:

       æœ‰å®žçŽ°å®Œæ•´J2EE规范(fullprofile)的Weblogic,WebSphere,GlassFish

       æœ‰å®žçŽ°web应用规范(webprofile)的TomEE,JBoss/WildFly

       æœ‰åŸºæœ¬çš„Servlet及Jsp规范的Web容器(WebContainer)Tomcat,Jetty,Resin

       å›žé¡¾è¿‡åŽ»çš„年,各应用服务器市场占有率各有千秋。

       ä¸‹å›¾ä¸ºå„个应用服务器使用率饼图

       æˆ‘们看到,在众多J2EE应用服务器中,Tomcat使用率达到.%,稳坐第一。

       ç›¸è¾ƒå¹´ï¼ŒTomcat使用率大幅增长,增长将近%。

       æ•´ä½“而言,Tomcat做为Servlet和Jsp规范的参考实现(Referenceimplementation,简称RI),一般都会在第一时间实现规范的新特性并通过Oracle的CTS测试认证。目前最新的Tomcat9.0,虽还是alpha版,但已经实现了Servlet4.0草案,感兴趣的朋友,可以下载尝鲜哦!

       Tomcat是一个实现了JAVAEE标准的最小的WEB服务器,是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且开源免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范,启动界面如图:

       Tomcat是一款非常优秀的JavaWeb服务器,以致于很多开源Java应用服务器(如JOnAS)直接集成它作为servlet容器。

       Tomcat的总体结构

       Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的.童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚?!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个server.xml文件,你打开它瞄两眼看看,是不是发现server.xml文件中已经包含了上述的几个名称。

       Tomcat集群源码的类图

       ä»Žå›¾ä¸­æˆ‘们可以看出Tomcat集群包括以下几个方面的内容:

       Session:Session分为StandardSession与ClusterSession两种,后者用于Session复制。

       SessionManager:有用于集群Session管理的ClusterSession,也有用于对Session进行一般日常管理的,如PersistentManager,BackupManager,SimpleTcpReplicationManager。

       ç»„通迅框架:SessionManager调用组通讯框架进行Session的传输,Tomcat采用的组通

       è®¯æ¡†æž¶æ˜¯tribe,目前tribe已被独立为开放的apache工程。

       Cluster:方便集群管理而派生出的逻辑概念,可将实际物理机划分为一个Cluster,也可将一台物理机上不同端口的实例划分为一个Cluster,它有一个简单的实现类SimpleTcpCluster。

       1.1Session

       æœåŠ¡å™¨é›†ç¾¤é€šå¸¸æ“çºµä¸¤ç§session:

       1.Stickysessions:尽量让同一个客户请求由同一台服务器来处理,这样stickysessions就是存在于单机服务器中接受客户端请求的session,它不需要进行Session复制,如果这个单机失败的话,用户必须重新登录网站。

       2.Replicatedsessions:在一台服务器中的session状态被复制到集群的其他服务器上,无论何时,只要session改变了,session数据都要重新全部或部分(依据复制策略)被复制到其他服务器上。

       Tomcat支持以下三种session持久性类型:

       1.内存复制:在JVM内存中复制session状态,使用Tomcat自带的SimpleTcpCluster和SimpleTcpClusterManager类。

       2.数据库持久性:在这种类型中,session状态保存在一个关系数据库中,服务器使用org.apache.catalina.session.JDBCManager类从数据库中获取Session信息。

       3.基于文件的持久性:这里使用类org.apache.catalina.session.FileManager把session状态保存到一个文件系统。

       SessionManager

       Tomcat通过org.apache.catalina.Manager来管理Session,Manager接口总是和ContextContainer相关联。它主要负责session的建立、更新和销毁。该接口中一些重要的方法有:

       ç”¨æˆ·åœ¨Servlet中通过javax.servlet..ConnectException:Connectionrefused

       atjava.net.PlainSocketImpl.socketConnect(NativeMethod)

       atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:)

       atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:)

       atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:)

       atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:)

       atjava.net.Socket.connect(Socket.java:)

       atjava.net.Socket.connect(Socket.java:)

       atjava.net.Socket.(Socket.java:)

       atjava.net.Socket.(Socket.java:)

       atorg.apache.catalina.startup.Catalina.stopServer(Catalina.java:)

       atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

       atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:)

       atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:)

       atjava.lang.reflect.Method.invoke(Method.java:)

       atorg.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:)

       atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:)

       å°†tomcat9加入到系统服务列表中:

       è¿›å…¥åˆ°/etc/init.d目录中:

       cd/etc/init.d

       åˆ›å»ºtomcat9服务配置文件:

       vitomcat9

       å°†å¦‚下代码加入写入到tomcat9配置文件中:

       #idea-tomcatconfigstart---

       #!/bin/bash

       #description:TomcatStartStopRestart

       #processname:tomcat

       #chkconfig:

       JAVA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

       exportJAVA_HOME

       PATH=$JAVA_HOME/bin:$PATH

       exportPATH

       CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

       case$1in

       start)

       sh$CATALINA_HOME/bin/startup.sh

       ;;

       stop)

       sh$CATALINA_HOME/bin/shutdown.sh

       ;;

       restart)

       sh$CATALINA_HOME/bin/shutdown.sh

       sh$CATALINA_HOME/bin/startup.sh

       ;;

       esac

       exit0

       #chmodtomcat

       #chkconfig--addtomcat

       #chkconfig--leveltomcaton

       #chkconfig--listtomcat

       #idea-tomcatconfigend---

       é”®å…¥Esc并输入“:wq!”保持并退出;

       å…¶ä¸­çš„注意点是将JAVA_HOME和CATALINA_HOME变量设置成与我们当前配置相一致的路径;

       ä¸ºtomcat9分配可执行权限:

       chmod+xtomcat9

       å°†tomcat9纳入到系统的服务列表中,即添加tomcat9为系统服务:

       chkconfig--addtomcat9

       æŸ¥çœ‹å½“前系统服务都有哪些:

       chkconfig--list

       ä¹Ÿå¯ä»¥æŸ¥çœ‹æŒ‡å®šçš„系统服务,如这里我们指定tomcat9这个服务:

       chkconfig--listtomcat9

       æ‰“印如下信息:

       tomcat:off1:off2:on3:on4:on5:on6:off

       åˆ™è¡¨æ˜Žå·²å°†tomcat9设置为系统服务,2、3、4、5都为on表示可随系统自动启动;

       æˆ‘们可以在任意目录下执行关闭、启动、重启Tomcat9服务啦:

       .1关闭tomcat9服务:

       servicetomcat9stop

       .2启动tomcat9服务:

       servicetomcat9start

       .3重启tomcat9服务:

       servicetomcat9restart

       åŽè®°ï¼š

       linux系统中的/etc目录表示“设备”,意为与硬件设备相关的信息;

       /etc/init.d目录下的文件表示当前设备的初始化配置信息;

       å‘½ä»¤chkconfig表示添加(--add)、删除(--del)、查看(--list)系统服务;

       çœ‹äº†â€œåœ¨CentOS7上安装Tomcat9的方法教程”还想看:

       1.CentOS7安装配置图文教程

       2.在CentOS7中配置NIC绑定教程

       3.CentOS7设置网络自动启动教程

       4.Tomcat7.0的安装与配置

       5.centos7快速启动应用程序教程

如何在CentOS7上安装Tomcat9

       1通过SecureCRT连接到阿里云CentOS7服务器;

       2进入到目录/usr/local/中:

       cd/usr/local/

       3创建目录/usr/local/tools,如果有则忽略:

       mkdir-ptools

       4创建/usr/local/tomcat目录,如果已存在则忽略:

       mkdir-ptomcat

       5进入到目录/usr/local/tools中:

       cdtools/

       6下载apache-tomcat-9.0.0.M4.tar.gz文件:

       wget

       7解压缩apache-tomcat-9.0.0.M4.tar.gz:

       tar-zxvfapache-tomcat-9.0.0.M4.tar.gz

       8将通过解压得到的apache-tomcat-9.0.0.M4文件复制到/usr/local/tomcat目录中:

       mvapache-tomcat-9.0.0.M4../tomcat/

       9打开文件/etc目录下的profile文件:

       vim/etc/profile

       å°†å¦‚下代码追加到profile文件末尾:

       #idea-tomcat9configstart---

       CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4

       CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4

       PATH=$PATH:$CATALINA_BASE/bin

       exportPATHCATALINA_BASE

       #idea-tomcat9configend---

       ä¿æŒå¹¶æŽ¨å‡º:wq!

       ä¿®æ”¹tomcat的端口号和字符编码:

       è¿›å…¥åˆ°/usr/local/tomcat/apache-tomcat-9.0.0.M4/conf目录中:

       cd../tomcat/apache-tomcat-9.0.0.M4/conf

       æ‰“å¼€tomcat服务的配置文件server.xml:

       viserver.xml

       æ‰¾åˆ°å¦‚下代码:

       å°†å…¶ä¸­çš„改成HTTP协议的默认端口,改后的代码如下:

       å¢žåŠ manager-gui图形化管理界面的访问权限(不需要的话,此步骤可忽略):

       æ‰“å¼€tomcat的用户配置文件tomcat-users.xml:

       vitomcat-users.xml

       åœ¨æ ‡ç­¾å‰åŠ å…¥å¦‚下代码:

       è¿™é‡Œè®¾ç½®çš„username和password都是password,角色为manager-gui;

       é”®å…¥Esc并输入“:wq!”保持并退出;

       è¿›å…¥åˆ°/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin目录中:

       cd../bin/

       æ‰“å¼€vicatalina.sh文件:

       åœ¨#OSspecificsupport.前面加入如下代码:

为什么感觉电信的iptv没广电清晰?

       1. 广播电视总局主要作为行政机构管理电视视频类业务,不存在给运营商的码流减帧等说法。IPTV和有线电视用户对广播电视总局而言是一样的,IPTV本身也是广电控制的。

       2. 广电网络的电视传输制式是频分,将全部电视节目传输到电视,ffmpeg源码编译命令而IPTV的组播只推送用户选择的频道。频道的选择相当于码流的选择,可以节省传输带宽,频道切换速度极快。

       3. 运营商的传输带宽足以保证IPTV的带宽,光纤宽带发展多年,传输资源已经很充足。

       4. IPTV的清晰度不如广电的高清电视,可能是由于以下原因:IPTV提供商是否提供了高清频道和片源,机顶盒是否支持高清电视,电视是否支持高清电视,以及线缆质量是否合格。

       5. 虽然IPTV和广电在码流上相同,但片源本身的清晰度会影响效果。高清视频的转码可能造成编码损失,但通常不会影响清晰度。

       6. 传输网络带宽分配和质量会影响IPTV和广电的清晰度。广电的传输网络带宽分配稳定,而电信运营商的IPTV可能会在高峰期出现加载慢、卡顿的现象。

       7. IPTV和广电的传输网络质量不同,广电的传输网络质量普遍较好,而电信运营商的传输网络可能存在阻塞或路由断掉的问题。

       8. IPTV和广电的传输网络使用不同的技术,有线电视采用QAM调制,而IPTV通过互联网传输,可能存在压缩和码率降低的问题。

       9. IPTV和广电的码率可能不同,因为视频源不是同一套。IPTV视频来源于广电旗下的IPTV运营牌照公司,而DVB则由广电集团下的广电公司独立运营。

       . IPTV和广电的清晰度差异可能与转码质量有关。广电有线电视节目源是源码播出,无需二次转码制流,而IPTV需要经过转码制流来传输。

       . IPTV和广电的清晰度差异可能与传输方式有关。广电有线是广播式,同一时间所有用户接受的信号一样,而IPTV是点对点的播放模式。

       . IPTV和广电的清晰度差异可能与带宽有关。广电的白色线(同轴电缆)有非常大带宽,可以同时传几百套标清和几十套高清。

       . IPTV和广电的清晰度差异可能与设备有关。使用高清机顶盒和高清电视可以提高IPTV的清晰度。

       . IPTV和广电的清晰度差异可能与网络环境有关。网络环境差可能导致IPTV出现加载慢、卡顿的现象。

       . IPTV和广电的清晰度差异可能与用户体验有关。用户可能对IPTV和广电的清晰度有不同的感受,这可能与个人喜好、设备配置等因素有关。

一文讲解Linux内核——组播路由协议原理

       Linux内核中的组播路由协议原理解析

       在计算机网络中,组播是一种高效的数据传输方式,用于点对多点通信。不同于单播的点对点和广播的点对所有点,组播是向特定组发送信息,组内的所有接收者都能接收到。组播通过发送一份数据包,仅在需要的地方复制分发,避免了单播中服务器压力大和网络资源浪费的问题。

       组播技术的应用广泛,如音频/视频会议、数据分发、实时数据传输以及网络游戏。音频会议结合IP组播的数据共享,形成了强大且带宽效率高的多媒体系统,适合网络教学。数据分发则让大型企业可以高效地向远程节点推送信息,实时数据传输如点播服务,让大量用户同时接收实时内容成为可能。

       组播技术的特点在于节省网络带宽、减轻服务器负担,实现分布式应用的高效。然而,基于UDP的IP组播也存在包传送不可靠等问题。在组播实现技术上,组播体系结构包括主机-路由器的组成员关系协议(如IGMP)和路由器-路由器的组播路由协议,如MOSPF、PIM-SM、PIM-DM等,以及域间组播路由协议如MBGP、MSDP等。

       组播地址由特殊的IP地址(.0.0.0~...)构成,其中.0.0.0~.0.0.保留给特定用途,如所有组播成员和路由器。物理层的组播MAC地址也有专用格式。为了确保通信,需要建立IP到MAC的映射,这在Linux内核中是通过特定的协议和机制来实现的。

       深入理解Linux内核组播路由协议,对于优化网络性能和提升分布式应用的效率至关重要。欲了解更多内核源码高级知识,可加入开发交流Q群获取资料,参与技术分享。

springboot和jsp的区别?

       ssm和springboot的区别是什么?

       å›žç­”如下:

       åœ¨å¼€å‘中的区别还是存在的,虽然springboot简化了配置,但并不代表不需要编写配置文件,还是需要在自带的application.yml文件中去编写一些内容;只不过编写的方式变得简单了,虽然简单了,但是和SSM整合的方式还有些区别。

       åœ¨ä½¿ç”¨SSM开发的时候,多数会选择Jsp作为视图,但是springboot不推荐使用jsp,主推的是thymeleaf和freemarker等模板引擎,也造成了使用SSM开发到springboot开发也需要一定的学习成本。不过如果掌握了SSM的话,学习springboot也是水到渠成,异常的简单。

       ç›¸å…³ä»‹ç»ï¼š

       æºç‰¹å®šç»„播是一种区别于传统组播的新的业务模型,它使用组播组地址和组播源地址同时来标识一个组播会话,而不是向传统的组播服务那样只使用组播组地址来标识一个组播会话。

       SSM保留了传统PIM-SM模式中的主机显示加入组播组的高效性,但是跳过了PIM-SM模式中的共享树和RP(RendezvousPoint,集合点)规程。在传统PIM-SM模式中,共享树和RP规程使用(*,G)组对来表示一个组播会话,其中(G)表示一个特定的IP组播组,而(*)表示发向组播组G的任何一个源。

       SSM直接建立由(S,G)标识的一个组播最短路径树(SPT:ShortestPathTree),其中(G)表示一个特定的IP组播组地址,而(S)表示发向组播组G的特定源的IP地址。

       SSM的一个(S,G)对也被称为一个频道(Channel),以区分传统PIM-SM组播中的任意源组播组。由于ASM支持点到多点和多点到多点两种组播业务模式,因此源的发现过程是ASM复杂性的原因。

       ä¾‹å¦‚在PIM-SM模式中,用户点击浏览器中的组播内容,接收端设备只被通知到组播组的内容,而没有被通知到组播源的信息。而在SSM模式中,用户端将同时接收到组播源和组播组信息。

       å› æ­¤ï¼ŒSSM特别适合于点到多点的组播服务,例如网络娱乐频道、网络新闻频道、网络体育频道等业务,但如果要求多点到多点组播服务则需要ASM模式。

       ç¬¬äºŒç« ï¼šSpringBoot与JSP间不可描述的秘密

       springboot内部对jsp的支持并不是特别理想,而springboot推荐的视图是Thymeleaf,对于java开发人员来说还是大多数人员喜欢使用jsp,接下来我们来讲解下springboot是如何支持jsp的。

       æ•´åˆspringbootweb项目支持jsp作为视图输出。

       æ’宇少年在博客整理出来了SpringBoot、ApiBoot、SpringCloud的文章汇总【SpringBoot基础教程专题】,【SpringCloud基础教程专题】,【ApiBoot组件使用专题】

       æˆ‘们使用IntelliJIDEA工具来构建项目,首先我们需要创建一个springboot项目,如下图1所示.

       ç‚¹å‡»Next后输入一些项目的基本参数(包名,工程名,打包形式,maven形式构建等),如下图2所示:

       ç‚¹å‡»Next后选择我们预先加入到工程的springboot内置的jar包组件,我们这里选择一个web组件。如下图3所示:

       ç‚¹å‡»Next输入项目名称后店家Finish既可以完成了项目的构建。新构建的项目目录结构如下图4所示:

       å¯ä»¥çœ‹åˆ°ä¸Šå›¾ä¸­æ¯”我们lessonOne项目中多出来了一个类文件,ServletInitlalizer,打开该类我们不难发现它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当我们使用外部容器(后期文章讲解使用外部tomcat如何运行项目)运行项目时会自动加载并且装配。

       å®žçŽ°äº†SpringBootServletInitializer的子类需要重写一个configure方法,方法内自动根据LessontwoApplication.class的类型创建一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。

       æˆ‘们打开pom.xml(maven配置文件)可以看到我们之前构建项目时已经添加了web模块,而springboot给我们自动添加了spring-boot-starter-tomcat配置引入。springboot内部集成了tomcat组件,这里我们就不需要重复引入tomcat组件。

       æˆ‘们先来添加jsp的maven支持,如下图4所示:

       æˆ‘们还需要引入jsp对servlet容器的支持,如下图5所示:

       é™¤äº†ä¸Šé¢çš„jsp,servlet支持以外,如果你还需要在jsp页面使用jstl标签来处理界面逻辑,那么需要引入jstlmaven,如下图6所示:

       ä¸Šé¢é…ç½®å°±æ˜¯æˆ‘们本章需要的全部配置,那么我们先来尝试运行下项目是否已经可以正常运行。这里项目运行也可以使用IntelliJIDEA工具提供的组件来完成,如下图7所示,:

       ï¼ˆæ³¨æ„ï¼šå¦‚果你已经开启了另外一个springboot项目请先关闭,因为springboot内置的端口号都是这样会引起冲突)

       ç‚¹å‡»ç»¿è‰²ä¸‰è§’号即可开始运行项目,我们先来尝试下点击后看看控制台输入的日志信息。可以看到项目已经正常运行了,右上角的绿色三角号也变成了重启的按钮,如下图8所示:

       é¡¹ç›®è¿è¡Œå¦‚图9所示:

       å¯ä»¥çœ‹åˆ°é¡¹ç›®å·²ç»æ­£å¸¸è¿è¡Œï¼Œä½†æ˜¯æˆ‘们现在还没有配置,创建JSP文件,我们接下来开始配置,创建JSP。

       å¦‚果是使用过eclipse工具的人肯定知道jsp文件之前是在/webapp/WEB-INF/jsp目录下,那么我们也沿用eclipse的风格。

       1.在main目录下创建webapp文件夹

       2.在webapp下创建jsp文件夹如下图所示:

       3.修改application.properties文件让springmvc支持视图的跳转目录指向为/main/webapp/jsp,配置如下图所示:

       æˆ‘们在webapps/jsp目录下创建一个index.jsp用于测试我们的配置是否已经支持了jsp,新建jsp文件如下图所示:

       ä¸Šé¢å·¥ä½œæˆ‘们已经完成了jsp的所有配置,那么接下来我们需要配置springmvc的控制器,我们新建indexController如下图所示:

       å¯ä»¥çœ‹åˆ°ä¸Šå›¾æˆ‘们在IndexController配置文件内添加了index()方法配置了@RequestMapping注解来描述index()方法是一个可以被springmvc管理的请求视图。我们的index()方法返回值这里是"index"。

       ä¸ºä»€ä¹ˆæˆ‘们返回"index",还记得上述步骤中配置的application.properties文件的springmvc请求前缀以及后缀,那么当我们访问/index时springmvc就会去找/webapp/WEB-INF/jsp/index.jsp文件。

       é‡å¯é¡¹ç›®æˆ‘们尝试访问.0.0.1:/index,可以看到如下图的效果,证明已经完成了springboot与jsp的整合:

       ä¸Šè¿°ä¾¿æ˜¯æˆ‘们本章的全部内容,本章主要是讲解了springboot集成jsp作为渲染视图,结合springmvc来转发请求。

       æœ¬ç« å†…容已经上传到码云:

       SpringBoot配套源码地址:

       SpringCloud配套源码地址:

       SpringBoot相关系列文章请访问:目录:SpringBoot学习目录

       QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录

       SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录

       SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!

       çŸ¥è¯†æ˜Ÿçƒ-恒宇少年

jsp和springboot哪个简单

       springboot简单。springboot凭借着学习简单、轻量级以及容易扩展等优点,成为了蓬勃发展的快速应用开发领域的领导者,可以替代jsp架构中的国际化支持实践,因此springboot简单。

本文地址:http://581.net.cn/news/74f223197694.html 欢迎转发