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>

jsp里面不能使用${pageContext.request.contextPath}解决方案的更多相关文章

  1. jsp获取绝对路径----${pageContext.request.contextPath}

    JSP取得绝对路径 在JavaWeb开发中,常使用绝对路径的方式来引入JavaScript和CSS文件,这样可以避免因为目录变动导致引入文件找不到的情况,常用的做法如下: 一.使用${pageCont ...

  2. ${pageContext.request.contextPath} JSP取得绝对路径

    一.问题     JSP中究竟采用绝对路径还是采用相对路径随着所采用技术的越来越复杂,这个问题也变得越来越难以解决. 1)采用相对路径遇到的问题      相对路径固然比较灵活,但如果想复制页面内的代 ...

  3. ${pageContext.request.contextPath}是JSP取得绝对路径(转载)

    ${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 也就是取出部署的应用程 ...

  4. jsp中${pageContext.request.contextPath}的意思

    ${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 也就是取出部署的应用程 ...

  5. <jsp:include page="${pageContext.request.contextPath/index.jsp" ></jsp:include> 引发的错误

    路径引发的错误 如下使用项目路径对jsp页面进行获取,会报javax.servlet.ServletException: File "/web/dbwx/web/public/page_to ...

  6. 关于在JSP页面中为什么一定要用${pageContext.request.contextPath}来获取项目路径,而不能用${request.contextPath}?

    这里的疑问在于pageContext和request都是JSP中的内置对象之一,为什么不直接用${request.contextPath}来获取项目路径? 出现这种疑问,其实是将JSP的内置对象和EL ...

  7. 【JSP】${pageContext.request.contextPath}

    取出部署的应用程序名或者是当前的项目名称 http://localhost:8080/demo1/a.jsp  ${pageContext.request.contextPath}或<%=req ...

  8. JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)

    本随笔这是作为一个记录使用,以备后查.项目完成之后本地部署OK,本地Linux部署OK,都可以正常的访问,可是当我把它部署到服务器上面的时候,首页可以正常访问,可是当发出请求的时候却报错误了,说找不到 ...

  9. 关于${pageContext.request.contextPath}的理解 (转载)

    ${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 也就是取出部署的应用程 ...

随机推荐

  1. Python complex() 函数

    Python complex() 函数  Python 内置函数 描述 complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数.如果第一个参数为字 ...

  2. ATX 安卓设备 WiFi 统一管理以及设备自动化测试

    众所周知,安卓单台设备的UI自动化测试已经比较完善了,有数不清的自动化框架或者工具.但是介绍多设备管理的内容并不多,当手里的手机多了之后,要做自动化测试平台,这块的东西又不得不碰,摆脱USB限制,接入 ...

  3. Codeforces Beta Round #63 (Div. 2)

    Codeforces Beta Round #63 (Div. 2) http://codeforces.com/contest/69 A #include<bits/stdc++.h> ...

  4. FortiGate软件版本升级

    1.Web界面升级 1)注意:升级前,务必做好配置备份 2)要点 1.FortiGate防火墙的每款型号都有单独的版本文件,升级前务必确认下当前的设备型号: 2.升级包的后缀名必须为.out,前缀任意 ...

  5. selenium学习一

    chrome版本和chromedriver的对应关系 chromedriver版本 支持的Chrome版本 v2.40 v66-68 v2.39 v66-68 v2.38 v65-67 v2.37 v ...

  6. SQL Server 触发器 表的特定字段(一个字段)更新时,触发Update触发器

    CREATE TRIGGER [dbo].[Trg_Update_table1_column1]   on table1  after update  as  if update (column1)  ...

  7. 20165315 C语言学习情况与Java学习目标

    20165315 C语言学习情况与Java学习目标 一.出色技能的获取经验 我从小便是一个中规中矩的人,在很多方面都是让成绩尽量保持在前百分之二十到三十这个范围内,比如我比较擅长的唱歌和乒乓球,但也不 ...

  8. vue解决遮罩层滚动方法

    vue 遮罩层阻止默认滚动事件 在写移动端页面的时候,弹出遮罩层后,我们仍然可以滚动页面. vue中提供 @touchmove.prevent 方法可以完美解决这个问题 <div class=& ...

  9. android抽屉效果

    所谓抽屉  是区别于侧滑菜单 他不会把内容区域挤掉  他只是覆盖在内容区域 下边一个布局文件  一个代码   可以说的就是布局文件就是 <android.support.v4.widget.Dr ...

  10. [z]根据awr报告查看最慢的sql语句

    http://blog.itpub.net/12679300/viewspace-2125679/ 当系统运行了一段时间后,系统基本也趋于稳定了,SQL调优也变了DBA的一个主要的工作内容,很多时候都 ...