本文目录一览:
- 1、Spring mvc怎么获取当前应用的url地址
- 2、在jsp中如何取得当前页面完整的URL(带参数)?
- 3、如何用js获取当前打开的页面的路径
- 4、如何得到一个jsp页面所在的项目的路径
- 5、JSP获取页面的元素的值有几种方式
- 6、web项目中,request的方法详解
Spring mvc怎么获取当前应用的url地址
action类:
public class IndexController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
MapString ,Object model=new HashMapString,Object();
String contextpath;
contextpath = request.getScheme() +"://" + request.getServerName() + ":" +request.getServerPort() +request.getContextPath();
model.put("contextpath",contextpath);
return new ModelAndView("index",model);
}
如果调用IndexController 的http url是,以上request对象的各方法得到的结果分别是:
request.getScheme() :http
request.getServerName() :127.0.0.1
request.getServerPort() :8080
request.getContextPath():/test
分别request还有一个有用的方法,request.getServletPath,获取的结果是:index.do,一般用不到。
jsp文件
%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
title xxxxxxxxx /title
script src="${contextpath}/ui/boot.js" type="text/javascript"/script
script src="${contextpath}/js/index.js" type="text/javascript"/script
link href="${contextpath}/css/index.css" rel="stylesheet" type="text/css" /
link href="${contextpath}/css/icons.css" rel="stylesheet" type="text/css" /
/head
body
input type="hidden" class="mini-hidden" required="false" vtype="" value="${contextpath}" id="context" emptyText=""
div id="layout1" class="mini-layout" style="width: 100%; height: 100%"
div class="header" region="north" height="100" showSplit="false" showHeader="false"
div id="header"
div class="headerNav"a class="logo" href="javascript:void(0);" onclick="javascript:selectMainTab();"/a
div id="top_right"/div
/div
/div
div id="navMenu"span id="nowDate" style="text-align:
left"/span span style="text-align: left"欢迎您:a
class="mini-button" grid="datagrid1"
realhref="${contextpath}/authuser/modifyPass/${CURRENT_USER.authUser.ID
}" onclick="javascript:add(this,540,440);"
plain="true"${CURRENT_USER.authUser.NAME}/a【${CURRENT_USER.curOrgan.ORGAN_NAME}】/span
spana href="#" onclick="logout(this);"
realhref="${contextpath}/login/out"退出/ainput
type="hidden"
name="backUrl" class="mini-hidden"
value="${contextpath}/login/out"
id="backUrl"/spanspana href="#"
onclick="javascript:closeSystem();"关闭/a
/span/div
/div
div title="center" region="center" style="border: 0;" bodyStyle="overflow:hidden;"!--Splitter--
div class="mini-splitter" style="width: 100%; height: 100%;" borderStyle="border:0;"
div size="210" maxSize="250" minSize="100" showCollapseButton="true" style="border: 0;"!--OutlookTree--
div id="leftTree" class="mini-outlooktree"
url="${contextpath}/authmenu/jsonUserMenu" onnodeclick="onNodeSelect"
textField="text" idField="id" parentField="pid"/div
/div
div showCollapseButton="false" style="border: 0;"!--Tabs--
div id="lr_systembox" style="margin-right: 100px;margin-top: 0px;"
/div
div id="mainTabs" class="mini-tabs bg-toolbar" activeIndex="0" style="width: 100%; height: 100%;"
div id="maintreeid" title="首页" name="homePage" iconCls="a38" url="${contextpath}/
WEB-INF/jsp/main.jsp"/div
/div
/div
/div
/div
/div
/body
/html
jsp页面中的${contextpath}显示的值为
在jsp中如何取得当前页面完整的URL(带参数)?
JSP页面
% String url = request.getScheme()+"://"+ request.getServerName()+request.getRequestURI()+"?"+request.getQueryString(); %
用JS可以的
window.location.href
如何用js获取当前打开的页面的路径
lz
(1)window.location.href : 整个URl字符串(在浏览器中就是完整的地址栏)返回值: ;name=java#imhere(2)window.location.protocol :URL 的协议部分返回值:http:(3)window.location.host : URL 的主机部分返回值: : URL 的端口部分(如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符)返回值:""(5)window.location.pathname : URL 的路径部分(就是文件地址)返回值:/order/index.html(6)window.location.search : 查询(参数)部分 (除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值)返回值:orderid=1name=java(7)window.location.hash : 锚点返回值:#imhere(8)document.URL返回值: ;name=java#imhere//获取Url传过来的值
function Request(name)
{
new RegExp("(^|)"+name+"=([^]*)").exec(window.location.search.substr(1));
return RegExp.$2
}
如何得到一个jsp页面所在的项目的路径
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
另:在Jsp,Servlet,Java中详细获得路径的方法。
1.jsp中取得路径:
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:request.getRequestURI()
结果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
结果:/TEST
(3)得到当前页面所在目录下全名称:request.getServletPath()
结果:如果页面在jsp目录下 /TEST/jsp/test.jsp
(4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")
结果:D:\resin\webapps\TEST\test.jsp
(5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
结果:D:\resin\webapps\TEST
2.在类中取得路径:
(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:System.getProperty("user.dir")
结果:D:\TEST
3.在Servlet中取得路径:
(1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。
结果:E:\Tomcat\webapps\TEST
(2)得到IE地址栏地址:request.getRequestURL()
结果:
(3)得到相对地址:request.getRequestURI()
结果:/TEST/test
JSP获取页面的元素的值有几种方式
javascript中获取jsp界面元素方法
1.getElementsByName("name")
可以获取jsp界面中元素名字为"name"的所有元素,返回的是一个object[ ] 数组,数组中每个元素包含一个从jsp界面中获得的元素。
2.getElementById(id)
根据id值来获取jsp界面中惟一的对象。
servlet中获取jsp界面元素方法
3.getParameter("name") 返回类型为String
用于获取jsp界面中一个名字为"name"的对象的value值。
4.getParameterValues("name")返回类型为String[]
用于获取jsp界面中多个名字为"name"的对象的value值。
web项目中,request的方法详解
以点到面,知道了web中getContextPath()这种获取路径的方式,显然其他的方式的是可以以此类推的。常说,工作学习找共同点嘛。 上一段我们也提高getContextPath()的含义,是jsp中获取路径的一种方式,返回当前页面所在的应用的名字。知其然知其所以然,知道它大体上的含义,看看在项目中是如何使用的
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";"
在程序中我们一般这样使用。说到了这里,我们可以看看request常用的方法:
request.getSchema(),返回的是当前连接使用的协议,一般应用返回的是http、SSL返回的是https;
request.getServerName(),返回当前页面所在的服务器的名字;
request.getServerPort(),返回当前页面所在的服务器使用的端口,80;
request.getContextPath(),返回当前页面所在的应用的名字。
getContextPath()是jsp中获取路径的一种方式,那么获取到结果是什么呢?jsp其他获取路径的方式是怎样的呢?表示好奇,请听分解:
以访问的jsp为:,工程名为/dmsd-itoo-exam-log-web为例:
request.getContextPath(),得到工程名:/dmsd-itoo-exam-log-web;
request.getServletPath(),返回当前页面所在目录下全名称:/course/index.jsp;
request.getRequestURL(),返回IE地址栏地址:;
request.getRequestURI() ,返回包含工程名的当前页面全路径:/dmsd-itoo-exam-log-web/course/index.jsp。
对jsp获取当前应用的路径方法和request常用方法有了基本的了解,下面后台通过request.getScheme()获取当前页面使用协议遇到的问题:request.getScheme()获取到的确实http而不是https,与request.getRequestURL()拿到的一样也是http。
这是为什么呢?
原来,nginx+tomcat部署web服务,tomcat接收到的请求是来自nginx的http请求。我想这也是上一博文中说到项目用https启动请求不到页面的原因吧。