Servlet与MVC分层开发
处理数据的业务逻辑servlet与开发分层
一、处理数据的业务逻辑servlet
1、Servlet是什么
1.1Servlet是运行在tomcat服务器端的一个java程序;
2、Servlet能干什么
2.1Servlet通过http(超文本传输协议)来接收和响应web客户端(浏览器)的请求
3、servlet的生命周期
①初始化(出生):init()
--没有设置load-on-startup: 有访问请求服务器资源的时候执行
--设置load-on-startup=2:启动的优先级,值越小优先级越高,服务器启动该 方法执行;
--只执行一次
②运行:service()
--一定是访问的情况下执行:执行多次
--方法的含义:由 servlet 容器调用,以允许 servlet 响应某个请求
--通过doGet(参数放到请求的头,故有长度限制)还是doPost方法处理请求(参数放到请求体中,故无长度限制)
③销毁:destroy()
--回收占用资源(比如内存、文件句柄和线程),一次;servlet从tomcat服务器取出的时候执行;
--方法的含义:由 servlet 容器调用,指示将从服务中取出该 servlet
4、servlet执行顺序
①web客户端(浏览器)http://主机名:端口号/项目名
②tomcat服务器
③根据访问的地址名在tomcat服务器去查找项目;
④在项目中查找web.xml
⑤在web.xml找到servlet()(doGet,doPost都有参数request,response)处理请求;
⑥给web客户端(浏览器)一个响应;
5、映射地址
①servlet注册:web.xml: <Servlet>
<Servlet-name></Servlet-name>
<Servlet-class></Servlet-class>
</Servlet>
<Servlet-mapping>
<Servlet-name></Servlet-name>
<url-pattern></url-pattern>
</Servlet-mapping>
②一个servlet有多个访问映射路径:
A、*.do(do随意更改)
B、/* (随意目录文件之分)
C、/aaa/* (随意目录文件之分)
优先级:c,b,a
6、servlet处理请求
servlet处理请求主要是基于servletRequest和servletResponse对象的。采用了转发和重定向的思想。转发只发生在服务端,客户端是不知道的,不涉及重新发送请求的问题,所以数据不会被冲刷掉,request数据共享;而重定向,则是将处理到一定程度的数据回发给客户端后,再次建立一次新的请求,上次请求中request对象中的数据信息不会保留
7、cookie(客户端)与session(服务器端)
①会话
用户打开一个浏览器到关闭浏览器,此过程成为一个会话
②cookie
设置cookie Cookie cookie = new Cookie("name", "value"); cookie2.setMaxAge(3000);//cookie存活时间 response.addCookie(cookie);
获取cookie Cookie[] cookie = Request.getCookies();//获取出来的是一组cookie对象 |
③session
设置session HttpSession session = req.getSession();//获取session对象 session.setAttribute(key,value);
获取session |
④9个内置对象:
request,session,response, out,application ,page,pageContext,config,exception;
常用的:request(同意一次请求),pageContext(当前页),session (全局)
⑤四大域对象:
jsp |
servlet |
page |
pageContext |
request |
HttpServletrequest |
session |
session |
application |
ServletContext |
二、开发分层
①分层思想:客户端URL访问 ---> 表示层(JSP)---> servlet(控制器:1、获取请求参数2、调用业务逻辑3、分发转向)---> 业务层(调用业务逻辑层:service处理数据)---> 数据访问层(dao)---> db(MySQL)