一:一般为啥要把jsp页面放在WEB-INF呐?
这样主要是为了网站的安全的角度来说的,WEB-INF是安全目录Tomcat 默认的访问路径是WebRoot下的index.jsp,放在WEB-INF下的页面一般不配置是无法访问的。
1
2
|
你的站点肯定有些页面是需要经过登录验证或其他验证后才能访问的啊,这些页面就放在web-inf里。 如果是能不经过验证就访问的页面,比如主页、登录页、欢迎页这种,就不要放在web-inf里 |
二: 下面来看如何访问Web-INF下的页面?
在创建JavaWeb工程时有个web.xml的部署描述符,在下面有个这样可以定制首页的:做如下配置来看:
1
2
3
4
|
< welcome-file-list > < welcome-file >/WEB-INF/jsp/test.jsp</ welcome-file > </ welcome-file-list > </ web-app > |
一般的Web.xml中默认的<welcome-file>中的页面是WebRoot下的index.jsp的
工程目录如下:
便可以访问了:
在浏览器中输入如下地址
访问访问成功后的页面:
在SpringMVC的视图解析器中也是配置的WEB-INF下的页面;
最后追加的一句:使用如下的地址也是访问不到的:
http://localhost:8080/JSTLTest/WebRoot/WEB-INF/jsp/test.jsp
来看具体的案例:SSM整合实现用户登录的例子中对WEN-INF下的页面的访问实现:开发环境MyEclipse 2016 CI 7
这个是基于Maven 下的SSM亏框架的整合:实现的功能是用户登录:
来看web.xml中的写法:
1
2
3
|
< welcome-file-list > < welcome-file >/WEB-INF/jsp/main.jsp</ welcome-file > </ welcome-file-list > |
来看如何访问这个小Demo:
浏览器中的地址的写法:
http://localhost:8080/TestSSM/
这样就访问成功页面了,用Maven创建项目的时候使用web-app的项目名称上会多出Maven Webapp的访问的时候不用加的,只用你项目的名称即可;
下面来看WEB-INF下的JSP页面如何实现跳转的(用a标签实现跳转)
1:一般来说将JSP页面放在Webapp下就比较容易实现了,加项目的路径就可以了或者是添加<%=basePath>绝对路径就可以了;
2:这里使用SpringMVC的控制器实现:
首先是之前的定制首页中可以用控制器实现的:
首先新建一个Controller类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@Controller public class PageController { //打来首页,可以取代web.中定义首页的 //这个只是一个视图,模型数据可以在形参里面来表示的 //这里是访问的根路径 @RequestMapping (value= "/" ,method=RequestMethod.GET) public String showLogin(){ System.out.println( "进入页面控制器啦" ); return "login" ; } //页面跳转的控制器 @RequestMapping ( "/upload" ) public String showUpload(){ System.out.println( "进入跳转页面控制器" ); return "upload" ; } } |
这个就可以不用写的:
1
2
3
4
|
<welcome-file-list> <welcome-file>/WEB-INF/jsp/test.jsp</welcome-file> </welcome-file-list> </web-app> |
这样部署项目启动服务器就可以访问了
http://localhost:8080/TestSSM 就可以访问了
来看跳转的:main.jsp位于WEB-INF下,upload.jsp位于WEB-INF下.
1: <!-- 配置跳转页面控制器 -->
<a href="upload" rel="external nofollow" >上传文件</a>
2: 页面控制器里面写
@RequestMapping("/upload")
public String showUpload(){
System.out.println("进入跳转页面控制器");
return "upload";
}
之前那个视图解析器是这样配置的.
<!--配置视图解析器 -->
1
2
3
4
|
< bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver" > < property name = "prefix" value = "/WEB-INF/jsp/" /> < property name = "suffix" value = ".jsp" /> </ bean > |
到此这篇关于Java项目中如何访问WEB-INF下jsp页面的文章就介绍到这了,更多相关Java访问WEB-INF下jsp页面内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/HcJsJqJSSM/article/details/61615520