处理器方法中的参数类型有很多,常用的有6种(这些参数值都是由系统自动赋值,程序员只需要在处理器方法中直接使用即可)HttpServletRequest、HttpServletResponse、HttpSession Model、Map<String,Object>,请求中所携带的参数。今天着重说明后两种。
一、中文乱码问题:
中文乱码问题的解决分get方法和post方法,方法不一样解决思路也不一样,但是最好的解决方法就是使用过滤器,为此,我们的框架已经为我们定义好了,只需要调用就好了。
在web.xml中注册过滤器:
二、map作为处理器的参数:
说明:map.put()相当于request.setAttribute()。
我们在welcome.jsp页面中${name}${age}就能获取相应的数据。
三、逐个接收表单中的数据:
当然也可以通过Map<String,String> map共享数据,如图:
我们在weclcome页面通过${name}、${age}便可获得相应数据。
注意:逐个接收数据有这样的弊端:
面对大量数据需要传递接收时,效率比较低。
不能把数据自动放进请求域里。
四、校正请求参数名称:
上面逐个接收的例子,我们表单的name和处理器方法中定义的名字一样,倘若不一样怎么解决呢?
表单传过来的是name和age,但是方法里确是sname、sage,为了保证运行,必须通过校正符校正。
五、使用map整体接收参数:
注意:
map接收数据不会自动装换类型。
不会自动放到request域里。
六、使用自定义类型对象对请求参数进行整体接收:
创建student类和school类如图:
创建表单:
处理器:
我们在welcome页面通过${student}即可输出表单传过来的所有数据。
七、RESTFUL风格,获取路径变量的参数:
这种方法处理的参数不是来自于表单,而是来自于路径。