社交网站后端项目开发日记(一) (3)

image-20210714000959995

利用这种方式,不论是返回数据还是获取数据都很方便。

另外,通过路径方式传参查询的话:(注意,路径长度并不是无限的,并不可以传很多参数)

// /student/123 查询某个学生,直接放在路径中 @RequestMapping(path = "/student/{id}", method = RequestMethod.GET) @ResponseBody public String getStudent(@PathVariable("id") int id) { System.out.println(id); return "a student"; }

注意以上传参时使用的两个注解。

POST请求

如何向浏览器提交数据?

在项目静态文件中添加html文件,action指示路径

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>增加学生</title> </head> <body> <form method="post" action="/community/alpha/student"> <p> 姓名:<input type="text"> </p> <p> 年龄:<input type="text"> </p> <p> <input type="submit" value="保存"> </p> </form> </body> </html> //POST请求 @RequestMapping(path = "/student", method = RequestMethod.POST) @ResponseBody public String saveStudent(String name, int age) { System.out.println(name); System.out.println(age); return "success"; }

在Controller中代码如下,展示效果:

image-20210714003253800

控制台:

image-20210714003310693

响应HTML数据

从程序内部响应到HTML

//响应HTML数据 @RequestMapping(path = "/teacher", method = RequestMethod.GET) public ModelAndView getTeacher() { //这个对象就是向前端控制器返回的moder和view ModelAndView mav = new ModelAndView(); mav.addObject("name", "张三"); mav.addObject("age", 30); mav.setViewName("/demo/view");//这个view实际上指的是view.html return mav; }

Controller代码

此外,还需要一个动态网页,利用thymeleaf模板引擎(resource/templates)。

<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <!--声明这不是html文件,而是一个thymeleaf模板--> <head> <meta charset="UTF-8"> <title>Teacher</title> </head> <body> <p th:text="${name}"></p> <p th:text="${age}"></p> </body> </html>

实现效果,程序已经设定初始值。

image-20210714004731050

模板引擎会自动进行处理。

image-20210714004749881

另一种方式:

@RequestMapping(path = "/school", method = RequestMethod.GET) public String getSchool(Model model) { //前端控制器会创建一个model model.addAttribute("name","大学"); model.addAttribute("age",80); return "/demo/view"; //这里return的是view的路径 }

这两种方式是model和view的对象使用方式不同。效果还是一致的,第二种要更加简便一些。

image-20210714005338290

响应JSON数据

异步请求可以理解为:当前网页不刷新,但是进行了数据交互,比如注册账号时,经常会检测用户名是否重复,这时候网页并没有刷新,但是访问了数据库进行查询。

//响应JSON数据(异步请求) // Java对象传给浏览器:需要转为JS对象,这时候就可以通过JSON进行转化 // Java对象-> JSON字符串 -> JS对象等等 @RequestMapping(path = "/emp", method = RequestMethod.GET) @ResponseBody public Map<String,Object> getEmp() { //自动会将map转为JSON字符串 Map<String,Object> emp = new HashMap<>(); emp.put("name","张三"); emp.put("age",23); emp.put("salary",8000.00); return emp; }

注意,这里并没有返回html。

这里只是简单介绍了响应方式,以后的博客中会介绍具体应用及代码。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsfds.html