Struts2项目改SpringMvc

由于是线上项目,这里先引入SpringMvc,共存,新功能用SpringMvc,旧功能再慢慢替换

1、配置Springmvc拦截后缀

        <!-- Start 配置struts2 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	<!-- End 配置struts2 -->
	
	<!-- Start SpringMVC配置 -->  
	<servlet>  
	    <servlet-name>springmvc</servlet-name>  
	    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
	    <init-param>  
	        <param-name>contextConfigLocation</param-name>  
	        <param-value>classpath:spring-mvc.xml</param-value>  
	    </init-param>  
	    <load-on-startup>1</load-on-startup>  
	</servlet>  
	<servlet-mapping>  
	    <servlet-name>springmvc</servlet-name>  
	    <url-pattern>*.mvc</url-pattern>  
	</servlet-mapping>  
	<!-- End SpringMVC配置 -->  

2、在登录拦截器中加入.mvc拦截,作为Springmvc拦截标识 

   <!-- 登录过滤器-->
   <filter>  
        <filter-name>loginFilter</filter-name>  
        <filter-class>com.framework.security.UserLoginFilter</filter-class>  
    </filter>
    <filter-mapping>  
        <filter-name>loginFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>  
    </filter-mapping>
    <filter-mapping>  
        <filter-name>loginFilter</filter-name>
        <url-pattern>*.do</url-pattern>  
    </filter-mapping>
    <!-- springMVC加入登录拦截 -->
    <filter-mapping>  
        <filter-name>loginFilter</filter-name>
        <url-pattern>*.mvc</url-pattern>  
    </filter-mapping>

3、请求参数特殊字符过滤中添加.mvc拦截

    <!-- 请求参数特殊字符过滤-->
    <filter>  
        <filter-name>IllegalCharacterFilter</filter-name>  
        <filter-class>com.framework.security.IllegalCharacterFilter</filter-class>  
    </filter>
    <filter-mapping>  
        <filter-name>IllegalCharacterFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>  
    </filter-mapping>
    <filter-mapping>  
        <filter-name>IllegalCharacterFilter</filter-name>
        <url-pattern>*.do</url-pattern>  
    </filter-mapping>
    <filter-mapping>  
        <filter-name>IllegalCharacterFilter</filter-name>
        <url-pattern>*.mvc</url-pattern>  
    </filter-mapping>

4、在sql注入参数特殊字符过滤中添加.mvc拦截

    <!-- sql注入参数特殊字符过滤-->
    <filter>  
        <filter-name>sqlInjectionFilter</filter-name>  
        <filter-class>com.framework.security.SqlInjectionFilter</filter-class>  
    </filter>
    <filter-mapping>  
        <filter-name>sqlInjectionFilter</filter-name>
        <url-pattern>*.do</url-pattern>  
    </filter-mapping>
    <filter-mapping>  
        <filter-name>sqlInjectionFilter</filter-name>
        <url-pattern>*.mvc</url-pattern>  
    </filter-mapping>

5、测试

通过@ResponseBody将对象自动转换为JSON返回时,报错了。


@Controller
@RequestMapping("/home")
public class HomeController {
    @RequestMapping("/category")
    @ResponseBody
    public Category category() {
        return new Category(1, "默认分类");
    }

    /**
    * 为了方便先这么写这个类~
    **/
    public static class Category{
        public int getCateId() {
            return cateId;
        }

        public void setCateId(int cateId) {
            this.cateId = cateId;
        }

        public String getCateName() {
            return cateName;
        }

        public void setCateName(String cateName) {
            this.cateName = cateName;
        }

        public int cateId;
        public String cateName;
        public Category(int cateId, String cateName) {
            this.cateId = cateId;
            this.cateName = cateName;
        }
    }
}

---------------------
作者:YinXinLion 
来源:CSDN 
原文:https://blog.csdn.net/qq_27602093/article/details/81748935?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!
406解析:HTTP 协议中的 406 Not Acceptable 状态码表示客户端错误,指代服务器端无法提供与  Accept-Charset 以及 Accept-Language 消息头指定的值相匹配的响应。

发现HTTP Response的content-type是text/xml。而不是application/json。

解决方法,需要我们添加POM依赖:
        <!-- 解决注解返回JSON,抛出406错误 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.7.9</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.7.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.7.9.1</version>
        </dependency>

---------------------
作者:YinXinLion 
来源:CSDN 
原文:https://blog.csdn.net/qq_27602093/article/details/81748935?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!

感谢作者:YinXinLion    https://blog.csdn.net/qq_27602093/article/details/81748935?utm_source=copy  修改而来

猜你喜欢

转载自blog.csdn.net/songling515010475/article/details/82984035