SSH项目中:
jsp页面一般都是存放在WEB-INF下面的目录下,这样我们就不能直接访问到这些jsp页面了,保证了页面的安全性。
在struts的管理中,是利用action来实现页面的跳转,进入index.jsp即页面的首页,我们采用的方法是:
(1)在WEB-INF的这样目录下面建立一个index.jsp页面,页面中加入一句话,用来中转到项目中的首页:
,比如:WEB-INF/jsp/index.jsp
(2)在web.xml中有个文件是:
index.jsp
有了这句话,就可以在浏览器的地址栏进入到这个文件。
http://localhost:8080/index.jsp
进入到首页。
struts是采用的过滤器的方式,所以在web.xml的中可以使用/*的方式来访问路径。也可以采用.do或者.action的方式。
但是SpringMVC就不能使用/*的方式来访问。
SSM项目中进入首页的方法:
方法一:在web.xml中使用.action或者.do或者.html的方式来访问网页的时候。
此时一般将js,css,images这些静态资源放在WEB_ROOT下面,如果放在web-inf下面是访问不到的。
当采用上面方式的访问的时候,静态资源SpringMVC会自动解析这些静态资源。
如果想在地址栏中想直接输入:http://localhost:8080这种方式直接进入首页的话,有两种方法:
举个,do的形式。
(1)
第一步:修改WEB.XML中的index.do
第二步: @RequestMapping(“/index”)采用此方式返回逻辑视图index
这种方式可以直接输入地址访问。
(2)第二种方式就是在web_root下面创建一个index.jsp页面,然后使用,跳转的方式跳到项目本身的index.jsp中。
.html或者.action使用方法同理。
后期补充:当用户访问一个系统的时候,我们往往需要进行用户的拦截验证操作,即用户登录权限的控制。这个时候我们需要使用到拦截器。
用户请求到DispatherServlet中,DispatherServlet调用HandlerMapping查找Handler,HandlerMapping返回一个拦截的链儿(多个拦截),springmvc中的拦截器是通过HandlerMapping发起的。
所以这个时候设置进入首页的方式也可以是:在web_root下面创建一个index.jsp页面:
在loginController层写一个跳转的页面:
这里的first是首页的逻辑视图名。在web-inf/jsp/first.jsp
但是如果设置了拦截,因为我们这里设置的是.action的形式,所以得这样设置访问。
否则url无法拦截,因为我们在数据库中url都是.action的形式。
在企业开发,使用拦截器实现用户认证(用户登陆后进行身份校验拦截),用户权限拦截。
当在SSM项目中,web.xml中使用/的方式访问网页的时候,此时,静态资源无论放在web-root下面还是web-inf下面,都需要配置资源映射。
进入首页此时比较简单:下面方法即可
我们需要写一个controller来控制页面的跳转:
@Controller
public class PageController {
//打开首页
@RequestMapping("/")
public String pageIndex(){
return "index";
}
}
(2)springMVC的配置文件中的配置
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
(3)这里配置访问文件的前缀和后缀,比如这里的返回值是index,加上前缀和后缀,访问路径是“/”即 根路径,这样就可以访问到index.jsp了。
这个src的路径就是根路径,访问这里面的文件就是在浏览器输入:
http://localhost 8080 然后下面访问的文件名称。这里的index我们在springMVC中都配置了,所以直接输入http://localhost 8080
就可以访问到。
总结:
在SSM项目中:
所以使用.do,.action,.html的时候,在@RequestMapping中必须使用/+index进入首页。此时不能忘记在web.xml的中添加index.action或者index.do的访问
当使用/的时候,可以使用/进入首页。但是此时不能忘记进行静态资源的映射。
另外.html的方式是伪静态化页面,便于seo进行搜索,因为搜索引擎是比较喜欢html静态页面的,利用伪静态化可以便于搜索引擎收录。
伪静态化直接在web.xml的访问页面访问直接设置*.html的访问方式即可,用法跟*.do或者*.action的方式一样。