关于JSP中动态包含请求无法显示页面的问题 post请求页面中包含get请求
今天在写一个动态包含页面时遇到使用post请求提交一个表单后,但是部分使用<jsp:include page="xx"/>
进行动态包含的界面无法显示,最后发现由于包含进来的是get请求的动态页面
我做了一个测试,准备了两个页面
testGet页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<jsp:include page="/testPost"/>
getTest
</body>
</html>
testPost页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
postTest
</body>
</html>
相应的Controller
@GetMapping("/testGet")
public String testGet(){
return "personal/getTest";
}
@PostMapping("/testPost")
public String testPost() {
return "personal/postTest";
}
测试步骤:
在get请求页面中动态包含post请求,像下面这样
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<jsp:include page="/testPost"/>
getTest
</body>
</html>
测试结果是 只显示了getTest
我们调换请求方式,使用post请求请求testPost,咋填testPost请求中包含get请求的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<jsp:include page="/testGet"/>
postTest
</body>
</html>
最后的测试结果是post请求中无法访问包含有get请求的页面
最终结论:
在jsp动态包含当中,原请求页面的请求方式是什么,请求动态包含页面的请求就是什么。
原请求是使用post方式请求/testPost,testPost界面中包含testGet页面,那么将会使用post方式请求testGet页面,反正亦然