问题
在练习jsp
的时候遇到一个问题,
通过pageContext.request.contextPath
取路径的时候取不到
请求url
是这样的
http://localhost:8081/test04/$%7BpageContext.request.contextPath%7D/login?username=%E8%AE%A9%E4%BA%BA&password=111111
jsp
页面代码
<html>
<body>
<h2>Hello World!</h2>
<form action="${pageContext.request.contextPath}/login" method="get">
用户名:<input type="text" name="username"> <br>
密码: <input type="password" name="password"> <br>
<input type="submit">
</form>
</body>
</html>
后来发现是web.xml
版本问题,web-app
声明的版本太低,低于2.4,
我用的是idea2019
,默认生成的web.xml
版本·是2.3
的,有很多问题
不要使用如下的代码
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
解决办法
使用tomcat
模板中使用的最新的xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="4.0"
metadata-complete="true">
</web-app>
请求url
: http://localhost:8081/test04/login?username=%26%2335753%3B%26%2320154%3B&password=rrr+