JavaWeb笔记_02_Servlet入门

1. HTTP Servlet基础知识
   1) Servlet是一个以Java技术为基础的服务器端程序组件。用来处理Web客户端发送的请求,并作出响应。
   2) Servlet没有main方法,也不能独立执行,必须运行在Servlet容器中。
   3) Servlet的特性:多线程处理客户端请求,效率高。跨平台。
   4) Servlet基本运行方式:
      客户端发送一个HTTP请求给Web服务器。当Web服务器接收到一个指向Servlet的请求时,服务器会把请求转交给Servlet容器,Servlet容器实例化该Servlet,并向Servlet提供请求对象(HttpServletRequest)和响应对象(HttpServletResponse),当容器启动一个线程来调用该Servlet的请求处理方法(doGet()或doPost()),处理结果会送回给Web服务器,再由Web服务器传回给客户端。

2. 开发第一个Servlet程序
  1) 编写Servlet类:继承自HttpServlet,重写doGet()和doPost()方法。在doGet()和doPost()方法中编写处理请求和返回响应的代码。
  2) 在web.xml中注册该Servlet类:
    <servlet>
        <servlet-name>Servlet实例名</servlet-name>
        <servlet-class>Servlet类的全限定名</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet实例名</servlet-name>
        <url-pattern>要映射的URL模式</url-pattern>
    </servlet-mapping>
  3)客户访问:http://服务器IP:端口号/ContextPath/对应的URL

3. Servlet的原理:开发人员只需要针对Servlet的规范编程。
   Servlet是Sun公司定义一套规范(API)。由Servlet容器厂商提供具体的实现。

4. Servlet的生命周期:
  1)三大时刻:
      创建和初始化 init()、
      提供服务 service()、
      销毁 destroy()

5. Servlet的API
  1)interface Servlet: init() service() destroy()
               ↑
    abstract GenericServlet
               ↑
    abstract HttpServlet
               ↑
         自定义的Servlet: 重写doGet()和doPost()
  
  2) interface ServletRequest        请求
                 ↑
     interface HttpServletRequest

  3) interface ServletResponse       响应
                 ↑
     interface HttpServletResponse

6. HttpServletRequest中的常用方法
     1) void setCharacterEncoding("字符集");   //设置请求消息体中数据的编码方式。
           要在获取请求数据之前使用。
           只对消息体中的数据进行编码(Post请求数据)。
           不会对跟在URL后面的查询串编码(Get请求数据)。
     2) 获取请求中的参数信息
        String getParameter("参数名");  //获取指定参数的值
        String[] getParameterValues("参数名"); //获取指定参数的值数组

        Enumeration getParameterNames();  //获取请求中的所有参数名称的枚举
        Map getParameterMap();  //获取请求中的参数名和值数组对的一个Map

     3) 获取请求行的信息
        String getContextPath(); //获取应用上下文路径
        String getRequestURI();  //获取请求行中的资源名
        String getServletPath(); //获取Servlet映射的路径
     4) 获取网络信息
  String getRemoteAddr();  //获取发出请求的客户机IP地址
        String getRemotePort();  //获取发出请求的客户机端口号
        String getRequestURL();  //获取请求的完整路径
     5) 获取请求头信息
        String getHeader("字段名");
        Enumeration getHeaders("字段名");
        Enumeration getHeaderNames();
     6) 获取请求分派器
        RequestDispatcher getRequestDispatcher(String path);

7. HttpServletResponse中的常用方法
    1) void setContentType("内容类型;charset=字符集");  //设置响应内容类型和编码格式
          内容类型(MIME类型):text/html、img/gif、img/jpeg
    2) PrintWriter getWriter();  //获取向客户端输出数据的字符输出流
    3) ServletOutputStream getOutputStream();  //字节输出流
    4) void addHeader(String name, String value); //向响应消息头中添加字段信息
    5) void addCookie(Cookie coo);     //
    6) String encodeURL(String url);    //
    7) void sendError(int enc, String msg);  //向客户发送错误信息
    8) void sendRedirect(String url);        //重定向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值