spring mvc首页设置

2017-06-10  本文已影响0人  Tony_Yu

SpringMVC首页访问方式

Spring MVC首页访问的设置:

  1. tomcat中配置首页
  2. spring mvc配置首页
  3. DispatcherServlet配置的servlet映射

tomcat方式

  1. 配置tomcat的web.xml
 <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
  1. 添加项目到tomcat
  2. 启动tomcat
  3. 访问项目
# http://${tomcat-ip}:${tomcat-port}/${project-name}
http://localhost/dintern

服务器在项目WebApp根目录(例如:maven项目的webapp)寻找index.html/index.htm/index.jsp,如果找到,就跳转到这些页面,如果没有找到,就去项目中找首页设置

spring mvc项目配置首页

  1. 配置springmvc的web.xml,同tomcat
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

服务器找不到tomcat中配置的首页,会寻找项目中配置的首页

DispatcherServlet配置的servlet映射

  1. web.xml配置DispatcherServlet
<servlet>
    <servlet-name>springServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
  1. Controller设置首页视图
@RequestMapping(value="/", method=RequestMethod.GET)
public String index(){
    return "index";
}

服务器会结合视图配置寻找首页,视图配置如下:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

服务器找到的首页是:/WEB-INF/views/index.jsp

Notice
spring mvc项目的DispatcherServlet的地址映射/和/*的区别

  1. /表示拦截所有的路径型url,不会匹配到模式为.jsp这样后缀型的url
  2. /* 表示拦截所有的路径型和后缀型的url(包括/login, *.jsp, .js,.html等)
  3. Reference:(https://stackoverflow.com/questions/4140448/difference-between-and-in-servlet-mapping-url-pattern)

spring mvc首页如何由controller处理

本文以spring mvc项目配置了<url-pattern>/</url-pattern>为例,说明如何让首页交给controller处理呢,下面提供两种方案。

定义欢迎页

  1. 在tomcat或者项目的web.xml添加首页配置
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
  1. 在index.jsp中添加以下代码,就会跳到指定的controller去处理
<%
response.sendRedirect(request.getContextPath()+"/login");
%>

项目中配置的路径是/

前提条件是:tomcat和项目中没有配置首页,或者配置的首页不存在

  1. web.xml
<servlet>
    <servlet-name>springServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
  1. controller
@RequestMapping(value="/", method=RequestMethod.GET)
public String index(){
    return "login";
}
上一篇下一篇

猜你喜欢

热点阅读