Http协议&Servlet

2019-04-21  本文已影响0人  hgzzz

Http协议

  1. 超文本传输协议(HTTP,HyperText Transfer Protocol),HTTP是一个客户端和服务器端请求和应答的标准(TCP)。
  2. 版本 1.0 => 请求数据,服务器返回后, 将会断开连接;1.1 => 请求数据,服务器返回后, 连接还会保持着。 除非服务器 | 客户端 关掉。 有一定的时间限制,如果都空着这个连接,那么后面会自己断掉。
  3. Http请求:包括 请求行 、 请求头 、请求体
Accept: 客户端向服务器端表示,我能支持什么类型的数据。 
Referer : 真正请求的地址路径,全路径
Accept-Language: 支持语言格式
User-Agent: 用户代理 向服务器表明,当前来访的客户端信息。 
Content-Type: 提交的数据类型。经过urlencoding编码的form表单的数据
Accept-Encoding: gzip, deflate : 压缩算法 。 
Host : 主机地址
Content-Length: 数据长度
Connection : Keep-Alive 保持连接
Cache-Control : 对缓存的操作
  1. Http响应: 响应行 、 响应头 、响应体
Server:  服务器是哪一种类型。  Tomcat
Content-Type : 服务器返回给客户端你的内容类型
Content-Length : 返回的数据长度
Date : 通讯的日期,响应的时间  
  1. GET 请求和 POST 请求

Servlet

  1. Web资源
  1. servlet
  1. servlet的使用
public class HelloServlet implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println(1);
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

public class Servlet2 extends HttpServlet {
    /**
     * get 请求执行这里
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
        System.out.println("doGet");
    }

    /**
     * post 请求执行这里
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
        System.out.println("doPost");
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 向tomcat报告, 我这个应用里面有这个servlet, 名字叫做HelloServlet , 具体的路径是com.servlet.HelloServlet -->
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.servlet.HelloServlet</servlet-class>
    </servlet>

    <!-- 注册servlet的映射。  servletName : 找到上面注册的具体servlet,  url-pattern: 在地址栏上的path 一定要以/打头 -->
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/a</url-pattern>
    </servlet-mapping>
</web-app>
  1. Servlet 的生命周期:从创建到销毁的一段时间
  1. 让Servlet创建实例的时机提前
<servlet>
      <servlet-name>HelloServlet</servlet-name>
      <servlet-class>com.servlet.HelloServlet04</servlet-class>
      <load-on-startup>2</load-on-startup>
</servlet>
  1. ServletConfig对象
    //1. 得到servlet配置对象 专门用于在配置servlet的信息
    ServletConfig config = getServletConfig();
    
    //获取到的是配置servlet里面servlet-name 的文本内容
    String servletName = config.getServletName();
    System.out.println("servletName="+servletName);
    //2、。 可以获取具体的某一个参数。 
    String address = config.getInitParameter("address");
    System.out.println("address="+address);
    //3.获取所有的参数名称
    Enumeration<String> names = config.getInitParameterNames();
    //遍历取出所有的参数名称
    while (names.hasMoreElements()) {
        String key = (String) names.nextElement();
        String value = config.getInitParameter(key);
        System.out.println("key==="+key + "   value="+value);
        
    }
上一篇 下一篇

猜你喜欢

热点阅读