iteye_169 2011-06-09 18:11
浏览 597
已采纳

Spring3 MVC如何直接访问jsp、html

初学Spring3 MVC,我的配置是这样的:

 

<servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

 我想使用RESTFull的url,所以不想加后缀.action,.do之类的,但是这样的话我的所有请求都得过DispatcherServlet,我不能访问html和jsp页面了(可能直接访问jsp页面不被rest提倡,但是我确实有这个需求),

不知道怎么实现(按照上面的配置直接访问html和jsp会被过滤,而且不能直接访问views下的页面),谁对这个熟的,帮忙下撒~~

 

总结下:我的需要是,如果没有任何尾缀的url则使用spring的DispatcherServlet进行过滤,若尾缀是html或者jsp就直接访问,不经过spring的过滤,请别告诉我使用mvc:resources,我需要其他方式访问jsp

  • 写回答

3条回答 默认 最新

  • ccilt 2011-06-13 20:11
    关注

    [quote]明显不会是这种,default是跟容器相关的,再说你这样也不能直接访问jsp[/quote]不能访问jsp是你没在default中配置。
    其它方法思路
    1 写filter 提前对jsp后缀过滤转发
    2 改写DispatcherServlet的doDispatch方法(迫不得已) 你看看Spring的DispatcherServlet的源码就会明白。doDispatch首先会调用getHandler找相应的controller, 如果找不到会抛异常, 一般jsp的文件也不会在controller中映射的, 是肯定找不到的。如果不改写的话第一关都过不了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流