2019.02.21(MVC三层架构以及get,post和重定向以及请求转发的区别)

Dao层

用于编写sql语句,接口和接口实现

Service层

用于连接Dao层和Selvert层,接口和接口实现

Selvert层

用于接收和响应用户层
应用举例:
代码结构:
在这里插入图片描述

get和post的区别

  1. 请求路径不同,post请求,在url后面不跟上任何数据,get请求在地址后面跟上数据
    例如:
    POST /examples/servlets/servlet/RequestParamExample HTTP/1.1
    GET /examples/servlets/servlet/RequestParamExample?firstname=zhang&lastname=san HTTP/1.1
  2. 带上的数据不同,post请求会使用流的方式写数据,get请求是在地址栏上跟数据
  3. 由于post请求使用流的方式写数据,所以一定需要content-Length的头来说明数据的长度有多长
  4. Get会在地址栏后面拼接数据,所以有安全隐患,一般提交数据到服务器都是用post,而且get能够带的数据有限,1Kb大小,post则没有大小限制

重定向和请求转发的区别

代码:
重定向

response.sendRedirect("login_success.html");

请求转发:

request.getRequestDispatcher("login_success.html").forward(request, response);
  1. 地址显示不同,重定向显示跳转后的页面的地址,请求转发显示的是请求页面的地址(原来的地址)
  2. 请求转发请求次数只有一次,因为是服务器内部帮客户端执行了后续的工作,重定向请求次数至少有两次,服务器在第一次请求后会返回302以及一个地址,浏览器会根据这个地址进行第二次访问
  3. 请求转发只能跳转到自己项目的资源路径,重定向可以跳转到任意路径,不是自己的工程也可以跳
  4. 请求转发效率高,因为只执行一次请求,重定向效率低,执行两次请求
    请求转发可以使用上一次的request对象,重定向后续的请求,没法使用上一次的request存储的数据,或者没法使用上一次的request对象,因为这是两次不同的请求.

猜你喜欢

转载自blog.csdn.net/qq_34191426/article/details/87868426
今日推荐