zoukankan      html  css  js  c++  java
  • springmvc06

    处理器方法的参数


    处理器方法可以包含以下四类参数,这些参数会在系统调用时由系统自动赋值,即程序员可以在方法中直接使用。

    1 HttpServletRequest 请求
    2 HttpServletResponse 应答
    3 HttpSession 会话
    4 请求中所携带的请求参数
    1
    2
    3
    4

    前三类参数使用方式

    @Controller
    public class MyController {
    @RequestMapping(value = "/some.do")
    public ModelAndView doSome(HttpServletRequest request,
    HttpServletResponse response,
    HttpSession session){
    ModelAndView mv = new ModelAndView();
    mv.addObject("msg","欢迎使用springmvc做web开发" + request.getParameter("name"));
    mv.addObject("fun","执行的是doSome方法");
    mv.setViewName("show");
    return mv;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    逐个参数接收
    接收用户提交的参数:处理器(控制器)方法的形参名和请求中的参数必须一致

    @Controller
    public class MyController {
    /*
    * 逐个接收请求参数:
    * 要求:处理器(控制器)方法的形参名和请求中的参数必须一致
    * 同名的请求参数赋值给同名的参数
    *
    * 框架接收请求参数:
    * 1 使用request对象接收请求参数
    * String strName = request.getParameter("name");
    * String strAge = request.getParameter("age");
    * 2 springmvc框架通过dispatcherServlet 调用MyController的doSome方法
    * 调用方法时,按名称对应,把接收的参数赋值给形参 doSome(strName,Integer.valueOf(strAge))
    * 框架会提供类型转换的功能,把String转换为 int ,long ,float ,double等
    *
    * */
    @RequestMapping(value = "/some.do")
    public ModelAndView doSome(String name,Integer age){
    System.out.println("dosome方法的,name="+name+", age="+age);

    ModelAndView mv = new ModelAndView();
    mv.addObject("myname",name);
    mv.addObject("myage",age);
    mv.setViewName("show");
    return mv;
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

    对应的index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
    <title>Title</title>
    </head>
    <body>
    <p>提交参数给Controller</p>

    <form action="some.do" method="post">
    姓名:<input type="text" name="name"><br/>
    年龄:<input type="text" name="age"><br/>
    <input type="submit" value="提交参数">
    </form>

    <%-- <p><a href="user/other.do">发起other.do请求</a></p>--%>
    </body>
    </html>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    注意:在提交请求参数的时候,get请求方式中文没有乱码;post请求方式中文有乱码,需要使用过滤器处理乱码问题。

    //在web.xml配置过滤器
    <!--注册声明过滤器,解决post请求乱码的问题-->
    <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>

    <!--强制请求对象(HttpServletRequest)使用encoding编码的值-->
    <init-param>
    <param-name>forceRequestEncoding</param-name>
    <param-value>true</param-value>
    </init-param>

    <!--强制应答对象(HttpServletResponse)-->
    <init-param>
    <param-name>forceResponseEncoding</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter>

    <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <!--
    /* : 表示强制所有的请求先通过过滤器处理
    -->
    <url-pattern>/rl-pattern>
    </filter-mapping>

  • 相关阅读:
    《Machine Learning in Action》—— 白话贝叶斯,“恰瓜群众”应该恰好瓜还是恰坏瓜
    《Machine Learning in Action》—— 女同学问Taoye,KNN应该怎么玩才能通关
    《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”
    深度学习炼丹术 —— Taoye不讲码德,又水文了,居然写感知器这么简单的内容
    《Machine Learning in Action》—— 浅谈线性回归的那些事
    《Machine Learning in Action》—— 懂的都懂,不懂的也能懂。非线性支持向量机
    《Machine Learning in Action》—— hao朋友,快来玩啊,决策树呦
    《Machine Learning in Action》—— 剖析支持向量机,优化SMO
    《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM
    JVM 字节码指令
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908513.html
Copyright © 2011-2022 走看看