一:前言:自己在学习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. windows下oracle 11g r2 安装过程与卸载详细图解

    Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...

  2. .NET基础知识之七——索引器

           索引器是什么?有什么作用?索引器允许类的实例以访问数组的形式来访问对象里面的属性.如我们经常可以看到类似于dr["name"]="test",或者 ...

  3. 源码-集合:ArrayList

    只是文章摘录,还未研究 JAVA ArrayList详细介绍(示例) http://www.jb51.net/article/42764.htm Jdk1.6 JUC源码解析汇总 - 永远保持敬畏之心 ...

  4. XPATH之normalize-space(.)和normalize-space(text())区别

    normalize,字面意思就是正规化,加上space大概意思就是空格的处理了. 官方解释是这样的: 通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化.如果省略了该参数,上下文节点 ...

  5. LightGBM详细用法--机器学习算法--周振洋

    LightGBM算法总结 2018年08月21日 18:39:47 Ghost_Hzp 阅读数:2360 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  6. 制作一个简易计算器——基于Android Studio实现

    一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...

  7. DFS(3)——poj1321棋盘问题

    一.题目回顾 题目链接:棋盘问题 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于 ...

  8. python基础之删除文件及删除目录的方法

    下面来看一下python里面是如何删除一个文件及文件夹的~~ 1 2 3 4 5 6 7 8 #首先引入OS模块 import os #删除文件:  os.remove() #删除空目录:  os.r ...

  9. 软工实践Beta冲刺(4/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  10. web相关基础知识3

    一 .浮动布局   ★元素浮动之后不占据原来的位置,脱离标准流 ★浮动的盒子在一行上显示 ★行内元素浮动之后转换为行内块元素.(不推荐使用,会脱离标准流,转行内元素最好使用display: inlin ...