java.lang.LinkageError: javax.servlet.jsp.JspApplicationContext.getExpressionFactory

That will happen when you include server-specific libraries of a different server make/version in the /WEB-INF/lib of your web application, such as jsp-api.jar, el-api.jar, servlet-api.jar, etc. You need to remove them all. The /WEB-INF/lib should not contain any server-specific libraries. They belongs in the specific server itself (Tomcat has them in its /lib folder already).

This is by the way a pretty common beginner's mistake whenever they encounter compilation errors on the JSP/Servlet API in their IDE project. This should have been solved differently, namely by integrating the server in the IDE and adding the server as "Target runtime" to the project.

See also:

  • How do I import the javax.servlet API in my Eclipse project?

You have two options for adding to your projects libraries, such as jsp-api.jar, el-api.jar, servlet-api.jar, etc:

  1. Add these libraries as external jars in your Java Build Path;
  2. Add them as maven dependencies, setting the provided scope for each of them, for example:
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
</dependency>

Check this page

http://www.jarfinder.com/index.php/java/info/org.apache.jasper.runtime.HttpJspBase

Find which are the jars you have used in this. Removeone if you find two.:)