我正在关注Udemy的教程,该教程解释了JSP和Servlets: https://www.udemy.com/jsp-tutorial
本教程使用Eclipse + Tomcat服务器。
由于我是IntelliJ和Maven用户,我想使用这两个来设置我的环境。所以我从以下原型创建了一个Maven项目:“org.apache.maven.archetypes:maven-archetype-webapp”并将我的POM配置为folllows:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SomeGroupId</groupId>
<artifactId>HelloWorldJavaServerPages</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>HelloWorldJavaServerPages Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>HelloWorldJavaServerPages</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>Tomcat85Localhost</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
</plugins>
</build>
</project>
按照此处所述设置我的其他属性: Tomcat 8 Maven Plugin for Java 8
我能够构建我的项目并使用tomcat插件部署到tomcat服务器(或手动拖动webapps文件夹中的war文件)。
问题是当我有以下两个文件时:
学生form.html
<html>
<head><title>Student Registration Form</title></head>
<body>
<form action="student-response.jsp">
First name: <input type="text" name="firstName" />
<br/>
Last name: <input type="text" name="lastName" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
学生的response.jsp
<html>
<head><title>Student Confirmation Title</title></head>
<body>
The student is confirmed: <%= request.getParameter("firstName")%> ${param.lastName}
</body>
</html>
request.getParameter方法有效,但$ {param.lastName}没有,它只是在浏览器中显示为纯文本:$ {param.lastName}。
使用Eclipse(没有Maven)它确实适用于两者,所以我想知道我在做什么实际上在这里有什么不同/错误以及为什么它不起作用。
提前感谢您的帮助。
答案 0 :(得分:0)
一旦我发现大括号之间的引用被称为&#34;表达式语言&#34;,我决定在stackoverflow上进行另一次搜索并发现: Expression Language in JSP not working
如上面链接中所述更改web.xml使其正常工作。
谢谢大家阅读我的问题,实际上答案非常简单。