<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect("sysEyeLogin.ciic");%>
<html>
<head>
<base href="<%=basePath%>">
能不能解释下,这些代码的意思,为什么要用把这些代码放在首页,有什么好处?
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect("sysEyeLogin.ciic");%>
<html>
<head>
<base href="<%=basePath%>">
能不能解释下,这些代码的意思,为什么要用把这些代码放在首页,有什么好处?
basepath是你的访问路径,例如http://localhost:8080/app
response.sendRedirect("sysEyeLogin.ciic");执行跳转,即服务器进来该页面后将不做停留直接跳转到sysEyeLogin.ciic去
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect("sysEyeLogin.ciic");%>
前两句如果下面有用就留着,一个是相对路径一个是绝对路径,如果没用删掉就行了;第三句是一个跳转,是不是要实现类似过滤器的效果?第三句执行之前应该不能输出html代码吧,这应该是把他放到页面显示之前的原因
basepath是你的访问路径,例如http://localhost:8080/app
response.sendRedirect("sysEyeLogin.ciic");执行跳转,即服务器进来该页面后将不做停留直接跳转到sysEyeLogin.ciic去
这代码就是根路径和访问路径统一。
不要这样说 这个base路径的作用非常的大 正常JSP的情况是拿工程路径作为相对路径 也就是LZ发的代码的那样的写法 是他在访问任何工程中的文件的时候 都是基于你工程的根目录去访问 这样的话不会因为相对路径不同(如果不设置的话不同目录的文件或者不同路径的文件的相对路径就不一样) 而导致一些文件访问路径的错误到了struts有默认的html:base标签 他跟现在LZ生成的代码不太一样 因为他不是基于工程路径的 而是基于当前页面所在位置的(JSP所在的位置) 也就是说无论该JSP是被那个ACTION转发到这里来的 但是他的相对路径就是基于他自己的
同意,一般那个path值用得比较多
我 只知道<base href="<%=basePath%>">可以让你看源代码的时候,找到此文件的绝对路径,便于你调试程序用。
你也可以不写在首页里面嘛
关键要看你写这些代码要干什么
request.getScheme()获得协议名,默认为http
request.getServerName()获得服务器域名,本地服务器则为localhost
request.getServerPort()获得服务器端口
basePath就是指一个绝对地址类型的根路径
basePath在开发中非常有用,一般都会统一要在jsp前面加这个,可以减少相对路径的麻烦