Springmvc中获取前端参数的方法

一、HttpServletRequest

@RequestMapping("/...")
public ModelAndView doSome(HttpservletRequest request,HttpServletResponse response,HttpSession session)
{
String name = request.getParameter("name");//接收到的参数

}

二、HttpServletResponse

三、HttpSession

四、用户提交的数据

接收用户提交的参数:

1.逐个接收

第一种:

要求:处理器方法的形参名和请求中参数名必须一致。同名的请求参数赋值给同名的形参

例如,用前端用表单提交数据时

<form action="dosome.do" method="post">
<input type="text" name="name">
<input type="text" name="age">
<input type="submit" value="提交">
</form>
@Controller
class MyController{

@RequestMapping("/dosome.do")
public ModelAndView doSome(String name,int age)
{
    //可以直接使用参数...
    //例如:
    ModelAndView mv = new ModelAndView();
    mv.addObject("myname",name);
    mv.addObject("myage",age);
    ......
    .......
}

}

框架处理参数的原理:

①使用request对象接收请求参数

String strName = request.getParameter("name");
String strAge = request.getParameter("age");

②springmvc框架通过DispatcherServlet调用MyController中的dosome()方法,调用方法时,按名称对应,把接收的参数赋值给形参

dosome(strName,Integer.valueOf(strAge));

框架会提供类型转化的功能,能把String转为int、long、float、double等类型。所以可以直接在方法中使用参数中的值

注意事项:如果上述案例中int age接收的值为空值,页面会出现400错误

解决办法:使用它的包装类Integer。参数中使用包装类命名变量,可以避免空字符串转化的错误

@Controller
class MyController{

@RequestMapping("/dosome.do")
public ModelAndView doSome(String name,Integer age)
{
    //可以直接使用参数...
    //例如:
    ModelAndView mv = new ModelAndView();
    mv.addObject("myname",name);
    mv.addObject("myage",age);
    ......
    .......
}

}

第二种:

使用@RequestParam注解,解决请求中参数名与形参名不一样的问题

@RequestParam的 属性:1.value 请求中的参数名称

                                           2.required 是一个boolean,默认为true,true表示请求中必须包含此参数

                                位置:在处理器方法形参定义的前面

例如,现在有一个表单提交数据

<form action="dosome.do" method="post">
<input type="text" name="rname">
<input type="text" name="rage">
<input type="submit" value="提交">
</form>
@Controller
class MyController{

@RequestMapping("/dosome.do")
public ModelAndView doSome(@RequestParam(value = "rname") String name,@RequestParam(value = "rage") Integer age)
{
    ModelAndView mv = new ModelAndView();
    mv.addObject("myname",name);
    mv.addObject("myage",age);
    ......
    .......
}

}

2.对象接收

将处理器方法的参数定义为一个对象,只要保证请求参数名与这个对象的属性同名即可。

创建一个保存请求参数值的普通类,属性名和请求中的参数名相同

public class Student{
    private String name;
    private int age;


    get...
    set...

}
@Controller
class MyController{

@RequestMapping("/dosome.do")
public ModelAndView doSome(Student student)
{
    ModelAndView mv = new ModelAndView();
    mv.addObject("myname",student.getName());
    mv.addObject("myage",student.getAge());
    mv.addObject("mystudent",student);
    ......
    .......
}

}

框架会创建形参的java对象,给属性赋值。比如,请求中的参数是name,框架会调用它的setName()方法

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring MVC获取MySQL的图片可以通过以下步骤完成: 1. 在MySQL数据库创建一个表来存储图片,可以使用BLOB类型来存储二进制数据。 2. 在Spring MVC创建一个Controller用于获取图片数据。 3. 在Controller使用JDBC或MyBatis等框架从MySQL数据库读取图片数据。 4. 将读取到的图片数据以字节数组的形式返回给前端。 5. 在前端使用<img>标签来显示图片,将图片的src属性设置为返回的字节数组的Base64编码。 下面是一个简单的示例代码: ```java @Controller public class ImageController { @Autowired private JdbcTemplate jdbcTemplate; @RequestMapping(value = "/image/{id}", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE) public ResponseEntity<byte[]> getImage(@PathVariable("id") int id) throws IOException { byte[] imageBytes = jdbcTemplate.queryForObject("SELECT image_data FROM images WHERE id = ?", new Object[]{id}, byte[].class); return ResponseEntity.ok().contentType(MediaType.IMAGE_JPEG).body(imageBytes); } } ``` 在上面的代码,我们定义了一个`getImage`方法用于获取图片数据。方法参数`id`表示要获取的图片的ID。方法的返回值是一个`ResponseEntity<byte[]>`对象,其包含了图片的字节数组和图片的MIME类型。在方法,我们使用JdbcTemplate从MySQL数据库查询图片数据,并将查询结果直接返回给前端。在前端,我们可以使用以下HTML代码来显示图片: ```html <img src="/image/1"> ``` 其,`/image/1`表示要获取ID为1的图片。当浏览器加载这个图片时,会向服务器发送一个HTTP请求,服务器会返回图片的字节数组,浏览器会将这个字节数组解码并显示图片。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值