web项目中,视图层中关于相对路径和绝对路径

1.在jfinal项目中

  因为一直使用的jfinal,没感觉路径问题。

  举个栗子,项目名字叫做test.访问一个Controller的映射为/user/add.这样,在浏览器地址栏直接:localhost:8080/user/add就可以直接访问到add方法了。当然,这样需要通过配置不同的端口来发布不同的项目,不然肯定冲突了。端口指定项目的路径。

比如:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="test" reloadable="true" /> 

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

  而之前学的ssh以及springmvc等,在tomcat中需要通过项目名识别项目。即localhost:8080/test/user/add。

  这是因为:在jfinal中默认项目路径为/,然后项目中所有的路径都是相对项目的,即相对于test.

  所以,对于静态资源,web页面的引用js和img可以把webroot看做是/,比如图片位于webroot/img/1.jpg.在页面引用:/img/1.jpg.浏览器访问:localhost:8080/img/1/jpg.

     对于服务请求接口,直接:/user/add.浏览器访问:localhost:8080/user/add.

2.一些测试

  /代表的是webapps。即tomcat中发布的默认根路径。

  所有的请求(静态资源也是请求)都要/test/请求相对于项目的路径。

  在html中:

      静态资源:等测试后再写,TODO--

  在jsp中:

      今天学习springmvc中,测试结果:

      静态资源:需要相对路径或者相对于项目路径或者绝对路径。举例:

  • 绝对路径:            
1 <!-- 关于路径问题:/表示tomcat的webapps文件夹。如果/js/jq.js,控制台显示找不到localhost:8080/js/....肯定找不到,因为应该是test/js下的
2         可以使用相对路径,这里因为设置了bashPath,就是项目即test,所以页面直接写相对于项目的路径,即:js/jq.....
3      -->
4   <script type="text/javascript" src="/test/js/jquery-1.8.2.min.js"></script>
  • 相对路径直接相对于本jsp的位置写就可以了。这个在涉及动态跳转就会失效。不可以。
  • 正常使用的是相对于项目路径,即在head处:
 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
12   </head>
13 <body></body>
14 </html>

    接口请求:

        同理,和静态资源加载一样,采用绝对路径的时候可以/test/user/add.

        推荐以及通常使用:在head出天价base标签,然后就可以这样请求接口:user/add

时间: 2024-12-28 19:58:35

web项目中,视图层中关于相对路径和绝对路径的相关文章

java web项目,java类中获得WEB-INF路径

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 private static String getWebInfPath() {         URL url = 当前类.class.getProtectionDomain().getCodeSource().getLocation();         String path = url.toString();         int index = pat

IDEA 创建Web项目并在Tomcat中部署运行

IDEA 14.0.5 apache-tomcat-8.0.32 步骤:File->New Project,在Java列表中勾选Web Application(3.1),点击Next 建立web名称,选择下一步 弹出选项中建议选择New Window,这样比较方便,并勾选前面的勾,这样下次开发就不用考虑这个了,很方便 在WEB-INF下建立两个文件夹,分别为:classes和lib,在Eclipse中进行过开发的很清楚这两个文件夹的作用,classes可以存放编译过的Java文件,lib可以存放

Intellij IDEA 创建Web项目并在Tomcat中部署运行(不使用maven)【转载】

原文链接:http://www.thinksaas.cn/topics/0/350/350000.html 一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Application,勾选 Create web.xml选项,点击Finish 4.在项目的WEB-INF目录下点击右键,New -> Directory,创建classes和lib两个目录 5.File -&g

Intellij IDEA 创建Web项目并在Tomcat中部署运行

一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Application,勾选 Create web.xml选项,点击Finish 4.在项目的WEB-INF目录下点击右键,New -> Directory,创建classes和lib两个目录  5.File -> Project Structure (Ctrl + Shift + Alt + S),进入Proje

Myeclipse的web项目导入到Eclipse中

1.导入项目的文件夹是什么名字,则source-path就配置成什么,如eclipse:WebContent,MyEclipse:WebRoot,或者是webapp都可以,这样在发布到tomcat中时,才会将文件夹下的内容发布. <wb-resource deploy-path="/" source-path="/WebRoot"/> 2.把生成的没用的文件夹删除. 参考:eclipse 导入myeclipse web项目 在直接ImportMyEcli

如何把MyEclipse中的web项目导入到Eclipse中运行

有时我们需要将MyEclipse中的项目导入到Eclipse中运行,如果不注意到一些细节,会造成无法运行的后果.下面就说说具体操作: 如何导入到Eclipse就不在重述了,导入后出现如下错误: 与上面Eclipse生成的web项目对比发现少了Deployment Descriptor:......这个项,因此我们要把它添加进来,如何添加?首先我们选定刚导入的项目右键打开其属性properties,选定Project Facets,点击Convert to faceted form...,进去后勾

Eclipse动态Web项目导入到IDEA中

对于Web动态项目,不同于以往的静态项目,直接Open即可,需要以下步骤. (PS:对于动态web项目,不可像静态tomcat那样部署) import projec create projec from exiting source next-next-next-next 创建Artifacts 菜单-> File -> Project Structure -> Artifacts -> 加号 -> Web Application Exploded -> from Mo

将web项目导入到eclipse中常见错误

错误1:string cannot be resolved to a type 原因:这种情况一般是因为你的JDK版本没有设置好,或者设置的有不一致的地方. 解决方案: 1.首先检查window->preferences->Java->compiler 和Installed JRE的版本是否一致,不一致请设置一致它.这时候如果还报错请看第二步. 2.在项目上右键->properties->Java Build Path->Libraries中检查其中的JRE跟你在第一步

怎么将java web 项目导入idea 中

1.将 java web 项目导 入idea 中, 显示 然后进行 Configure 配置. 2. 点击 open module settings. 3. 4. 选择jar包. 5. 6. 配置tomcat . 7.