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中,测试结果:

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

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

    接口请求:

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

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

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

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

     将web项目导入到eclipse中常见错误  错误1:string cannot be resolved to a type  原因:这种情况一般是因为你的JDK版本没有设置好,或者设置的有不一致的 ...

  2. 5- 如何把MyEclipse中的web项目导入到Eclipse中运行

    from: 如何把MyEclipse中的web项目导入到Eclipse中运行 2016年09月12日 20:57:51 dancheren 阅读数:35329 标签: eclipse 更多 个人分类: ...

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

    原文链接:http://www.thinksaas.cn/topics/0/350/350000.html 一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选 ...

  4. myeclipse中的web项目导入到eclipse中注意事项,项目部署到tomcat后无法访问jsp文件

    打开eclipse,点击空白处,右键可以看到import>general>existing projects into workspace>next>选择你的myeclipse ...

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

      一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Applica ...

  6. Myeclipse的web项目移植到Eclipse中需要添加的包

    3.jstl.jar 4.standard-1.1.2.jar 把Myeclipse的web项目一直到Eclipse当中需要添加的包主要有一下4个: 1.servlet-api.jar 2.jsp-a ...

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

    IDEA 14.0.5 apache-tomcat-8.0.32 步骤:File->New Project,在Java列表中勾选Web Application(3.1),点击Next 建立web ...

  8. myeclipse的web项目导入到eclipse中

    环境组成: java8 eclipse4.4.2 for javaee tomcat 7.0.61 1.导入myeclipse项目 2.设置JDK环境 3.将导入的项目修改为web项目 将myecli ...

  9. IntelliJ IDEA 学习(二):Intellij IDEA 创建Web项目并在Tomcat中部署运行IDEA

    一.创建Web项目  1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Applicat ...

随机推荐

  1. segmentControl实现控制器的切换

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  2. entityframework使用oracle的几个小问题

    问题一:Operation is not valid due to the current state of the object 生成的edmx文件有问题,解决方法参考链接 问题二:InvalidO ...

  3. Xamarin.Android之MvvmCross

    欢迎大家加入以下开源社区 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn  ...

  4. objective-c(继承)

    objective-c的继承给出基础例子及注意点: 定义并实现基类ClassA #import <Foundation/Foundation.h> @interface ClassA : ...

  5. Cloneable接口和Object的clone()方法

    为什么要克隆 为什么要使用克隆,这其实反映的是一个很现实的问题,假如我们有一个对象: public class SimpleObject implements Cloneable { private ...

  6. PSP记录个人项目耗时

    PSP2.1 Personal Software Process Stage Time Planning 计划 90 ·Estimate ·估计这个任务需要多长时间 90 Development 开发 ...

  7. (小常识)Dictionary的遍历

                Dictionary<int, string> objDictionary = new Dictionary<int, string>();       ...

  8. IOS 其它语言比较-Objc与JAVA的比较

    1. Objc是一门编译型语言,JAVA是解析型语言 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序.然后,可直接运行这个程序. 编译型语言,执行速度快.效率高:依赖编译器.跨平台性差些. ...

  9. 说说设计模式~ 模版模式(Template)

    返回目录 模版模式,又被称为模版方法模式,它可以将工作流程进行封装,并且对外提供了个性化的控制,但主流程外界不能修改,也就是说,模版方法模式中,将工作的主体架构规定好,具体类可以根据自己的需要,各自去 ...

  10. Atitit 理解Monad attilax总结

    Atitit 理解Monad attilax总结 但函数式编程最大的一个问题是,函数是一个数学抽象,在现实世界中不存在,1 那既然这样就够用了,还要 Monad 干嘛?Monad 的作用在这里就体现出 ...