1、打开eclipse,在eclipse先创建一个web工程项目。在WebContent下创建两个文件,分别为index.jsp,doRequest.jsp,在WEB-INF下创建inner.jsp文件。工程目录如图。
2、index.jsp,doRequest.jsp,inner.jsp的内容如图。
3、这里解释一下doRe孥恶膈茯quest.jsp中的内容。doRequest.jsp会根据index.jsp传来的信息,判断选用哪种方式跳转到足毂忍珩inner.jsp。如果选择直接访问inner.jsp,则执行代码window.location = "./WEB-INF/inner.jsp";如果是选择通过请求转发的方式跳转到inner.jsp,则执行代码request.getRequestDispatcher("./WEB-INF/inner.jsp").forward(request, response);如果选择通过jsp:forward标签跳转到inner.jsp,则执行代码<jsp:forward page="./WEB-INF/inner.jsp"></jsp:forward>如果选择通过将jsp页面当成servlet访问的话,则执行代码window.location = "./inner";要将jsp页面当成servlet访问,得在web.xml配置映射路径,web.xml中的内容如图。
4、启动tomcat,结果如图。
5、首先选择直接访问WEB-INF下的inner.jsp。点击提交后,网页报404错误,说明无法直接从前台页面访问WEB-INF下的inner.jsp。
6、接着选择请求转发访问WEB-INF下的jsp。结果可以看到显示的页面是inner.jsp,说明访问成功,地址栏上仍然显示的是doRequest.jsp。
7、再接着选择使用jsp:forward访问WEB-INF下的jsp。结果看到结果跟选择请求转发勃谧锵疙访问WEB-INF下的jsp的方式差不多。其实请求转发和jsp:forward实质上是一样的,jsp:forward只是为了和html一样,使用的一种标签的形式。
8、最后选择将jsp页面作为servlet访问。也能成功访问到inner.jsp,地址栏上显示的地址是在web.xml中设置的inner。
9、总结一下。在不使用框架的续异收俱情况下,访问WEB-INF下的jsp主要有三种方式(其实也可以说成两种),第一种使用枣娣空郅java代码,通过请求转发访问;第二种是通过jsp:forward标签去访问,实质和第一种相同;第三种是将jsp看成servlet(实质上jsp就是一个servlet),在web.xml中配置好映射路径后,再进行访问。个人认为第三种方式会好点,这样就不会在html代码中嵌套和java有关的东西,只需提供一个路径给js或form中的action就可以了。