请求和响应

         容器全盘控制着servlet的一生,它会创建请求和响应对象,为servlet分配或创建一个新的线程,并调用servlet的service()方法,把请求和响应对象的引用作为参数传递给servlet。service()方法根据客户发出的HTTP方法(GET/PUT/POST等),确定要调用那个servlet方法。

    容器怎样调用servlet?

    1)容器首先加载servlet类;

    2)创建servlet对象,这个构造方法什么都不作。我们不必重载它,若要初始化的话,可以重载init()方法;

    3)执行init()方法;一个servlet一生只调用一次init()方法。此方法调用完成后,容器会创建或分配一个线程来调用service()方法。也就是说servlet能接受任何请求前,必须通过init()方法。

    4)执行service()方法;决定具体调用那一个方法。

    5)执行destroy()方法;

    部分接口/类说明:    

1)Servlet 该接口共定义了5个方法。其中包括与生命周期相关的带有参数的init()方法: init (ServletConfig config)和getServletConfig (),使servlet可以通过这个方法获取启动信息。所有的servlet都必须实现这些方法。我们可以继承 GenericServlet 编写普通的servlet,或者继承 HttpServlet  编写HTTP servlet。

    2) ServletConfig   容器建立的servlet配置对象,用于在初始化阶段向servlet提供信息。每个servlet都有这个对象,通过它servlet可以访问web.xml中该类的一些配置信息,还可以访问 ServletContext

    3) GenericServlet 抽象类,实现了 Servlet, ServletConfig, java.io.Serializable。是普通的,与协议无关的servlet。该类可由servlet直接继承,实现service(ServletRequest  req, ServletResponse  res) ,但我们更常用的是继承 HttpServlet来编写servlet。 

          GET与POST的区别:

    相同点:都能发出请求参数

    区别:GET发出的数据量受服务器限制,而POST无限制;GET发送加载URL后,而POST在请求体中,GET方式无请求体。GET请求可以建立书签,而POST不可以。GET是幂等的,执行多次而不会产生不好的作用,而POST是非幂等的。在查询时,我们应当用GET方式。

    请求和响应

    如果您想得到请求中参数的原始字节,可以使用getInputStream()方法。

    响应的两种方式:PrintWriter writer = response.getWriter();ServletOutputStream out = response.getOutputSteam();

    setContentType("text/html")==SetHeader("content-type","text/html");

    sendRedirect()的参数:有两种;分别是有"/"和没有"/"。有:表示会建立一个相对于web应用本身的路径。若没有,容器会在当前的应用路径上追加上路径。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值