环境: JDK10/Tomcat9/IDEA2018.2.2
步骤
1

2

3

4

5 得到下面这个

6 main下new java package (sources root)

修改pom.xml
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
com.itheima
maven_demo
1.0-SNAPSHOT
war
maven_demo Maven Webapp
http://www.example.com
junit
junit
4.11
test
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
maven_demo
maven-clean-plugin
3.1.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.8.0
maven-surefire-plugin
2.22.1
maven-war-plugin
3.2.2
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
8
java包下 建立com.itheima.servlet包下,新建MyServlet
package com.itheima.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = “MyServlet”)
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/hello.jsp").forward(request, response);
}
}
9 改下web.xml

MyServlet
com.itheima.servlet.MyServlet
MyServlet
/
10 建立个hello.jsp在webapp下

11 配tomcat




12 完事,界面是这鸟样
### 跑一下, 直接tomcat:run
“E:\Program Files\Java\bin\java.exe” -Dmaven.multiModuleProjectDirectory=F:\IdeaProjects\maven_demo -DarchetypeCatalog=internal “-Dmaven.home=D:\JetBrains\IntelliJ IDEA 2018.2.2\plugins\maven\lib\maven3” “-Dclassworlds.conf=D:\JetBrains\IntelliJ IDEA 2018.2.2\plugins\maven\lib\maven3\bin\m2.conf” “-javaagent:D:\JetBrains\IntelliJ IDEA 2018.2.2\lib\idea_rt.jar=4506:D:\JetBrains\IntelliJ IDEA 2018.2.2\bin” -Dfile.encoding=UTF-8 -classpath “D:\JetBrains\IntelliJ IDEA 2018.2.2\plugins\maven\lib\maven3\boot\plexus-classworlds-2.5.2.jar” org.codehaus.classworlds.Launcher -Didea.version=2018.2.2 tomcat:run
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven_demo Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> tomcat-maven-plugin:1.1:run (default-cli) > compile @ maven_demo >>>
[INFO]
[INFO] — maven-resources-plugin:3.0.2:resources (default-resources) @ maven_demo —
[INFO] Using ‘UTF-8’ encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory F:\IdeaProjects\maven_demo\src\main\resources
[INFO]
[INFO] — maven-compiler-plugin:3.8.0:compile (default-compile) @ maven_demo —
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to F:\IdeaProjects\maven_demo\target\classes
[INFO]
[INFO] <<< tomcat-maven-plugin:1.1:run (default-cli) < compile @ maven_demo <<<
[INFO]
[INFO] — tomcat-maven-plugin:1.1:run (default-cli) @ maven_demo —
[INFO] Running war on http://localhost:8080/maven_demo
[INFO] Creating Tomcat server configuration at F:\IdeaProjects\maven_demo\target\tomcat
3月 29, 2019 12:31:49 上午 org.apache.catalina.startup.Embedded start
信息: Starting tomcat server
3月 29, 2019 12:31:50 上午 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.29
3月 29, 2019 12:31:50 上午 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
3月 29, 2019 12:31:50 上午 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
点一下控制台那网址
严重: Compilation error
org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:342)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:206)
at org.apache.jasper.compiler.JDTCompiler1.findType(JDTCompiler.java:163)atorg.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:96)atorg.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)atorg.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:97)atorg.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:167)atorg.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2187)atorg.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:974)atorg.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1164)atorg.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:366)atorg.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:623)atorg.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392)atorg.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:429)atorg.apache.jasper.compiler.Compiler.compile(Compiler.java:349)atorg.apache.jasper.compiler.Compiler.compile(Compiler.java:327)atorg.apache.jasper.compiler.Compiler.compile(Compiler.java:314)atorg.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)atorg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)atorg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)atorg.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:717)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)atorg.apache.coyote.http11.Http11ProtocolHttp11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.base/java.lang.Thread.run(Thread.java:844)
3月 29, 2019 12:33:05 上午 org.apache.jasper.compiler.JDTCompiler$1 findType
严重: Compilation error
org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:342)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:206)
at org.apache.jasper.compiler.JDTCompiler1.findType(JDTCompiler.java:163)atorg.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:96)atorg.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)atorg.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:97)atorg.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getType(LookupEnvironment.java:960)atorg.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getResolvedType(LookupEnvironment.java:891)atorg.eclipse.jdt.internal.compiler.lookup.Scope.getJavaLangClass(Scope.java:1988)atorg.eclipse.jdt.internal.compiler.ast.ClassLiteralAccess.resolveType(ClassLiteralAccess.java:93)atorg.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:334)atorg.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:372)atorg.eclipse.jdt.internal.compiler.ast.CastExpression.resolveType(CastExpression.java:434)atorg.eclipse.jdt.internal.compiler.ast.Assignment.resolveType(Assignment.java:184)atorg.eclipse.jdt.internal.compiler.ast.Expression.resolve(Expression.java:906)atorg.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:429)atorg.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:196)atorg.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:400)atorg.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1085)atorg.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1164)atorg.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:366)atorg.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:623)atorg.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392)atorg.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:429)atorg.apache.jasper.compiler.Compiler.compile(Compiler.java:349)atorg.apache.jasper.compiler.Compiler.compile(Compiler.java:327)atorg.apache.jasper.compiler.Compiler.compile(Compiler.java:314)atorg.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)atorg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)atorg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)atorg.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:717)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)atorg.apache.coyote.http11.Http11ProtocolHttp11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.base/java.lang.Thread.run(Thread.java:844)
3月 29, 2019 12:33:05 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files
An error occurred at line: 1 in the generated java file
The type java.lang.Class cannot be resolved. It is indirectly referenced from required .class files
An error occurred at line: 23 in the generated java file
The method getName() is undefined for the type Class
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11ProtocolHttp11ConnectionHandler.process(Http11Protocol.java:588)atorg.apache.tomcat.util.net.JIoEndpointWorker.run(JIoEndpoint.java:489)
at java.base/java.lang.Thread.run(Thread.java:844)
醉了, 我检查一下编译器版本