关于servlet的工作原理和生命周期 和几个参数的使用范围

关于 servlet的生命周期:

1.客户端向Servlet容器(TOMCAT)发送HTTP请求

2.Sevlet容器接收客户端的请求

3.Servlet容器创建HttpRequest对象  HttpRequestt对象封装了客户端的所有信息

4.Servlet容器创建HttpResponse对象

5.Servlet窗口调用HttpServlet对象的service方法,将HttpRequest对象和httpResponse对象作为参数传给HttpServlet对象

6.HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

7.HttpServlet调用HttpResponse对象的有关方法,生成响应数据

8.Servlet容器把HttpServlet的响应结果传给Web Client

 

 

 

关于servletContext对象

 

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。

ServletContext sc=req.getSession().getServletContext();

由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

 

sc.setAttribute();

可以在任何servlet中获取

通过sc.getAttribute();来获取共享的内容

 

 

 

 

 

关于请求转发fowar和include的区别

 

 

forward方法是把请求的内容转发到另外的一个servlet.include是把另一个servlet处理过后的内容拿过来.

(forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由

    被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。     

   include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息

public class UserServlet extends HttpServlet {

public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException{
  res.getWriter().print("mu miaozhi xiang");
  req.getRequestDispatcher("test").include(req,res);//forward(req,res)
 }

 

}

 

 

public class Test extends HttpServlet {
 
 public void service(HttpServletRequest req,HttpServletResponse res){
  res.setCharacterEncoding("UTF-8");
  try {
   res.getWriter().print("xin zhi xiang");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 }

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值