【教程】IDEA 2021.2创建Maven Web项目并整合Tomcat发布,问题解决大全,jsp,Servlet

解决:

java: Compilation failed: internal java compiler error

java: javacTask: 源发行版 8 需要目标发行版 1.8

404找不到路径




一篇入门教程,关于Java原生Web,在生产上已经过时的技术 TuT

但是Servlet还是需要学习了解,是Java Web的基础,方便理解spring

而且Maven、Tomcat的配置在spring boot项目中也用得到



一、搭建环境

博主的环境:jdk8uxxx 、Tomcat9 、Maven3.x

IDEA自带Maven,但是还是在电脑上自己装一个比较好,熟悉配置

下载后,Maven可以配置阿里云镜像,提升后续使用中创建项目和加载依赖的速度

    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>    
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>

第50行的 localRepository 最好设置一下,和IDEA的Maven设置一致



二、建立IDEA项目,启动helloWorld

选择Maven项目,以直接建org.apache.maven.archetypes:maven-archetype-webapp,或者不勾选Create from archetype,建立普通maven项目,再在里面建立webapp子Module

这里演示 普通maven父项目+webapp子Module

直接保姆级教程(2022-01-14,以为IDEA设置方法在不停地变)



1.1 新建项目



1.2 配置项目maven

这是个变态的地方,每次新建项目都会默认变成idea内置maven



1.3 配置项目Facets、Artifacts

【重点】配置Facets、Artifacts,没配置好Tomcat启动后404

【重点】这里一定要配置对



1.4 配置项目Tomcat

到这里,直接启动就能看到hello world



三、Servlet、JSP配置

3.1 pom引入Servlet、JSP依赖

父项目引入依赖,子module自然能使用

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.3.3</version>
      <scope>provided</scope>
    </dependency>

话说这两个包很久没几年更新了...



3.2 配置初始web.xml

默认的web.xml插入<servlet>直接报错,要从头配置一下

配置web.xml,删除原先配置,粘贴

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         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">

</web-app>



3.3 Servlet helloWorld

  • 演示第一个Servlet程序

直接用这个建文件夹会建立一个文件夹并标记为Sources Root,不然要手动标记,右键文件夹

  • 建package、Class

  • 建立映射
  <servlet>
    <!--servlet的内部名称-->
    <servlet-name>Servlet01</servlet-name>
    <!--servlet的类全名: 包名+简单类名 -->
    <servlet-class>com.yunmuq.servlet.Servlet01</servlet-class>
  </servlet>
  <servlet-mapping>
    <!--servlet的映射内部名称,通过他可以找到上面的servlet的内部名称-->
    <servlet-name>Servlet01</servlet-name>
    <!--请求servlet的映射路径-->
    <url-pattern>/s1</url-pattern>
  </servlet-mapping>

启动!

End



四、Tomcat软件配置

4.1 控制台输出乱码问题

乱码的原因是 Tomcat 日志默认编码是 utf-8 ,但 Windows国内版和 IDEA 却是 GBK

解决办法:

不推荐修改 IDEA 控制台为 utf-8 ,虽然我们都爱 utf-8 ,但是以后跑其它项目可能会出问题

可以修改 Tomcat 的日志输出为 GBK 编码

在 tomcat / conf 目录下,设置 logging.properties ,增加参数 java.util.logging.ConsoleHandler.encoding = GBK,重新运行项目

参考:https://www.cnblogs.com/shej123/p/10312806.html



4.2 运行日志位置

有时候出bug总会说详情见日志,但是日志在哪呢?

网上说的固定位置很不可靠,因为实际情况因人而异,我推荐大家一款著名的文件搜索软件 Everything ,比Windows文件资源管理器自带的搜索强很多倍,全局搜索速度很快

搜索tomcat ,注意是区分大小写的

我的路径是:C:\Users\yunmuq\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat



五、一些问题

5.1 Maven导入依赖失败显示红色

以下设置可以解决

其中设置JDK似乎不是必须的

不生效的话重启IDEA,或者 File-Invalidae Cache 清除缓存(会需要一点点时间重新加载配置)



5.2 jsp文件内报错找不到类

如果你要编写jsp文件,会发现其中的 Java代码报错飘红,找不到此类,但是如果你愤怒地点击运行的话,结果可能会让你吃惊,它能运行...

强迫症当然受不了,解决办法是在项目的pom.xml中导入依赖:

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>

其中的依赖版本可以通过官网:http://mvnrepository.com/ 或者:https://search.maven.org/ 查询

这个飘红问题我也参考过这篇文章,不过没用

在IDEA中使用JSP中的out内置对象,out.println()——println红色解决方法



end...ヾ(≧▽≦*)o
往期精彩文章推荐:

《NameSilo的DDNS动态域名解析脚本》

《安装nginx并安全地配置和启动》



posted @ 2020-12-16 14:53  云牧青  阅读(2393)  评论(0)    收藏  举报