WEB-INF中的jsp跳转方法(一种实现)

时间:2022-01-03 13:42:58

知识点:

1.项目为了相对安全,外界不能直接访问我的页面,所以将jsp放入WEB-INF文件加下,这样必须通过servlet跳转进行访问。配置controller实现跳转。


详细:


方法一:

1.本例是在 springMVC + spring +mybatis下实例。


2.添加跳转的controller,进行跳转(包含一级jsp和二级jsp跳转,如果有更多层级,仿照例二添加)

层级表示   在WEB-INF/login.jspWEB-INF/user/login.jsp

package top.lushunde.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
/**
* @package: top.lushunde.controller
* @Title: PageController
* @Description: WEB-INF中的jsp跳转
* @Company: 个人测试
* @author MrLu
* @date 2016-11-14 下午12:13:00
*/
@RequestMapping("page")
@Controller
public class PageController {

/**
* @Title: toPage
* @Description: 二级页面跳转,例如 WEB-INF/user/login.jsp
* @param: @param pageName1 例如 user
* @param: @param pageName2例如 login
* @param: @return
* @return: ModelAndView user/login
* @throws
* @author MrLu
* @Date 2016-11-14 下午12:08:18
*/
@RequestMapping(value = "{pageName1}/{pageName2}", method = RequestMethod.GET)
public ModelAndView toPage(@PathVariable("pageName1") String pageName1,@PathVariable("pageName2") String pageName2) {
ModelAndView mv = new ModelAndView(pageName1+"/"+pageName2);
return mv;
}


/**
* @Title: toPage
* @Description: 一级页面跳转,例如 WEB-INF/logout.jsp
* @param: @param pageName1 例如 logout
* @param: @return
* @return: ModelAndView login
* @throws
* @author MrLu
* @Date 2016-11-14 下午12:08:18
*/
@RequestMapping(value = "{pageName1}", method = RequestMethod.GET)
public ModelAndView toPage(@PathVariable("pageName1") String pageName1) {
ModelAndView mv = new ModelAndView(pageName1);
return mv;
}


}

2.修改springMVC配置文件的页面跳转配置,添加上 WEB-INF 前缀

<!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
<bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

3.在html或者jsp中请求WEB-inf下的jsp使用

<a href="/lushunde/page/user/login">登陆</a>
/lushunde 项目名 可以省略,采用相对路径访问,可以使用jsp的内置对象
/pagecontroller第一的访问路径
/user/login二级域名访问路径


4.返回的页面文件地址     WEB-INF/jsp/user/login.jsp