java - ${pageContext.request.contextPath}获取相对路径无效

查看:175
本文介绍了java - ${pageContext.request.contextPath}获取相对路径无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.在jsp中使用${pageContext.request.contextPath}获取相对路径,可是最后路径变为:http://localhost:8080/oneself/$%7BpageContext.request.contextPath%7D/css/reset.css
2.贴图,这是浏览器的调试页面,可以看到获取css的路径带上了${pageContext.request.contextPath},而console中打印的获取css地址为$%7BpageContext.request.contextPath%7D,并不清楚什么原因,希望各位大佬指点。

login.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login</title>
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/reset.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/supersized.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css">
    <!-- Javascript -->
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js" ></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/supersized.3.2.7.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/supersized-init.js"></script>
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
            <!--<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>-->
        <!--[endif]-->
</head>

<body oncontextmenu="return false">
    <div class="page-container">
        <div id="log-box">
            <h1>登 录</h1>
            <form action="${pageContext.request.contextPath}/user/login.do" method="post">
                <table>
                    <tr>
                        <td class="log-reg">
                            <div>
                                <input type="text" id="username" name="username" class="username"
                                    placeholder="用户名/邮箱名" autocomplete="off" onblur="validname()" />
                            </div></td>
                        <td class="errmsg"><span style="overflow: hidden;"
                            id="errorMsgname" />
                        </td>
                    </tr>
                    <tr>
                        <td class="log-reg">
                            <div>
                                <input id="password" type="password" name="password" class="password"
                                    placeholder="密码" oncontextmenu="return false"
                                    onpaste="return false" onblur="validpwd()" />
                            </div>
                        <td class="errmsg"><span style="overflow: hidden;" id="errorMsgpwd" />
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" class="btn-left"><input type="submit"
                            class="btn" id="submit" value="登  录" />
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" class="btm-left">
                            <p class="box-button">
                                没有账号,先 <a href="${pageContext.request.contextPath}/user/showregister.do">注册</a>
                            </p>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" class="btm-pa">
                            <p class="box-button" id="btm-p">
                                <a href="#">忘记密码?</a>
                            </p>
                        </td>
                    </tr>
                </table>
            </form>
        </div>
        <div class="connect">
            <p>If we can only encounter each other rather than stay with each
                other,then I wish we had never encountered.</p>
            <p style="margin-top:20px;">如果只是遇见,不能停留,不如不遇见。</p>
        </div>
    </div>
    <div class="alert" style="display:none">
        <h2>消息</h2>
        <div class="alert_con">
            <p id="ts"></p>
            <p style="line-height:70px">
                <a class="btn">确定</a>
            </p>
        </div>
    </div>

    <script type="text/javascript">
            $(".btn").click(function() {
                is_hide();
            });
            $("#submit").live('click', function() {
                var u = $("#username");
                var p = $("#password");
                if (u.val() == '' || p.val() == '') {
                    $("#ts").html("用户名或密码不能为空~");
                    is_show();
                    return false;
                } else {
                    var reg = /^[0-9A-Za-z]+$/;
                    if (!reg.exec(u.val())) {
                        $("#ts").html("用户名错误");
                        is_show();
                        return false;
                    }
                }
            });
            window.onload = function() {
                $(".connect p").eq(0).animate({
                    "left" : "0%"
                }, 600);
                $(".connect p").eq(1).animate({
                    "left" : "0%"
                }, 400);
            };

            function is_hide() {
                $(".alert").animate({
                    "top" : "-40%"
                }, 300);
            }

            function is_show() {
                $(".alert").show().animate({
                    "top" : "45%"
                }, 300);
            };
            function validname() {
                var val = $("#username").val();
                if (val == '' || $.trim(val) == '') {
                    $("#errorMsgname").html('用户名不能为空');
                    $("#errorMsgname").show();
                } else  {
                    $.ajax({
                        type: "post",
                        url: "finduserisnull.do?info=" + val,
                        data: "",
                        success: function(data) {
                            if(data=="false"){
                                $("#errorMsgemail").html('用户未注册!');
                            }else {
                                $("#errorMsgemail").html('<img src="img/yes.jpg" style="width: 18px;height: 18px;"/>');
                            }}
                        });
                    }
            };
            function validpwd() {
                //获取id为password对应的input输入框中的值
                var val = $("#password").val();
                if (val == '' || $.trim(val) == '') {
                    //如果val为空或者空格,将错误消息显示在对应span
                    $("#errorMsgpwd").html('密码不能为空');
                    //让span显示出来
                    $("#errorMsgpwd").show();
                } else {
                    $("#errorMsgpwd").html('<img src="${pageContext.request.contextPath}/img/yes.jpg" style="width: 18px;height: 18px;"/>');
                }
            };
    </script>
</body>

</html>

解决方案

最后看了下Stack Overflow,是我web.xml中的头文件web-app版本过低所致,必须为2.4及以上才能正确的获取相对路径。

这篇关于java - ${pageContext.request.contextPath}获取相对路径无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