美文网首页
spring mvc首页设置

spring mvc首页设置

作者: Tony_Yu | 来源:发表于2017-06-10 11:20 被阅读0次

    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";
    }
    

    相关文章

      网友评论

          本文标题:spring mvc首页设置

          本文链接:https://www.haomeiwen.com/subject/invqqxtx.html