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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39905910/article/details/82803155

脚本片段
注意点:
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
展开阅读全文

没有更多推荐了,返回首页