WEB-INF下jsp之间的跳转

在做项目的过程中,发现自己在WEB-INF目录下jsp页面的相互跳转出现了问题,无论是用相对路径还是绝对路径都报错,后来发现这是JSP的安全性在作怪,WEB-INF目录下的东西是不能被用户访问的,提高了安全性,但有时候我们需要访问该页面时,要怎么做呢?

普通web项目:

  • 方式一 : 使用request.getRequestDispatcher("/WEB-INF/views/a.jsp").forward(request,response);

注意 : 不能使用重定向

如WEB-INF/views目录下有a.jsp和b.jsp两个页面,你想由a跳转到b.
可在webapp目录下新建一个jsp页面c.jsp,先由a.jsp跳转到c.jsp,再由c.jsp跳转到b.jsp.

a.jsp
	<a href="<%=basePath%>c.jsp">跳转</a>
	c.jsp
	<a href="<%request.getRequestDispatcher("/WEB-INF/views/b.jsp").forward(request,response);%>">跳转</a>
	b.jsp
  • 方式二 : <jsp:forward page ="/WEB-INF/views/b.jsp" />

在webapp下新建一个c.jsp,在jsp写上上面的代码.a.jsp–>c.jsp–>b.jsp

  • 方式三 : 在web.xml里面配置servlet和servlet mapping
 <servlet>
	   <servlet-name>goto</servlet-name>
	   <jsp-file>/WEB-INF/views/b.jsp</jsp-file>--要跳转到的页面
	 </servlet>
	 <servlet-mapping>
	   <servlet-name>goto</servlet-name>
	   <url-pattern>/test</url-pattern>
	 </servlet-mapping>

配置好了就可以在a.jsp页面中使用a标签跳转了<a href=<%=basePath%>test">测试页面跳转</a>

SSM项目下的一种跳转方式:

  1. 添加跳转的controller
@RequestMapping("/page")
	@Controller
	public class PageController {
		@RequestMapping("{pageName}")
		public ModelAndView toPage(@PathVariable("pageName") String pageName){
			ModelAndView mv = new ModelAndView(pageName);
			return mv ;

2.spring-mvc中

<!-- 配置jsp 显示ViewResolver -->
	    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
	        <property name="prefix" value="/WEB-INF/views/"/>
	        <property name="suffix" value=".jsp"/>
	    </bean>

3.在jsp中的使用

<a href="<%=basePath%>/views/b">登陆</a>
		/<%=basePath%>  项目名  可以省略,采用相对路径访问,也可以使用jsp的内置对象
		/viewse	controller第一的访问路径
				
先吐槽下:jsp 页面,mmp,wlgq.fuck 好了言归正传,说一下今天遇到的问题(整整一天 ,mmp ),记得在很早之前做jsp 页面的时候,是可以通过后端,直接定位,或者转发过去。 但今天就fuck egg 的很,怎么搞都不对,前后端一起试,终于在要下班的时候解决了,老夫很是开心啊!!! 需要特别注意的是, WEB_INF 受保护的,重定向地址栏改变,相当于浏览器直接访问这个路径下,不能被直接访问. 一开始没在意到这个,浪费了好久时间。 其实后端应该也可以实现的: @ApiOperation("页面
ssm实现在WEB-INF目录下的jsp页面的跳转 这个跳转问题使我困扰了好久,我是这样解决的,希望可以帮助到大家 问题:WEB-INF目录下的jsp页面的跳转报错(userList.jsp页面跳转到addUser.jsp页面,再由addUser.jsp跳转到userList.jsp页面) 解决方法:在controller创建类......
最近搭建的springboot的web简单demo工程,能够正常返回Controller层的数据,就是无法返回指定的jsp页面。访问资源就报 404资源无法找到。 以下就是自己在核实问题时候的关键图文记录: 总的来说, 1 参考网上资源搭建一个web项目,为springboot搭建起来的项目添webapp目录。主意是设置webapp的相关projectStruct 2 追spingboot对...
之前在WEB-INF跳转页面失败,网上查了原因是WEB-INF下的文件夹保密性比较强,直接跳转页面是没法跳转的,所以我选择了把相关的页面转移到了WEB-INF的上一级目录下,即与WEB-INF同级,这样就可以直接跳转了. 这次又遇到这个问题了,不想再用那种解决办法,研究了一下网上发现可以在web.xml配置,如下: <servlet> <servlet-name>goto</servlet
通常有两种方法:一种是web.xml中配置。另一种是写控制器(controller)的方法。这里只讲配置web.xml的方法。 本列:index.jsp和login.jsp在同一WEB-INF目录下。 通过index2.jsp中的a标签登录跳转的到login.jsp页面。 登录&nbsp;&nbsp; 配置web.xml亲测结果:
前几天刚上手的时候,在web-inf文件下的页面之间的相互跳转,我一般都是通过servlet来进行的,那样的话必须另外再写一个servlet来进行,这样的话就很麻烦,虽然是安全性达到了,于是我想到是否有一种方法可以直接进行页面间的跳转,今天看了大神的博客,从中学到了这样的一种方法,赶紧收下来。。。。。 这一种方法是通过在web.xml里边进行配置实现的,配置代码为(我的jsp页面在web-inf
针对javaweb项目,通常将jsp页面放在WEB-INF目录下,通过程序内部进行访问,防止外部用户通过地址栏直接访问。但是当WEB-INF目录下的文件需要使用外部的css、js或者图片文件时,使用相对路径却没办法载。 此时,需要使用到文件的绝对路径,即在访问的路径前上项目名,如下: 动态获取项目名:${pageContext.request.contextPath}  或者 &lt;%=...