• 0、前端页面的请求路径


    学习资源:动力节点的2020最新SpringMVC教程【IDEA版】-springmvc从入门到精通


    1、相对地址

    1.1、不使用 /

    页面的请求地址中不加 / ,相对地址的参考地址是:当前页面的地址

    <a href="user/register">发起注册请求</a>
    

    点击上面的超链接后,新的页面的地址会变为:http://ip:端口号:工程名/user(register 被作为资源名)。这时如果在这个页面发起不带 / 的请求:

    <a href="user/second">发起第二个请求</a>
    

    会出现 http://ip:端口号/工程名/user/user/second The requested resource is not available 的问题。

    解决方式:

    • 使用以 "/" 开头的地址
    • 使用html 的 base 标签,它表示当前页面的基地址,页面中所有没有以 "/" 开头的地址,都是以 base 标签中的地址为参考地址,使用 base 地址 + user/second 组成完整的访问地址
    <head>
        <base href="http://ip:端口号/工程名/" />
    </head>
    <body>
        <a href="user/second">发起第二个请求</a>
    </body>
    

    项目中的使用方式:

    <%
        String basePath = request.getScheme() + "://" +
                request.getServerName() + ":" + request.getServerPort() +
                request.getContextPath() + "/";
    %>
    <html>
    	<head>
            <base href="<%=basePath%>">
        </head>
    </html>
    

    1.2、使用 /

    页面的请求地址中加 / ,参考地址是:http:ip:端口号/。直接访问是会略过工程地址的,会造成 HTTP ERROR 404

    <a href="/user/register">发起注册请求</a>
    

    为了解决这个问题,可以在页面的请求地址中,附上 "/工程名" 的前缀

    <a href="/工程名/user/register">发起注册请求</a>
    

    但是这样的话,又会导致两个问题:

    1. 请求地址显得冗余不够清晰
    2. 工程名一旦修改的话,势必要修改每一个页面的请求前缀

    解决方式:使用 ${pageContext.request.contextPath} 作为工程名:

    <a href="${pageContext.request.contextPath}/user/register">发起注册请求</a>
    

    2、绝对地址

    <a href="http://ip:端口号/工程名/自定义请求地址">发起注册请求</a>
    
  • 相关阅读:
    浅谈设计和编码
    谈谈分工
    我们需要专职的QA吗?
    几句禅语的解释
    理想的程序员
    表连接
    关于集群和分布式的好文
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & ManacherC
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher B
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher A
  • 原文地址:https://www.cnblogs.com/sout-ch233/p/13622393.html
Copyright © 2020-2023  润新知