最近从图书馆找到一本《Head First Servlets & JSP》,就当是对Servlet进行一下复习。
web.xml配置
用于URL映射的两个部署描述文件:
<servlet> 用内部名映射到完全限定类名
<servlet-mapping> 把内部名映射到公共URL名
eg:1< servlet >
2< servlet-name > myServlet </ servlet-name > //这个名字只在这个部署描述文件真的其他部分中使用
3< servlet-class > firstServlet </ servlet-class > //类的完全限定名,但不加class后缀
4</ servlet >
5
6< servlet-mapping >
7< servlet-name > myServlet </ servlet-name >
8< url-pattern > /first </ url-pattern > //这是客户看到和使用的Servlet名
9</ servlet-mapping >
简单MVC架构流程:1.浏览器把请求数据发送到网络;
2.容器根据URL找到正确的Servlet(控制器);并把请求传递给这个Servlet;
3.Servlet调用一个“专家”类(模型)寻求其“帮助”;
4.这个“专家”类返回一个“回答”,Servlet把这个回答增加到requset对象;
5.Servlet把请求转发给JSP(视图);
6.JSP从request对象得到“回答”;
7.JSP根据“回答”为容器生成一个页面;
8.容器把页面返回给用户。
Servlet把回答增加到request对象:request.setAttribute( " styles " ,result);
RequestDispatcher view = request.getRequestDispatcher( " result.jsp " );
view.forward(request,response);
Servlet受容器控制
过程:
1.加载Servlet类;
2.实例化Servlet(构造函数执行);
3.执行init();//在Servlet一生中只调用一次,在调用service()之前完成;
4.执行service(),调用Servlet对象的doGet(),doPost()等方法;
5.执行destroy();
Tips:
在有初始化代码的情况下,可能覆盖init()方法,例如需得到一个数据库连接,或向其他对象注册;
不应该覆盖service()方法,只需覆盖doGet()、doPost()等方法;
记住,容器运行多个线程来处理一个Servlet的多个请求。
Servlet复习笔记(一)
最新推荐文章于 2022-04-11 22:07:52 发布