后端sendRedirect重定向跳转至WEB-INF内的静态页面
一、HttpServletResponse resq,resp.sendRedirect如何跳转WEB-INF内静态页面
resp.sendRedirect跳转web-inf内静态页面会被阻拦。
二、使用步骤
1.步骤一:配置web.xml可以访问web-inf内静态页面
代码如下(示例):
<?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">
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
</web-app>
2.步骤二:方法一:sendRedirect+jsp:forward 跳转,不可以直接重定向访问web-inf内
代码如下(示例):
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//重定向跳转,可以跳转其他服务器
resp.sendRedirect(req.getContextPath()+"/demo3");//绝对路径:跳其他sevlet类get
resp.sendRedirect("/day_servlet/demo3");//tomcat虚拟路径+别名:跳转到get方法
resp.sendRedirect("/day_servlet/success.jsp");
//跳转页面,tomcat虚拟路径+别名,web/success.jsp,注意:不可以跳转WEB-INF内静态页面
}
//success.jsp直接通过<jsp:forward跳转其他web-inf内静态页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form name="testform">
<jsp:forward page = "/WEB-INF/shou/shouye.html" /><%--jsp标签自动跳转WEB-INF页面--%>
</form>
</body>
</html>
:方法二:getRequestDispatcher直接跳转
代码如下(示例)
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//注意:只能是跳转本项目的
// req.getRequestDispatcher("/demo2").forward(req,resp);//跳转到其他servlet类,demo2是别名
//req.getRequestDispatcher("/shouye.html").forward(req,resp);//跳转至页面,直接调用web下的shouye.html页面
req.getRequestDispatcher("/WEB-INF/shou/shouye.html").forward(req,resp);//跳转至web//WEB-INF/shou/shouye.html页面
req.getRequestDispatcher("/WEB-INF/shou/shouye2.jsp").forward(req,resp);//跳转至web//WEB-INF/shou/shouye.html页面
}
该处使用的url网络请求的数据。