springboot多模块maven项目jsp问题

问题1:笔者在启动一个多模块的maven项目时,每个模块都是一个maven项目,通过pom文件设置依赖关系,本次要讨论的问题为通过模块module1里面写的一个controller方法返回module2里面的一个jsp页面,在idea里面设置工作目录为模块路径(否则也可能找不到jsp页面),在module2的application.xml配置了jsp的路径为"WEB-INF/jsp",后缀为“.jsp”,然后启动运行没有问题,然而当我将这几个模块打成一个jar包时,在cmd里面通过java -jar运行,通过浏览器访问的时候一直提示找不到jsp页面,在网上找了好久才发现问题的原因,是由于我使用的springboot版本为1.5.2,貌似从1.4.2版本之后就不太支持jsp了。所以用高于1.4.2版本的springboot打包工具打的包里面会少一部分内容,这才导致找不到jsp页面的错。
解决方法:
1.在pom文件中设置打成war包;
然后打成了war包,这时候笔者又将生成的war包的后缀改为.jar,再次通过java -jar 运行,还是报错。这时候已经搞了一天了,真的很烦;这次出错的原因估计又是打包的问题,所以笔者放弃了改成jar包这种方式,沿用之前生成的war包,这时候又遇到了第二个问题,就是springboot里面配置了内嵌的tomcat,但是war包又只能通过自己电脑上装的tomcat跑起来,于是又遇到了第二个问题。
问题2:怎么设置springboot内置的tomcat不生效。
解决方法:
1.找到pom配置springboot的地方,这个地方有两种方案如下:
第一种方案如下,在spring-boot-starter-web下加了排除的设置,这样在加载springboot模块的时候就会排除tomcat模块的加载,笔者使用的是第一种方案。
在这里插入图片描述
第二种方案
因为SpringBootServletInitializer需要依赖 javax.servlet,而tomcat-embed-jasper下面的tomcat-embed-core中就有这个javax.servlet,如果没用provided,最终打好的war里面会有servlet-api这个jar,这样就会跟tomcat本身的冲突了
在这里插入图片描述
配置好了之后,在这里需要在之前启动类的同一目录下添加SpringBootStartApplication文件类如下:
public class SpringBootStartApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}

