SpringMvc

原文网址:http://www.cnblogs.com/fozero/p/6137495.html

springmvc的post请求中文乱码问题,Get方式的中文乱码问题?

post方式的乱码,在web.xml文件中添加过滤器处理乱码:

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                    <param-name>encoding</param-name>
                    <param-value>utf-8</param-value>
            </init-param>
</filter>
<filter-mapping>
     <filter-name>CharacterEncodingFilter</filter-name>
     <url-pattern>/*</url-pattern>
</filter-mapping>

对于get请求中文乱码问题方法有两个:

(1)修改tomcat配置文件:

<ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

(2)在实际编码中对参数进行重新编码:

String  param = new String(request.getParamter("person").getBytes("ISO8859-1"),"utf-8");

web.xml的详细配置前端控制器:

<servlet>
    <servlet-name>spring-mvc</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>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

注解的处理器映射器和适配器配置:

<mvc:annotation-driven/>

视图解析器配置视图前缀和后缀:

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

返回值会通过视图解析器为实际的物理视图,对于 InternalResourceViewResolver 视图解析器,会做如下的解析:
   通过 prefix + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作;

Springmvc常见注解:

(1)@Controller

   @Controller标记在类上,在springmvc-servlet.xml中管理控制器:

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

(2)@requestMapping

  用来处理请求地址的映射注解,可用于类和方法上面,用于类上表示该类的所有方法都是以该地址为父路径。

  @RequestMapping注解有六个属性:

 1、 value

    value:指定请求的实际地址;

     2、method;

    method: 指定请求的method类型, GET、POST、PUT、DELETE等

 3、consumes

    consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

  4、produces

    produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

  5、params

    params: 指定request中必须包含某些参数值是,才让该方法处理。

  6、headers

    headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

  以@RequestMapping标记的处理方法支持的参数:

  (1)HttpServlet对象:HttpServletRequest,HttpServletResponse,HttpSsssion;

  (2)Spring自己的WebRequest;

  (3)InputStream,OutputStream,Reader,Writer;

  (4)使用@PathVariable,@RequestParam,@CookieValue,@RequestHeader标记的参数

  (5)使用@ModelAttribute标记的参数;

  (6)Map,Model,ModelMap;

  (7)实体类;

  (8)Spring封装的MultipartFile;

  (9)Spring封装的Errors和BindingResult对象;

(3)@Resource和@Autowired

         @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。不同的是@Autowired是按照byType来注入,@Resource是按照ByName来注入,如果想让@Autowired按照byName可以借助@Qualifier,默认@Autowired要求注入的对象必须不为null,如果有可能是null,则配置required=false

(4)@Pathvariable

  用于将请求URL中的动态参数映射到处理方法的形参中:

@Controller
public class UserController{
     @RequestMapping("/user/{formId}")
     public String getUserForm(@PathVariable("formId") String formId ){
            return formId;

    }  
    

}

(5)@CookieValue:获取Cookie的值

(6)@RequestParam:用于将请求参数中的数据映射到controller方法中的形参

(7)@SessionAttributes:用于将值放在session中,写在class上面

(8)@ModelAttribute:用于注解和方法参数中,对应的controller方法执行之前先调用@ModelAttribute方法。

(9)@ResponseBody

  返回的数据不是页面,而是其他某种格式的数据时(json,xml等)使用。

SpringMvc  controller方法中返回值可选类型

(1)ModelAndView;(2)Model;(3)ModelMap;(4)Map;(5)View;(6)String;(7)void

转载于:https://www.cnblogs.com/xiaoweigangwan/p/7844343.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值