欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP页面Base标签解决路径问题

程序员文章站 2022-03-02 13:49:37
...

脚本片段
注意点:
jsp页面中pageContext获取的request是ServletRequest类型的,想要继续获取contextPath,需要强转成HttpServletRequest类型,才能和jsp内置对象request一样,可以获取到contextPath。

作用:代表当前页面的上下文,通过它可以获取到jsp中其他隐含对象,1个顶9个
<%
String path = request.getContextPath();				//获取请求项目的根路径
String basePath=request.getScheme()+"://"		//获取请求使用的协议名(http或https)
			+request.getServerName()+":"				//获取请求url上的主机名
			+request.getServerPort()+path+"/";			//获取请求url上的端口号
%>

EL表达式
注意点:
EL中的pageContext和JSP中pageContext一样,可以获取到JSP中其他隐含对象
比如request。

${pageContext.request.contextPath}

head标签内

 <base href="<%=basePath%>"/>

拓展
运行环境信息
tomcat7
访问url:http://192.168.26.31/Web-Snapshot/servlet/DemoServlet
服务端ip:192.168.26.31
客户端ip:192.168.26.32

------服务器信息------
获取请求的URL中指向请求上下文的那部分字符串【request.getContextPath():/Web-Snapshot
获取请求使用的协议名【request.getScheme():http
获取请求使用的具体协议版本【request.getProtocol():HTTP/1.1
获取请求URL上的主机名【request.getServerName():192.168.26.31
获取请求URL上的端口号【request.getServerPort():80
获取最终接收请求的主机地址【request.getLocalAddr():192.168.26.31
获取最终接收请求的主机名【request.getLocalName():GJB-PC
获取最终接收请求的端口【request.getLocalPort():80
获取请求的方法【request.getMethod():】GET
获取请求URL从端口到请求参数中间的部分【request.getRequestURI():/Web-Snapshot/servlet/DemoServlet
获取请求URL【request.getRequestURL():】http://192.168.26.31/Web-Snapshot/servlet/DemoServlet
获取请求URL中访问servlet的那部分路径【request.getServletPath():/servlet/DemoServlet
获取给定虚拟路径在服务端的真实路径,从servlet3.0开始【request.getServletContext().getRealPath('/'):】E:\java\apache-tomcat-7.0.55\webapps\Web-Snapshot\
获取给定虚拟路径在服务端的真实路径,从servlet2.3开始【request.getSession().getServletContext().getRealPath('/'):】E:\java\apache-tomcat-7.0.55\webapps\Web-Snapshot\
 
------客户端信息------
获取发送请求的客户端地址【request.getRemoteAddr():192.168.26.32
获取发送请求的客户端主机名【request.getRemoteHost():192.168.26.32
获取发送请求的客户端端口【request.getRemotePort():52859