SSM项目添加Web环境
第一步:在项目中添加web开发环境,点击File–>Project Structure…–>modules
点击 “+” 号添加web
在弹出的页面中,首先要更改的是web.xml文件生成在哪里,一般是生成在前端资源的受保护路径下,比如我的是D:\developtool\IntelliJ IDEA 2021.2.2\iedaobj\cms\src\main\webapp\WEB-INF\web.xml
,这个路径需要你手动去输入
随后下面的Web Resource也要改,就是前端资源根路径,也是和上面的一样改到主路径下,也就是webapp这一层路径D:\developtool\IntelliJ IDEA 2021.2.2\iedaobj\cms\src\main\webapp
点击create
在跳转后的页面点击OK
此时原来的maven项目就可以变成一个普通的web项目
第二步:配置tomcat服务器,点击RUN–>Edit …
选择你的tomcat路径,之后点击OK
点击OK后,回到tomcat配置主界面,点击Deployment
点击“+”选择Artifact
会自动添加一个默认的Web exploded热启动,把下面的comtext改成 “/ “,这个就是你的虚拟根路径,也是后面运行项目访问的时候的请求前缀。
一定要是Web exploded不要用Web,Web exploded是热启动,Web是发布启动,核心的区别在于Web是生成一个war包放到tomcat上,而热启动不打包直接发布资源,所以Web对于开发很不利会导致代码更新不及时,就算开发完我们也是手动打包不需要它给我们打
点击最下面的OK保存退出tomcat的配置界面,后面使用的时候点击右上角的启动就行
接下来我们要看一下项目当前的字符集
你要确保上面几个都是UTF-8,随后打开tomcat安装路径下的conf文件夹下的配置文件
在这个文件里面,把下面两行注释掉
到此SSM添加Web环境就完成了。idea里面使用tomcat的时候,如果是刚开始使用这个开发软件,其他的都好说,唯独是前端虚拟路径前缀这方面,要搞清楚Idea仅仅只是使用了tomcat的运行资源,并不是完全依赖,所以有很多配置要注意是不是你希望的值?就拿前端虚拟根路径来说,如果你在纯粹的tomcat或者eclipse里面,没有进行缺省配置的话,访问controller 的API路径是必须带项目名的,但在idea里默认是“/”不需要带项目名,你如果不注意,造成最后开发工具里能用,成果物单独跑不能用,那就乐大发了。
SpringBoot添加Web环境
Springboot和SSM添加Web依赖的本质区别就是由于springboot在创建的时候内部可以添加Web依赖,并且内嵌了tomcat,从而不同于SSM需要从最基本的Web环境配起,springboot只需要确保创建项目存时勾选了Web依赖,并且配置web路径映射就可以。访问的时候默认不需要项目名称。
或者你也可以直接在pom文件中查看是否有如下依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
除了依赖,还要注意运行环境中是否有web,如果没有点击加号添加
唯一可能不方便的是,springboot默认没有前端引擎,比如自己研究技术写一个demo的时候,或者是使用jsp等技术,就需要添加引擎以及配置自己要用的web路径,这里给大家以添加jsp支持为例
首先在项目代码资源目录下创建一个webapp
文件夹
然后进行如下的设置
上面这样操作完webapp的图标上就会多一个蓝点
之后在它下面创建一个JSP页面
如果你操作的时候没有JSP的选项,那应该是设置问题,一定要在Project Structure中指定webapp为 Web Resource Directory
随后在pom中添加如下依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
在pom文件中的build
标签下添加如下配置,用于声明将webapp目录下的资源也要编译到包中,不然访问不到
<resources>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--指定编译到META-INF/resources,该目录定死的不要随便写-->
<targetPath>META-INF/resources</targetPath>
<!--指定要把哪些文件编译进去,**表示webapp目录及子目录,*.*表示所有文件-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
随后修改springboot的配置文件指定SpringMVC的视图解析器,不然也是访问不到的
#指定内嵌Tomcat端口号
server.port=91
#配置视图解析器
#其中:/ 表示目录为src/main/webapp , 注意/是在Web Resource Directory中怎么配置的就用什么
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
# 集成完毕之后,剩下的步骤和我们使用 Spring MVC 一样
随后我们写一个测试的Controller,跳转到之前创建的jsp页面
package com.wy.bootjsp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @创建人 wangyang
* @创建时间 2022/10/4
* @描述
*/
@Controller
public class TestController {
@RequestMapping("getTest")
public String getTest(){
model.addAttribute("data","JSP整合");
return "test";
}
}
最后的最后,一定要改一个东西,点击idea启动类的配置
启动项目浏览器访问结果