Dao层
用于编写sql语句,接口和接口实现
Service层
用于连接Dao层和Selvert层,接口和接口实现
Selvert层
用于接收和响应用户层
应用举例:
代码结构:
get和post的区别
- 请求路径不同,post请求,在url后面不跟上任何数据,get请求在地址后面跟上数据
例如:
POST /examples/servlets/servlet/RequestParamExample HTTP/1.1
GET /examples/servlets/servlet/RequestParamExample?firstname=zhang&lastname=san HTTP/1.1 - 带上的数据不同,post请求会使用流的方式写数据,get请求是在地址栏上跟数据
- 由于post请求使用流的方式写数据,所以一定需要content-Length的头来说明数据的长度有多长
- Get会在地址栏后面拼接数据,所以有安全隐患,一般提交数据到服务器都是用post,而且get能够带的数据有限,1Kb大小,post则没有大小限制
重定向和请求转发的区别
代码:
重定向
response.sendRedirect("login_success.html");
请求转发:
request.getRequestDispatcher("login_success.html").forward(request, response);
- 地址显示不同,重定向显示跳转后的页面的地址,请求转发显示的是请求页面的地址(原来的地址)
- 请求转发请求次数只有一次,因为是服务器内部帮客户端执行了后续的工作,重定向请求次数至少有两次,服务器在第一次请求后会返回302以及一个地址,浏览器会根据这个地址进行第二次访问
- 请求转发只能跳转到自己项目的资源路径,重定向可以跳转到任意路径,不是自己的工程也可以跳
- 请求转发效率高,因为只执行一次请求,重定向效率低,执行两次请求
请求转发可以使用上一次的request对象,重定向后续的请求,没法使用上一次的request存储的数据,或者没法使用上一次的request对象,因为这是两次不同的请求.