这里的Application即为之前的启动类,到这里笔者以为问题解决了没想到又遇到了另一个问题,这个问题可能对一部分人来说是没有的,下面先阐述一下问题。由于笔者的项目里面的js、css包括jsp对于路径有要求,在通过浏览器访问时必须只能通过ip+端口才能
正确的跑起整个项目,于是笔者在自己的tomcat配置文件conf目录下面的server.xml配置了通过localhost:8080访问项目,具体配置如下:
在这里插入图片描述
配置完之后,通过startup.bat启动项目,发现我的程序在tomcat容器里运行了两次导致报错,看了网上的资料之后才知道tomcat在启动后首先会加载一次Host里面appBase目录下的内容,此时我的项目就在webapps目录下,然后我配置了一个Context,tomcat又会加载一次,所以导致项目启动两次。
解决方法:
1.将要部署的项目放在另一个目录下,例如笔者在webapps同级目录下创建了一个webroot目录,把我们的项目放在这下面,上面的配置也改成了如下:
在这里插入图片描述
再次启动tomcat,我天,终于搞定了,真是不容易啊,在这里把问题记录一下,可能说的不是很清楚,具体的大家可以再自行百度详细一点,这里只是说了个大概的思路,也希望如果有遇到同样的问题的人能给你们一点参考。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 这个问题似乎是问关于如何将SpringBoot、SSM框架和JSP技术结合起来开发项目的。如果是这个问题的话,我可以给出如下建议: 1. 首先要了解SpringBoot、SSM框架和JSP技术别的特点和优势,才能更好地把它们结合起来开发项目。 2. 建议使用Maven或Gradle等项目管理工具来构建项目,以便更好地管理依赖、打包和部署等工作。 3. 在SpringBoot的基础上集成SSM框架,可以在pom.xml中引入spring-web、spring-jdbc、mybatis-spring等依赖,并在配置文件中配置好数据源和MyBatis的相关配置。 4. 对于JSP技术的使用,可以结合使用SpringMVC框架来实现。可以在pom.xml中引入spring-webmvc依赖,并在配置文件中配置好视图解析器、静态资源映射等相关配置。 5. 在开发过程中,需要注意SpringBoot、SSM框架和JSP技术的实际运用,以及各个模块之间的协作和交互。同时,要注意安全性、性能优化等方面的考虑,以提高项目的质量和用户体验。 ### 回答2: 在这个技术飞速发展的时代,springboot和ssm都是非常流行的框架。因为他们各有特性,所以很多开发者都喜欢将这两个框架进行整合,从而可以更方便的实现自己的项目。 首先我们来了解一下什么是springboot。Spring Boot是Spring基础框架上构建的用于快速开发,易于配置和无需大量XML配置的生产级Spring应用程序的框架。它对于开发人员来说是一个巨大的福音,因为它可以大大减少开发时间,提高生产效率。 而SSM是Spring、Spring MVC和Mybatis框架的整合,用来快速搭建一个Java web项目,实现前后端的离。SSM已经被拥有大量粉丝,成为了常用的JavaWeb开发框架。 其次,Spring Boot可以通过引入SSM的相关依赖,将SSM与Spring Boot进行整合。具体步骤如下: 1.在pom.xml文件中添加spring-boot-starter-parent的依赖 2.添加SSM依赖,包括spring-web、spring-webmvc、mybatis等,一般可以通过在maven中添加这些依赖来获取。 3.在application.properties或application.yml文件中配置数据源、Mybatis等 4.配置Spring MVC,比如定义控制器,跳转页面等 5.在启动类中添加组件扫描注解以及@EnableAutoConfiguration注解 这样就可以将Spring Boot和SSM整合起来了。可以通过SpringBoot+Ssm+Jsp的方式来进行开发,也可以使用SpringBoot+Thymeleaf的方式来进行开发。 此外,还有许多其他的整合方式,比如Spring Boot整合Spring Security、整合Spring Cloud等,用户可以根据自己的需求进行选择。 综上所述,整合Spring Boot和SSM可以提高开发效率,降低开发成本,也可以减少代码量和依赖。总之,选择适合自己的框架和工具,才能更好地完成项目开发。 ### 回答3: Springboot是现代Java企业级框架,开发者可以依据自身的需求和习惯来自由配置自己的应用程序,同时可以简化许多繁琐的操作。 SSM代表Spring + SpringMVC + MyBatis,是构建Java Web应用程序的主流框架之一。SSM与Springboot完全兼容。如果我们在Springboot下使用SSM框架,可以带来很多好处,如可以很方便地进行组件管理和配置,不需要手动配置Spring的繁杂XML配置文件,简化开发流程,加快开发速度,并提供了优秀的可维护性。 整合步骤如下: * 1、引入Springboot和SSM相关依赖 使用Springboot集成SSM需要在pom.xml中添加 Springboot依赖和SSM依赖。如果你使用的是Maven,则可以添加以下代码。 * 2、配置包扫描路径 Springboot默认扫描启动类所在包下的所有类,为了让Springboot能扫描到我们的SSM的相关类,我们需要在启动类中添加@ComponentScan注解。和Spring类似,@ComponentScan默认扫描启动类所在的包,如果我们将SSM相关类放在了其他包中,需要在@ComponentScan中添加 “扫描路径”。 * 3、配置数据源信息 在resource目录下创建application.properties配置文件,这里配置数据源信息,如下所示。 * 4、配置Mybatis 在resource目录下创建mybatis-config.xml配置文件,如下所示,配置Mybatis相关信息。 * 5、创建Mapper接口和XML映射文件 在SSM框架中,我们需要定义Mapper接口以及对应的XML映射文件才能执行SQL语句。在Springboot中,我们需要在Mapper接口上使用@Mapper注解,这样Springboot可以自动扫描到我们的Mapper接口,无需额外配置。 * 6、创建Service层和ServiceImpl实现 在SSM中,Service层我们可以自由定义,并使用@Autowired注解依赖注入Mapper进行数据处理。在Springboot中,我们只需要将Service实现类上添加@Service注解,Springboot会自动管理。 * 7、创建Controller层 在Controller层,我们需要处理请求和返回响应结果。在Springboot中,我们可以自动完成这些操作,只需要在请求处理方法上添加@RequestMapping注解即可。 通过以上步骤,我们完成了Springboot整合SSM框架的工作。整合后的优势在于,我们可以简单地管理应用程序的组件,并减少不必要的信息配置,使项目开发流程更加高效。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值