深爱那片海 发表于 2015-1-18 11:37:44

JAVA网站制作之jsp+servlet路径形态的测试

什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。js|servlet
路径形态测试

目标
测试jsp之间相互跳转,servlet跳转jsp情况下相对路径和绝对路径的形态
寻觅出一种通用的办理举措


资本

打成的WAR包
MyWAR

构成文件
JSP
a.jsp

b/
b.jsp
ccc.jsp


Servlet

TestServlet.javamapping:/layer1/layer2/TestServlet


流程形貌
1.由a.jsp间接跳转到b.jsp

由a.jsp提交到TestServlet,TestServlet依据a的提交选择响应跳转体例(forward/sendRedirect)
然后跳转到b.jsp
2.b.jsp包括一系列超链,来显现分歧体例的跳转后超链的情形
/a.jsp
../a.jsp
../../a.jsp
../../../a.jsp

ccc.jsp
/b/ccc.jsp
../ccc.jsp
../b/ccc.jsp
../../ccc.jsp
../../b/ccc.jsp
../../../ccc.jso
../../../b/ccc.jsp

/b/b.jsp



测试了局


短语交换

http://localhost:8080/=>ip/
/MyWAR/=>war/
http://localhost:8080/MyWAR/=>ip/war/
/MyWAR=>(request.getContextPath())





跳转体例间接跳转<a..>servlet/forwardservlet/sendRedirect
requestDispatcher.forwardresponse.sendRedirect
---------------------+---------------------+----------------------------------+------------------------
servlet中跳转的路径x/b/b.jsp/war/b/b.jsp
---------------------+---------------------+----------------------------------+------------------------
跳转后扫瞄器的地点栏ip/war/b/b.jspip/war/layer1/layer2/TestServletip/war/b/b.jsp
---------------------+---------------------+----------------------------------+------------------------
b.jsp中的链接列表扫瞄器形态条呈现的链接地点
<ahref="这里的形貌"
---------------------+---------------------+----------------------------------+------------------------
/a.jspip/a.jspip/a.jspip/a.jsp
../a.jspip/war/a.jspip/war/layer1/a.jspip/war/a.jsp
../../a.jspip/a.jspip/war/a.jspip/a.jsp
../../../a.jspip/a.jspip/a.jspip/a.jsp

ccc.jspip/war/b/ccc.jspip/war/layer1/layer2/ccc.jspip/war/b/ccc.jsp
/b/ccc.jspip/b/ccc.jspip/b/ccc.jspip/b/ccc.jsp
../ccc.jspip/war/ccc.jspip/war/layer1/ccc.jspip/war/ccc.jsp
../b/ccc.jspip/war/b/ccc.jspip/war/layer1/b/ccc.jspip/war/b/ccc.jsp
../../ccc.jspip/ccc.jspip/war/ccc.jspip/ccc.jsp
../../b/ccc.jspip/b/ccc.jspip/war/b/ccc.jspip/b/ccc.jsp
../../../ccc.jspip/ccc.jspip/ccc.jspip/ccc.jsp
../../../b/ccc.jspip/b/ccc.jspip/b/ccc.jspip/b/ccc.jsp


/b/b.jspip/war/b/b.jspip/war/b/b.jspip/war/b/b.jsp
---------------------+---------------------+----------------------------------+------------------------




总结

由下面的列表看出,只要最上面一行是有实践意义并且不管以任何体例跳转链接地点都是准确无误的
1.在jsp中的“/”暗示的根为“ip”,不包括WAR路径
2.在servlet中以forward体例利用的“/”暗示的根为“ip/war/”,包括了WAR路径
3.在servlet中以sendRedirect体例利用的“/”暗示的根为ip,不包括WAR路径
4.在servlet中以forward体例跳转,则扫瞄器的地点栏仍旧为此servlet,不会改动
5.在servlet中以sendRedirect体例跳转,则扫瞄器的地点栏改动为目标路径
6.绝对路径切实其实定是以扫瞄器的地点栏显现的路径为基准的,而非详细的目次布局,以是
跳转到同目次下的某个页面利用<ahref="文件名">link</a>这类体例不是永世建立的
(做asp的人不要惊奇,这里说的jsp和servlet:))
7.为了不jsp跳jsp,servlet跳jsp,forward体例跳转,sendRedirect跳转发生的路径成绩,
关于jsp和利用sendRedirect跳转的servlet,接纳间接利用带
容器路径的相对路径就能够完全办理,即:
1)<%
StringcontextPath=request.getContextPath();
Stringurl=contextPath+"/user/login.jsp";
%>

<ahref="<%=url%>">login</a>
2)....
StringcontextPath=request.getContextPath();
StringtargetPath=contextPath+"/user/login.jsp";
RequestDispatcherrd=request.getRequestDispatcher(targetPath);
rd.forward(request,response);
......

关于利用forward跳转的servlet,则不要加容器路径,不然就反复呈现容器路径,缘故原由拜见2

8.假如利用的“../”过量也不会呈现严峻成绩,“../”最多使链接抵达“ip/”
9.别的,在利用
<jsp:includepage="url"flush="true"/>
<%@includefile="url"%>
<%@pageerrorPage="url"%>时,
这里url利用的“/”暗示的根为“ip/war/”,包括了WAR路径



还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。

飘飘悠悠 发表于 2015-1-21 11:30:46

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

小魔女 发表于 2015-1-25 14:42:37

是一种将安全性(Security)列为第一优先考虑的语言

分手快乐 发表于 2015-2-2 22:31:25

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

精灵巫婆 发表于 2015-2-7 12:08:45

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

冷月葬花魂 发表于 2015-2-21 20:41:28

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

山那边是海 发表于 2015-3-1 03:07:15

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

活着的死人 发表于 2015-3-10 12:25:54

是一种将安全性(Security)列为第一优先考虑的语言

飘灵儿 发表于 2015-3-11 05:11:57

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

愤怒的大鸟 发表于 2015-3-14 16:55:09

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

第二个灵魂 发表于 2015-3-20 04:27:31

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

金色的骷髅 发表于 2015-3-20 11:04:54

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

再见西城 发表于 2015-3-29 01:11:52

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

蒙在股里 发表于 2015-4-8 18:30:38

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

若相依 发表于 2015-4-12 18:34:15

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

莫相离 发表于 2015-4-19 17:13:43

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

小女巫 发表于 2015-4-24 01:12:22

是一种为 Internet发展的计算机语言

若天明 发表于 2015-5-2 03:53:13

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

只想知道 发表于 2015-5-9 06:18:13

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

爱飞 发表于 2015-6-20 20:22:53

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
页: [1] 2
查看完整版本: JAVA网站制作之jsp+servlet路径形态的测试