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