javaWeb(3)

来源:互联网 发布:小米数据迁移苹果 编辑:程序博客网 时间:2024/06/15 22:36

javaWeb(3)

    • javaWeb3
      • 1拦截器
      • 2Repository
      • 3ModelAndVIewModelMapMap
      • 4ResponseBody注解和返回类型为ResponseBody

(1)拦截器

自定义的拦截器必须实现HandlerInterceptor接口

—preHandle():这个方法在业务处理器处理请求之前被调用

—postHandle():这个方法在业务处理器处理完请求后,但是DispatchServlet向客户端返回相应前被调用

—afterCompletion:这个方法在DispatchServlet完全处理完请求后被调用

(2)@Repository

@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

(3)ModelAndVIew/ModelMap/Map

这里有篇详细的文字

package com.controller;import java.util.HashMap;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping(value = "/return")public class LearnReturnType {    /**     * Model本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的返回值来设置跳转url     * 地址别名或者物理跳转地址     *     * @param model     *            一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类     * @return 跳转url地址别名或者物理跳转地址     */    @RequestMapping(value = "/index1")    public String index1(Model model) {        model.addAttribute("result", "后台返回index1");        return "result";    }    /**     * ModelMap对象主要用于传递控制方法处理数据到结果页面,类似于request对象的setAttribute方法的作用。 用法等同于Model     *     * @param model     * @return 跳转url地址别名或者物理跳转地址     */    @RequestMapping(value = "/index2")    public String index2(ModelMap model) {        model.addAttribute("result", "后台返回index2");        return "result";    }    /**     * ModelAndView主要有两个作用 设置转向地址和传递控制方法处理结果数据到结果页面     * @return 返回一个模板视图对象     */    @RequestMapping(value = "/index3")    public ModelAndView index3() {        ModelAndView mv = new ModelAndView("result");        // ModelAndView mv = new ModelAndView();        // mv.setViewName("result");        mv.addObject("result", "后台返回index3");        return mv;    }    /**     * map用来存储递控制方法处理结果数据,通过ModelAndView方法返回。     * 当然Model,ModelMap也可以通过这种方法返回     * @return 返回一个模板视图对象     */    @RequestMapping(value = "/index4")    public ModelAndView index4() {        Map<String, String> map = new HashMap<String, String>();        map.put("result", "后台返回index4");        return new ModelAndView("result", map);    }}

看了博客和一些文字发现,其实最后的结果是一样的,所以没什么区别。

突然有一个疑问:ModelAndView和ModelMap用法是:主要用于传递控制方法处理数据到结果页面,那他们之间有什么不同的用法呢?哪个用在jsp方便?哪个用在html+ajax方便呢?—挖个坑先吧。

我自己动手试试

 @RequestMapping("/showAllEP")    public String showAllEP(ModelMap modelMap){        System.out.println("请求showAllEp");        List<EnterpriseEntity> ls=epService.findAll();        for(EnterpriseEntity e:ls){            System.out.println("我叫做:"+e.getId()+"__"+e.getEpName());        }        System.out.println("showALL");        modelMap.addAttribute("EPList",ls);        return "welcome";    }

然后在html 里面

choose a your belonged company:<table border="1 px" align="center">    <thead>        <tr>            <th>公司名</th>            <th>缩写</th>        </tr>    </thead>    <tbody>        <#list EPList as ls>            <tr>                <td>                    ${ls.id!""}                </td>                <td>                    ${ls.epName!""}                </td>            </tr>        </#list>    </tbody>

数据是可以拿到的,哎 我用markdown不方便插图片

(4)@ResponseBody注解和返回类型为@ResponseBody

更好的文章

看到了@ResponseBody的两种不同的用法,一个是标注在方法之上,一个是作为方法的返回类型来返回。

总的流程:

  1. @Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用;
  2. 在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。例如,异步获取 json 数据,加上 @Responsebody 注解后,就会直接返回 json 数据。
  3. @RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

直接使用@ResponseBody设计到与ajax、json这些知识,我会在接下来继续完善。

写到这里要做个小归纳:目前在用SpringMVC/html/ajax来交互其后台的时间,想知道,ModelAndView/ModelMap/Map的区别,哪个方便用ajax来现实数据呢之类都是我最近学习的重点。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 故宫网上预定后怎么办 坐游轮如果晕船怎么办 听听力反应慢怎么办? 毕业证照片丢了怎么办 离线网盘有违规内容怎么办 手机不能向下拉怎么办 cad运行不了插件怎么办 ai中缺少文字怎么办 电脑被格式化了怎么办 迷你世界地图下载失败怎么办 网页上广告太多怎么办 网页打开广告太多怎么办 PS界面图标小怎么办 百度地图反应慢怎么办 汽车导航不播报怎么办 wps菜单栏隐藏了怎么办 手机导航声音小怎么办 手机导航不好用怎么办 手机导航箭头不准怎么办 手机处于离线状态怎么办 穷人让人看不起怎么办 非洲人口过多怎么办啊 鼻子上长白头怎么办 高铁查到违禁品怎么办 青岛涂料备案证怎么办 淘宝集运不能寄怎么办 防静电指数过高怎么办 手机玻璃上裂痕怎么办 车辆环保检测不合格怎么办 眼镜被擦破镜片怎么办 手机边框有刮痕怎么办 手机金属壳磨损怎么办 手机后面凹下去怎么办 pu鞋子有刮痕怎么办 漆皮皮鞋有刮痕怎么办 手机有屏幕刮痕怎么办 鞋子刮花了怎么办 手机上屏幕划痕怎么办 篮球鞋磨小脚趾怎么办 小白鞋边上蹭黑怎么办 行李忘在高铁上怎么办