一:前言:自己在学习ssh的时候常常被路径给迷惑,就比如在刚刚学习jsp的servlet时,绝对路径和相对路径我就弄混了,所以专门写了一篇博客来记载。而现在自己是在学ssh的时候在此遇到路径问题,本来是可以不用理会的,但是我试验了几次,觉得和jsp中的servlet中的有区别,所以还是记载下来吧。一个中午没睡觉,好困阿。

    

    二:内容

      这次写的东西是我自己刚刚学完ssh的皮毛,仿作了一个简单的增删改查的功能,所以就拿着说明。具体内容分为以下几部分:

       (1):ssh中的绝对路径和相对路径问题

       (2):struts2中的namespace的问题

       (3):jsp文件放在WEB-INF目录下的一些安全问题和访问问题

     三:具体内容:

      (一):ssh中的相对路径和绝对路径

        首先,就开门见山,直接上代码来说吧。下面的代码jsp页面代码中我们主要看的是

<a href="${pageContext.request.contextPath}/AAA/listPersonAction">显示用户信息</a>这行代码的变化。我的项目名字是:http://localhost/ssh  线给出主界面的网址:http://localhost/ssh/index.jsp。如果点第一个的链接会直接通过action跳转到list.jsp页面,网页上的路径是这样显示的:http://localhost/ssh/AAA/listPersonAction。点击第二个没有报错,但是没有数据显示。显示的路径是这样的:http://localhost/AAA/listPersonAction,也就是说在第二个路径中即是绝对路径在找的时候的网址是http:localhost+自己写的绝对路径(在此就是/AAA/listPersonAction);在说明白点就是把项目名称去掉了。结果找不到action。在此我只想告诉大家的时此时的绝对路径没有项目名称 。谨记谨记!!!。而第三个的相对路径其实没什么,就是相对当前的网址:http://localhost/index.jsp-------------->http://localhost/AAA/listPersonAction.

  下面的是链接的代码(第一个代码是完整的路径,第二个是绝对路径路径,第三个是相对路径):

 <body>
<h1>第二个页面--web-inf页面中</h1>
<a href="${pageContext.request.contextPath}/WebRoot/WEB-INF/page/save.jsp">保存用户信息</a>
<a href="${pageContext.request.contextPath}/AAA/listPersonAction">显示用户信息</a>
</body>
 <body>
<h1>第二个页面--web-inf页面中</h1>
<a href="${pageContext.request.contextPath}/WebRoot/WEB-INF/page/save.jsp">保存用户信息</a>
<a href="/AAA/listPersonAction">显示用户信息</a>
</body>
 <body>
<h1>第二个页面--web-inf页面中</h1>
<a href="${pageContext.request.contextPath}/WebRoot/WEB-INF/page/save.jsp">保存用户信息</a>
<a href="AAA/listPersonAction">显示用户信息</a>
</body>

  在附上action的代码:

 <package name="ssh" extends="struts-default" namespace="/AAA">
<action name="savePersonAction" class="savePersonAction">
<result name="success" type="redirect">listPersonAction</result>
</action> <action name="listPersonAction" class="listPersonAction">
<result name="success">/WEB-INF/page/list.jsp</result>
</action>

  

  (二):在来说namespace的问题。刚刚接触namespace的时候觉得这家伙真么什么用处,但是我自己深入了解了之后,觉得还是很有用的,他能帮我们找到对应的action。首先先看看struts.xml中,package中我配置了一个namespace:/AAA,而且在上面的jsp的代码中也看到我的链接里面都加了一个/AAA进去,所以我说的直白点,这就是为了我们找到对应的action。在通过action跳转的时候我们都可以这样写${pageContext.request.contextPath}/namespace/action.action的形式。这样最简单明了了。这里我写车工AAA是为了更加凸显出不同。

  (三):在来说一说把jsp的页面放在WEB-INF下的安全和访问的问题,我们把jsp页面放在WEB-INF主要是为了安全的问题(这个是百度和一本叫做javaEE核心上面有讲)。

