最近从图书馆找到一本《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的多个请求。
最近从图书馆找到一本《Head First Servlets & JSP》,就当是对Servlet进行一下复习。 web.xml配置 用于URL映射的两个部署描述文件: <servlet> 用内部名映射到完全限定类名 <servlet-mapping> 把内部名映射到公共URL名 eg:
简单MVC架构流程:
1.浏览器把请求数据发送到网络; 2.容器根据URL找到正确的Servlet(控制器);并把请求传递给这个Servlet; 3.Servlet调用一个“专家”类(模型)寻求其“帮助”; 4.这个“专家”类返回一个“回答”,Servlet把这个回答增加到requset对象; 5.Servlet把请求转发给JSP(视图); 6.JSP从request对象得到“回答”; 7.JSP根据“回答”为容器生成一个页面; 8.容器把页面返回给用户。 Servlet把回答增加到request对象:
Servlet受容器控制 过程: 1.加载Servlet类; 2.实例化Servlet(构造函数执行); 3.执行init();//在Servlet一生中只调用一次,在调用service()之前完成; 4.执行service(),调用Servlet对象的doGet(),doPost()等方法; 5.执行destroy(); Tips: 在有初始化代码的情况下,可能覆盖init()方法,例如需得到一个数据库连接,或向其他对象注册; 不应该覆盖service()方法,只需覆盖doGet()、doPost()等方法; 记住,容器运行多个线程来处理一个Servlet的多个请求。
Powered by: BlogJava Copyright © codingliyi