面试 springmvc配置文件怎么配置

面试 springmvc配置文件怎么配置,第1张

现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。

一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0)

1. jar包引入

Spring 2.5.6:spring.jar、spring-webmvc.jar、commons-logging.jar、cglib-nodep-2.1_3.jar

Hibernate 3.6.8:hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、antlr-2.7.6.jar、commons-collections-3.1、dom4j-1.6.1.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar、slf4j-nop-1.6.4.jar、相应数据库的驱动jar包

SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。

DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么我们先来配置一下DispatcherServlet,好让它能够管理我们希望它管理的内容。HttpServlet是在web.xml文件中声明的。

<!-- Spring MVC配置 -->

<!-- ====================================== -->

<servlet>

<servlet-name>spring</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring-servlet.xml</param-value> 默认

</init-param>

-->

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>spring</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

<!-- Spring配置 -->

<!-- ====================================== -->

<listener>

<listenerclass>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

<!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:config/applicationContext.xml</param-value>

</context-param>

spring-servlet.xml配置

spring-servlet这个名字是因为上面web.xml中<servlet-name>标签配的值为spring(<servlet-name>spring</servlet-name>),再加上“-servlet”后缀而形成的spring-servlet.xml文件名,如果改为springMVC,对应的文件名则为springMVC-servlet.xml。

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

http://www.springframework.org/schema/context <a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd">http://www.springframework.org/schema/context/spring-context-3.0.xsd</a>">

<!-- 启用spring mvc 注解 -->

<context:annotation-config />

<!-- 设置使用注解的类所在的jar包 -->

<context:component-scan base-package="controller"></context:component-scan>

<!-- 完成请求和注解POJO的映射 -->

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

<!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" />

</beans>

DispatcherServlet会利用一些特殊的bean来处理Request请求和生成相应的视图返回。

关于视图的返回,Controller只负责传回来一个值,然后到底返回的是什么视图,是由视图解析器控制的,在jsp中常用的视图解析器是InternalResourceViewResovler,它会要求一个前缀和一个后缀

在上述视图解析器中,如果Controller返回的是blog/index,那么通过视图解析器解析之后的视图就是/jsp/blog/index.jsp。

首先引入schema 什么都不用说了吧。

然后就是配置资源路径

<mvc:resources mapping="/skin/**" location="/skin/"/>

之后引入注解驱动

<mvc:annotation-driven />

然后注解的组建扫描路径统一放在com/res目录下

<context:component-scan base-package="com.res" />

接下来配置文件前缀后缀 例子是velocity开发的

<bean id="velocityConfig"

        class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">

        <property name="configLocation" value="/WEB-INF/classes/velocity.properties" />

        <property name="resourceLoaderPath">

            <value>/WEB-INF/vm/</value>

        </property>

        <property name="velocityProperties">

            <props>

                <prop key="input.encoding">gbk</prop>

                <prop key="output.encoding">gbk</prop>

            </props>

        </property>

    </bean>

    <bean id="viewResolver"

        class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">

        <property name="suffix">

            <value>.vm</value>

        </property>

        <property name="contentType">

            <value>text/htmlcharset=gbk</value>

        </property>

        <property name="exposeSessionAttributes">

            <value>true</value>

        </property>

        <property name="toolboxConfigLocation" value="/WEB-INF/classes/toolbox.xml"/>

        <property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityToolboxView"/>

    </bean>

之后配置文件上传限制什么的

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

        <property name="maxUploadSize" value="10240000"/>     

    </bean>

最后配置拦截器处理

    <mvc:interceptors >  

          <mvc:interceptor>

            <mvc:mapping path="/member/*" />

            <mvc:mapping path="/resource/*" />

            <bean class="com.res.utils.interceptors.MemberAuthInterceptor"></bean>  

        </mvc:interceptor>

    </mvc:interceptors>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7984654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存