web框架学习前复习——Servlet

                            Servlet

Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应.

    servlet方法:
    public void service(ServletRequest req,ServletResponse res)throws ServletException,java.io.IOException;
    ServletRequest req:代表着请求对象,该对象中有HTTP协议的请求部分的所有内容。它的实现类由服务器提供的,封装数据也是服务器来做的。
    ServletResponse res:代表着响应对象,该对象中由我们写数据(HTTP协议的响应部分)进去。它的实现类也是由服务器提供的。
    service:由服务器调用,每次请求都会调用一次。服务器采用的是多线程机制

Servlet对象的生命周期

诞生:用户第一次访问时,由容器创建他的实例。
活着:一旦创建就驻留内存(单例)。每次用户的访问,容器都会调用sevice方法发出响应(多线程)
死亡:应用被卸载或者Tomcat关闭了

Servlet的映射

web.xml     
    <servlet>
        <servlet-name>
        <servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>
        <url-pattern>
    </servlet-mapping>

ServletContext

代表着当前应用。每个应用只有一个ServletContext对象的实例,由容器提供。
通过调用方法ServletConfig.getServletContext();获取实例;

ServletContext的生命周期

诞生:应用被加载时就由容器创建好
活着:应用被加载就一直活着
死亡:应用被卸载或服务器关闭

读取ServletContext的三种方式:

ServletContext.getRealPath("/开头")
ResourceBundle:只能读取*.properties的文件
类加载器

HttpServletRequest对象的生命周期

诞生:请求来了
死亡:响应结束

HttpServletResponse方法示例

通过设置响应头告知客户端编码方式:
    response.setHeader(“Content-type”, “text/html;charset=UTF-8”);//告知浏览器数据类型及编码
    response.setContentType("text/html;charset=UTF-8");//告知浏览器数据类型及浏览器使用的编码
用OutputStream(字节流)发送数据:
    response.getOutputStream().write(“中国”.getBytes());//以默认编码发送数据
请求重定向:客户端行为,
    response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保持,地址栏的URL地址会改变
请求转发:服务器行为,
    request.getRequsetDispatcher().forward(requset,response);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。

猜你喜欢

转载自blog.csdn.net/u011456867/article/details/52072341