SSM整合框架知识学习

1.注解式开发之annotation-driven解释

(1)mvc注解驱动在哪个文件中配置?
SpringMVC配置文件中配置
(2)配置mvc注解驱动使用哪个标签?
mvc:annotation-driven</mvc:annotation-driven>

2.注解式开发之视图解析器

(1)视图解析器起到什么作用?
在请求转发是可以对路径进行填充,减少代码的冗余
(2)视图解析器如何使用?
可以使得我们在填写路径时自动在前面或者后面添加字符

<!--自定义视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"></property><!--配置前缀-->
    <property name="suffix" value=".jsp"></property>     <!--装配后缀-->
</bean>

3.处理器方法常用参数

(1)处理器方法的常用参数有哪些?
原生态的(HttpServlet)request、response @RequestMapping(方法体名) @RequestParam(value=””,defualtValue=””) String name. 给请求数据设置默认值。也用于请求键名和别名的对应,集合对象时必须使用RequestParam来设置键名。
@PathVariable用来声明参数来源于路径中。
@ResponseBody,用于声明响应数据类型是json类型
SpringMVC控制层常用的承载数据的对象有哪些?
实体类对象,和集合对象

4.参数接收之逐个接收

(1)在后端控制器中如何接收前台参数?

@RequestMapping("/{path}")
public String demo(@PathVariable String path){
    return path;
}

(2)在后端控制器中接收前台“age”参数,是否需要手动转换成int类型,为什么?
不需要,SpringMVC会自动获取并在转型。
参数接收之对象整体接收
(3)简述以对象形式整体接收参数的步骤?

/*SpringMVC获取表单数据方式三*/
@RequestMapping("demo4")
public String demo4(User user){
    System.out.println(user);
    return "success.jsp";
}

(4)以对象形式整体接收参数有什么要求?
参数名称需要和属性名称一样

5.参数接收之数组或集合接收参数

(1)请简述用数组或集合接收参数的步骤?

/*SpringMVC获取表单数据方式四*/
@RequestMapping("demo5")
public String demo5(String[] hobby){
    System.out.println(hobby[0]);
    return "success.jsp";
}

(2)请描述数组和集合接收参数的区别?
获取具体值的方式不同

6.参数接收之域属性参数接收及restful风格传参

(1)域属性参数的接收需要注意什么?
参数名称需要和属性名称一样
(2)什么是restful风格传参?
把参数放在url路径中。

/*测试result方式传递数据*/
@RequestMapping("/demo7/{uname}/{pwd}")
public String demo7(@PathVariable String uname,@PathVariable String pwd){
    System.out.println(uname+"---"+pwd);
    return "success.jsp";
}

7.参数接收之接收json

(1)如何在后端控制器中接收前台传过来的Json字符串?

@RequestMapping("ajax")
public void ajax1(String name, HttpServletResponse resp) throws IOException {
    resp.setContentType("text/html;charset=utf-8");
    Student stu = new Student(19,"张三","男");
    resp.getWriter().println(new Gson().toJson(stu));
}

(2)如何将页面中的Json对象转换成Json字符串?
在这里插入图片描述

8.获取请求头中信息@RequestHeader

(1)请求头中有哪些常用信息?
在这里插入图片描述
(2)@RequestHeader该注解放到什么位置?
方法的形参形式

9.处理器方法返回值类型String

(1)处理器方法何时使用String作为返回值类型?

/*
* 请求转发:完整写法:forward:/index.jsp
* 相对路径:index.jsp(..index.jsp)
* 根路径:/index.jsp
* 绝对路径:http://www.baidu.com 不支持
* */
@RequestMapping("demo1")
public String demo1(){
   // return "index.jsp";
    //return "/index.jsp";
    return "forward:/index.jsp";
}
/*
* 重定向:redirect:/index.jsp
* 相对路径:index.jsp(..index.jsp)
* 根路径:/index.jsp
* 绝对路径:http://www.baidu.com
* */
@RequestMapping("demo2")
public String demo2(){
    //return "redirect:/index.jsp";
    return "redirect:http://www.baidu.com";
}

(2)如果处理器方法返回值类型为String,默认情况访问该方法会如何跳转?
会默认调用请求转发。

10.处理器方法无返回值void

(1)如果处理器方法无返回值,那么能否进行资源跳转及传递数据,如何实现?
可以,通过原生的resp进行调整
(2)何时处理器方法无返回值较合适?
直接响应

11.处理器方法返回值类型Object

(1)如何将处理器方法返回值返回到前台?
返回带Object类型。

12.请求转发与重定向

(1)请描述请求转发与重定向区别?
在这里插入图片描述
(2)在javaEE中请求转发和重定向是如何实现的?

req.getRequestDispatcher("/show.jsp");
resp.sendRedirect("/show.jsp");

13.文件上传

(1)文件上传时,表单中添加了什么属性,具体值是什么?
将form表单的提交方式设置为post 将form表单属性ectype的值设置为multipart/form-data
(2)使用springMVC进行文件上传时,接收文件的参数类型是什么?
MultipartFile photo

14.文件下载

(1)该视频中后端控制器方法的返回值类型是什么?
void
(2)文件下载时后端控制器中涉及哪些步骤?
1.获取下载图片路径;2.获取输出流资源,输出流资源。3.响应体重输出内容。

15.自定义拦截器

(1)如何自定义拦截器?

public class MyInterCeptor implements HandlerInterceptor {
    /**
     * 控制单元方法执行前
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("preHandle()");
        return false;
    }

    /**
     * 数据处理后
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle()");
    }

    /**
     * 页面渲染前
     * @param httpServletRequest
     * @param httpServletResponse
     * @param o
     * @param e
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("afterCompletion()");
    }
}

(2)如何注册拦截器?

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/servlet/login"/>
        <bean id="my" class="an.sz.interceptor.MyInterCeptor"></bean>
    </mvc:interceptor>
</mvc:interceptors>

16.自定义拦截器-添加拦截器后执行流程(对应31-32视频)

(1)自定义拦截器实现HandlerInterceptor接口需要实现哪些方法,这些方法分别是何时执行?

public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception{};
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView m)throws Exception {}
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {}

(2)程序中有多个拦截器,那么程序的执行流程是怎样的?
按配置文件的配置顺序执行

17.Spring与SpringMVC父子容器关系解释

(1)简述Spring与SpringMVC的关系?
SpringMVC是Spring的子容器。
注意:SpringMVC和Spring在使用时,需要各自声明配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值