所以在我上面给出的代码中可以看到我有一个save.jsp,如果点了那个链接,我显示错误:404的路径错误,那么为什么会是404错误了,就是因为把jsp页面放在WEB-INF下是不允许直接访问的,但是可以通过<jsp:forward/>跳转(我有实验),servlet(没实验过,百度的结果),action(有实验,成功,的确可以)等方式进行跳转。道友们可以自己实验下。

  (四):结束语

  今天和一个工作的人聊天,他告诉我java基础要好,这样才能很快适应其他东西。而且说“学没学好java基础决定能不能进公司,其他的决定了你进公司的薪水”。我觉得这句话很经典啊。“万丈高楼平地起啊”,所以基础也好重要啊。努力加油。我要好好补习下java的基础啊。我自己也不知道我的java基础怎么样。come on。没出社会的小菜鸟就是这样。默默奋斗吧。骚年!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ssh中的相对路径与绝对路径的问题的更多相关文章

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

    1.在jfinal项目中 因为一直使用的jfinal,没感觉路径问题. 举个栗子,项目名字叫做test.访问一个Controller的映射为/user/add.这样,在浏览器地址栏直接:localho ...

  2. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  3. Xcode 中的相对路径与绝对路径的相关设置

    近日闲来无事,与博客园中闲荡,忽至一烟霞照耀祥瑞蒸熏松竹翠秀奇花遍开的神奇之地.如此美景,令人心生向往,故而徜徉于其中不可自拔,独乐乐不如众乐乐: iOS开发之 相对路径与绝对路径 https://d ...

  4. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  5. 【转】JSP中的相对路径和绝对路径

    1.首先明确两个概念: 服务器路径:形如:http://192.168.0.1/的路径 Web应用路径:形如:http://192.168.0.1/yourwebapp的路径 2.关于相对路径与绝对路 ...

  6. jsp中如何获得url路径和绝对路径

    jsp中如何获得url路径 request.getHeader("referer") JSP中获得当前应用的相对路径和绝对路径 根目录所对应的绝对路径:request.getReq ...

  7. asp.net中的绝对路径和相对路径

    一.关于相对路径和绝对路径相对路径转绝对路径一般,我们在ASP.NET网站中往往需要把一个相对路径转化为绝对路径.通常是用Server.MapPath()方法.比如网站根目录下有 个"Upl ...

  8. php中禁止非法调用和硬路径引入文件的方法

    php中禁止非法调用和硬路径引入文件的方法 在php中有一些公共的文件为了方便,我们会做一个公共文件,让不用的文件共同调用.为了禁止公共文件被非常单独调用,可以在文件上做一个常量,禁止非常调用:在公共 ...

  9. JSP中的相对路径和绝对路径(转)

    1.首先明确两个概念: 服务器路径:形如:http://192.168.0.1/的路径 Web应用路径:形如:http://192.168.0.1/yourwebapp的路径 2.关于相对路径与绝对路 ...

随机推荐

  1. PHP.43-TP框架商城应用实例-后台18-商品属性3-库存量管理

    库存量管理 思想:为商品的每个多选属性设置库存量!!要把多选属性排列组合分别指定库存量!! 效果如下:[由商品已经添加的属性决定] 1.建表goods_number{goods_id,goods_nu ...

  2. WPF把CheckBox的文字放到左边,开关在右边

    原文:WPF把CheckBox的文字放到左边,开关在右边 效果 实现 这篇文章给了一个不错的参考方案. http://www.codeproject.com/Articles/19141/WPF-Ch ...

  3. P1078 文化之旅

    P1078 文化之旅 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一 种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不 同的国家 ...

  4. python语法join函数

    Python语法中join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. vid = )

  5. CC3100BoosterPack和CC31XXEMUBOOST板子的测试

    1. 先测试右边的CC3100BoosterPack,测试发现LDO坏了,无法输出3.3V,所以只能用左边的板子供电. 2. 插上CC31XXEMUBOOST板子的J1,两个板子插在一起,等待驱动安装 ...

  6. 如何从海量IP中提取访问最多的10个IP

    算法思想:分而治之+Hash 1.IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理: 2.可以考虑采用分而治之的思想,按照IP地址的Hash(IP) % 1024的值,把海量IP日 ...

  7. 『AngularJS』ngShow

    原文 描述 ngShow指令显示或隐藏给定的基于标明ngShow属性的HTML元素.元素的显示或隐藏通过在元素上移除或添加ng-hide CSS类属性.".ng-hide"CSS类 ...

  8. jmeter的基本使用过程

    jmeter的基本使用过程 接下来几周,我将通过视频的方式,录制下来jmeter的基本用法,方便大家参考学习 可能导图会随时调整

  9. 第十七篇 Python函数之闭包与装饰器

    一. 装饰器 装饰器:可以拆解来看,器本质就是函数,装饰就是修饰的意思,所以装饰器的功能就是为其他函数添加附加功能. 装饰器的两个原则: 1. 不修改被修饰函数的源代码 2. 不修改被修饰函数的调用方 ...

  10. MyBatis整体了解

    背景资料 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBati ...