:: 首页 ::  :: 联系 :: 聚合  :: 管理

Servlet复习笔记(一)

Posted on 2008-10-10 13:41 codingliyi 阅读(292) 评论(0)  编辑  收藏 所属分类: Java EE

最近从图书馆找到一本《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的多个请求。


只有注册用户登录后才能发表评论。


网站导航: