我使用的是myBatis的框架,在xml中配置了freemarker,其中的url-pattern中我写的是*.ftl,然后我发现,不管是路径还是端口号都没问题,但是只要访问html就会出现404错误,我又把配置的freemarker注释掉,然后重启了服务器,结果html就可以正常访问了,然后再放开依然可以访问,修改html变成ftl后,点击浏览器跳到到的是login.ftl,显示404(这个是正常情况),我手动输入login.html访问失败显示404,再次注释掉才成功访问,或者把*.ftl改成*.html也可以正常访问,但是,保持这样的配置再次重启服务器,就无法访问html了,必须把配置注释掉再次重启,然后解开注释,才可以正常访问
以下是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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
<init-param>
<!--存放路径-->
<param-name>TemplatePath</param-name>
<param-value>/WEB-INF/ftl</param-value>
</init-param>
<init-param>
<!--用于设置读取ftl文件时采用的字符集-->
<param-name>default_encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
html主要内容
<body>
<div class="oa-container">
<h1 style="text-align: center;margin-bottom: 20px">山海</h1>
<form class="layui-form">
<div class="layui-form-item">
<input type="text" id="username" lay-verify="required" name="username" placeholder="请输入用户名" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-item">
<input type="password" id="password" lay-verify="required" name="password" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-item">
<button class="layui-btn layui-btn-fluid" lay-submit lay-filter="login">登录</button>
</div>
</form>
</div>
<script src="/resources/layui/layui.js"></script>
<script>
layui.form.on("submit(login)", function (formdata){ //data参数包含了当前表单的数据
console.log(formdata)
layui.$.ajax({
url : "/check_login",
data : formdata.field,
type : "post",
dataType : "json",
success : function (json){
if(json.code == "0"){
layui.layer.msg("登陆成功");
}else{
layui.layer.msg(json.message);
}
}
})
return false;//false 不提交
})
</script>
</body>