项目场景:
JavaWeb使用jsp定位Servlet
问题描述:
类型 状态报告消息 请求的资源[/$%7BpageContext.request.contextPath%7D/login]不可用
描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
<html>
<body>
<h2>Hello World!</h2>
<%--这里提交的路径,需要找到项目的路径--%>
<%--${pageContext.request.contextPath}代表当前的项目--%>
<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>
原因分析:
原因是 ${}
没有解析出来。
<%@ page isELIgnored="true|false"%>如果设定为真,那么JSP中的表达式被当成字符串处理,我们通过字面意思理解一下:是否忽略el表达式,如果为true就是忽略el表达式,就是当做字符串来处理;反之,就是按el表达式来。
如果通过简单的测试发现你的${pageContext.request.contextPath}为字符串,那么你把 isELIgnore 的 设置为 false 就好了。。
解决方案:
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>