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

简介: 1.在jfinal项目中   因为一直使用的jfinal,没感觉路径问题。   举个栗子,项目名字叫做test.访问一个Controller的映射为/user/add.这样,在浏览器地址栏直接:localhost:8080/user/add就可以直接访问到add方法了。

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

 





唯有不断学习方能改变! -- Ryan Miao
目录
相关文章
|
8月前
|
JavaScript
新员工webpack打包后上传服务器页面空白
新员工webpack打包后上传服务器页面空白
47 0
|
8月前
|
前端开发 C++
【Qt】实现显示指定路径目录结构
使用 Qt 的 QTreeView 显示指定路径下的目录结构
286 0
C#获取应用程序所在路径的父级目录
C#获取应用程序所在路径的父级目录
|
Java
为什么写路径这事有点复杂?动态Web工程内编写路径【JavaWeb】
为什么写路径这事有点复杂?动态Web工程内编写路径【JavaWeb】
70 0
为什么写路径这事有点复杂?动态Web工程内编写路径【JavaWeb】
解决web项目导入到idea后,文件的蓝色小点消失了(web文件资源根路径)
解决web项目导入到idea后,文件的蓝色小点消失了(web文件资源根路径)
解决web项目导入到idea后,文件的蓝色小点消失了(web文件资源根路径)
jsp页面编程时的路径问题(绝对路径与相对路径)
浅谈在进行jsp页面编程时,路径问题的解决(绝对路径与相对路径)
C#(三十六)之文件夹、路径、环境特殊目录类
本篇内容记录了文件类操作、文件夹操作、Directory类方法、Path类方法和字段、Environment获取电脑的相关属性方法。
197 0
C#(三十六)之文件夹、路径、环境特殊目录类
C#(三十三)之路径(Path)
路径由System.Drawing.Drawing2D命名空间的GraphicsPath类实现。路径的紫图行可以是直线、弧、椭圆、矩形等几何图形。如果起点和终点闭合,则称之为闭合路径,否则称之为开放路径。
254 0
C#(三十三)之路径(Path)
|
SQL 数据库 C++
解决 | VS 2015右键项目添加新项中没有web窗体等选项
刚装完的VS2015,打开网站之后右键项目添加新项时,没有web窗体,SQL Server数据库等选项,如: 解决方法:工具—>扩展和更新: 更新安装ASP.
2497 0