SpringMVC

1.基础概念

  • MVC
控制器Controller参数请求
视图View图形设计页面显示
模型Model实现算法业务逻辑
  • 优点

       低耦合性,高重用性,可适用性,可维护性

  • 主要组件

       前端控制器DispatcherServlet

       处理器映射器HandlerMapping

       处理器适配器HandlerAdapter

       处理器Handler

       视图解析器ViewReadver

  • 常用注解

       @RequestMapping:处理请求,url映射

       @RequestBody:注解实现接受http请求的json数据,并转化为java对象

       @ResponseBody:注解实现将controller方法返回对象转化为json对象响应给客户

2.转发与重定向区别

      重定向:一件事务完成后,为了方便,让response对象发送另一个请求,重定向有两个url地                    址,重定向不能携带参数,out.close()后不能重定向     return "redirect:index.jsp"            

       转发:一件事务没有完成,由于使用Servlet生页面的的过程十分繁琐,将页面的生成过程交                     给 jsp技术类生成,此时携带数据到该jsp页面中,转发只有一次请求,转发同时携带参                   数 return “forword:index.jsp" 

  • 地址

        重定向的地址没有限制

        转发的地址必须是同一个应用内部的某个组件(不能跨应用,不能跨服务器)

  • 能否共享request

       转发可以

       重定向不行

  • 浏览器地址栏的地址是否变化

       转发不变

       重定向会变

  • 事件是否处理完毕

       转发是一件事未做完 (交给JSP页面处理)

       重定向是一件事已经做完 (一件事做完后,为了方便,直接跳转到另一页面)

3.ModelAndView和ModelMap的异同

  • 都可以将数据封装显示到页面中
  • ModelAndView可以指定跳转的视图,ModelMap不可以
  • ModelAndView需要视图解析器,MadelMap不需要

4.SpringMVC工作原理

  • SpringMVC将所有的请求提交给DispacherServlet
  • DispacherServlet查询一个或者多个HandlerMapping,找到处理请求的Controller
  • DispacherServlet将请求提交给Controller
  • Controller进行业务逻辑处理,返回一个ModelAndView
  • Dispacher查询一个或者多个ViewResolver视图解析器,找到ModelAndView对象指定的试图对象
  • 视图对象负责渲染返回给客户端

5.乱码,过滤器

       filter -> encoding utf-8 -> jsp ->pageEncoding utf-8

       过滤器:servlet规范中定义的一种特殊类,用于servlet容器调用过程进行拦截

                   java类实现filter接口,重写doFilter,配置web.xml

6.拦截器

       实现HandlerInterceptor接口  b.xml interceptor

7.编写Servlet  

  • 1.写一个java类,实现Servlet接口或者继承HttpServlet抽象类
  • 2.重写service方法
  • 3web.xml文件中配置所对应的Servlet类以及其对应的Mapping
  • 4.写业务逻辑

8.servlet 运行原理

  • 1) 建立连接     浏览器根据IP地址和端口号(port)和服务器建立连接
  • 2) 打包      浏览器将请求数据按HTTP协议打成数据包(http 请求数据包) http 请求数据包包含“helloweb/sayHello”(请求资源路径)
  • 3) 发送请求     浏览器向服务器发送请求数据包
  • 4) 创建Request对象      Servlet引擎(Tomcat负责通讯的模块)创建请求对象(Request),方便我们自定义的Servlet 获得请求数据包中的内容 该对象符合HttpRequest接口
  • 5) 创建Response对象     Servlet引擎(Tomcat负责通讯的模块)创建相应对象(Response) 该对象符合HttpResponse 接口
  • 6) 创建HelloServlet 对象     服务器通过反射的方式创建Servlet实例
  • 7) 调用Servlet 实例的service(request , response)方法
    • 7.1)访问参数  在service()方法中访问Request对象,获得用户提交的一些参数
    • 7.2)处理结果  在service()方法中将处理结果放入Response对象
  • 8) 取数据     Servlet引擎从Response 对象中取出数据
  • 9) 打包     Servlet引擎将取出的数据打包,该数据包符合http 协议要求
  • 10) 发送响应      浏览器将响应数据包中的数据取出,生成界面

9.servlet生命周期

  • Servlet 生命周期:Servlet 加载(实例化)--->初始化--->服务(service业务逻辑)--->销毁。
  • init():在Servlet的生命周期中,仅执行一次init()方法
  • service():它是Servlet的核心,负责响应客户的请求。
  • destroy(): 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。

10.get和post区别

  • 使用非latin1字符,尽量使用post提交;如果上传文件,必须使用post
  • 安全上来讲,post方式相对安全(因为请求参数及值存放在实体内容里面,而get方式会将请求方式及值显示在浏览器地址栏)但要注意,post方式并没有将数据加密
  • get方式会将请求参数及参数值放在请求资源路径里面,携带的数据大小有限制,不适合提交大量的数据;post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,适合大量数据的提交
  • get  请求 超链接  post 请求  表单提交

11.JSTL标签库

  • 核心标签
    • 表达式控制标签
      • out标签*
      • set标签
      • remove标签
      • catch标签
    • 流程控制标签***
      • if标签
      • choose标签
      • when标签
      • otherwise标签
    • 循环标签
      • foreach标签
      • forTokens标签
    • URL操作标签
      • import标签
      • url标签
      • redirect标签
      • param标签

12.JSP四大作用域

  • application
    • 在所有应用程序中有效
  • session
    • 在当前会话中有效
  • request
    • 在当前请求中有效
  • page
    • 在当前页面有效

13.jsp的内置对象(9个)

  • request(形参)、
    • 常用
      • 获取客户端信息
  • response(形参)
    • 常用
      • 回传信息到客户端
  • 、out(JSPWriter)
    • 常用
      • 输出,向前台输出
  • session(HttpSession)
    • 常用
      • 会话期,从打开浏览器连接服务器到关闭浏览器
  • application(ServletContext)
    • 服务器开启到关闭
  • exception(Throwable,需要指定当前页面的isErrorPage='true')
    • ion字辈儿
      • 获取异常信息
  • page(Object)、
  • pagecontext(PageContext)、
  • config(ServletConfig)
    • 获取服务器配置信息

14.session和cookie的区别

  • session数据放在服务器上,cookie数据放在客户端浏览器
  • session安全,cookie别人可以解析本地,不安全
  • cookie大小有限制,可以禁止

15.JDBC

  • 是什么
    • Java DATe BaseConnectivity
  • 加载驱动
    • Class.forName('com.mysql.jdbc.Driver')
  • 三个接口
    • Connection
      • DriverMannager.getConnection(url,username,password)
    • Statement
      • conn.createStatement
      • PreparedStatement
        • conn.preparedStatement(sql)
          • 用来设置SQL语句中有的参数:?
            • 防止SQL注入
            • delete from t_user where id=1 or 1=1;
        • prep.setObject(下标从一开始,值)
    • ResultSet
      • stmt.executeQuery(sql)
      • while(rs.next()){   rs.getInt('id')+   rs.getString('username')  ...}

16.ajax的交互流程有哪几步?

1)创建ajax对象

xhr = new XMLHttpRequest

2)规定请求地址

xhr.open(method,url,async)

3)等待服务器相应

xhr.onload

4)向服务器发送请求

xhr.send()

17.介绍一下XMLHttpRequest对象,他有哪些常用方法和属性

XMLHttpRequest是ajax的核心,通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新

常用的方法:

open(get/post,url,是否异步)创建http请求

send()发送请求给服务器

setRequestHeader()设置头信息(使用post才会用到,get并不需要调用该方法)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值