JAVA--高级基础开发

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

    1. @CookieValue

作用:

用于指定 cookie 名称的值传入控制器方法的参数

属性:

value 指定 cookie 的名称

required:是否必须有请求头

    1. @RequestHeader

作用:

 获取请求头消息

属性:

value 指定请求头的名称

required:是否必须有请求头

    1. @ModelAttribute

作用:该注解时 springmvc4.x 以后新增的,它可以用于修饰方法和参数

出现在方法上,表示当前方法会在控制器的方法执行前,先执行。它可以修饰没有返

回值的方法,也可以修饰有返回值的方法。

出现在参数上,获取指定的数据给参数赋值

属性:

value 用于获取数据的 key。key 可以是 pojo 的属性名称,也可以是 map 的 key

什么时候使用?

当表单提交数据不是完成的实体类数据时,保证没有提交数据的字段使用数据原有

的值或者默认值

@ModelAttribute

 public void display(User user){

 user.setUserName("小花");

 System.out.println("=========先执行 display 方法========="+user);

 }

    1. @SessionAttribute

作用:

用于会话直接参数的共享(如果多次执行控制器方法,而且需要参数共享)

属性:

value:用于指定存入的属性名称

type:用于指定存入的数据类型

<h3>注解@SessionAttribute</h3>

<a href="testSession">放入数据</a>

<a href="getSession">取出数据</a>

=============================================================

@Controller

@SessionAttributes(value = {"userName","age"},types = {String.class,Integer.class})

public class RestfulControllerDemo {

    /**

     * 把数据存入 sessionattribute 中

     * @param model Model 是 spring 提供的一个接口,该接口有一个实现类

         ExtendedModelMap,该类继承了 ModelMap

     * ,而 ModelMap 就是 LinkedHashMap 的子类

     * @return

     */

    @RequestMapping("/testSession")

    public String testSession(Model model){

        model.addAttribute("userName","博道 IT");

        model.addAttribute("age",2);

        return "success";

    }

    /**

     * 获取 sessionAttribute 中的值

     * @param map

     * @return

     */

    @RequestMapping("/getSession")

    public String getSession(ModelMap map){

        System.out.println(map.get("userName"));

        System.out.println(map.get("age"));

        return "success";

    }

  • 响应数据和视图

4.1 返回字符串结果

控制器方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址

4.2 无返回值 void

@Controller

public class ResultController {

    @RequestMapping("/testResult")

    public  void testReturnMethod(HttpServletRequest  request, HttpServletResponse response) throws ServletException, IOException {

        //请求分派转向页面

      request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);

        //重定向是无法访问/WEB-INF 目录下的资源的,可以访问 web 根目录下的资源

        response.sendRedirect("");

    }

}

4.3 ModelAndView

ModelAndView 是 SpringMVC 提供的一个对象,该对象也可以用作控制器方法的返回值,

该对象中有两个方法:
@RequestMapping("/testMav")

    public ModelAndView testMav(){

        ModelAndView mav=new ModelAndView();

        //指定响应的数据

        mav.addObject("name","zhangsan");

        mav.addObject("age",22);

        //指定要跳转页面的逻辑视图名称

        mav.setViewName("success");

        return mav;

}

在页面中,可以通过 EL 表达式获取值,实际上 ModelAndView 默认也是采用的请求分派进行资源的跳转。

<h2>ModelAndView</h2>

姓名:${name},年龄:${age}

4.4 重定向和请求分派

1 如果使用了 forward,则路径必须写成实际视图 URL,不能写逻辑视图名

它相当于:

request.getRequestDispatcher("/WEB[1]INF/pages/success.jsp").forward(request,response);

使用请求分派,既可以转发到 jsp,也可以转发到控制器。

//请求分派

    @RequestMapping("/testForward")

    public String testForward(HttpServletRequest request){

        //指定响应的数据

        request.setAttribute("name","小明");

        request.setAttribute("age",26);

        return "forward:/WEB-INF/pages/success.jsp";

    }

  1. 如果使用Rediret重定向,它相当于 response.sendRedirect("");
  2. 需要注意,如果是重定向到 jsp 页面,则 jsp 页 面

 * 不能位于/WEB-INF/目录下,否则无法找到

//重定向

    @RequestMapping("/testRedirect")

    public String testRedirect(){

        return "redirect:reset.jsp";

    }

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:

(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====

天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。

发布了110 篇原创文章 · 获赞 0 · 访问量 3692

猜你喜欢

转载自blog.csdn.net/jishulaozhuanjia/article/details/104906065