web13天servlet

1.什么是servlet

  1. servlet使用运行在web服务器上的小型java程序,通过http接收或者响应web客户端的请求
  2. servlet与jsp的关系 警察 协警

2.Servlet接口的5个方法

  1. init()

        在Servlet实例化后,Servlet容器会调用init()方法来  
        初始化该对象,主要是为了让Servlet对象在处理客户请求前可以完成一些初始化工作,例如:建立
        数据库的连接,获取配置信息等。对于每一个Servlet实例,init()方法只能被调用一次。init()
        方法有一个类型为ServletConfig的参数,Servlet容器通过这个参数向Servlet传递配置信息。
        Servlet使用ServletConfig对象从Web应用程序的配置信息中获取以名-值对形式提供的初始化参
        数。另外,在Servlet中,还可以通过ServletConfig对象获取描述Servlet运行环境的
        ServletContext对象,使用该对象,Servlet可以和它的Servlet容器进行通信。
    
  2. service()

    容器调用service()方法来处理客户端的请求。要注意的是,在service()方法被容器调用之前,必须确
    保init()方法正确完成。容器会构造一个表示客户端请求信息的请求对象(类型为ServletRequest)和
    一个用于对客户端进行响应的响应对象(类型为ServletResponse)作为参数传递给service()。在
    service()方法中,Servlet对象通过ServletRequest对象得到客户端的相关信息和请求信息,在对请
    求进行处理后,调用ServletResponse对象的方法设置响应信息。
    
  3. destroy()

    当容器检测到一个Servlet对象应该从服务中被移除的时候,容器会调用该对象的destroy()方法,以便
    让Servlet对象可以释放它所使用的资源,保存数据到持久存储设备中,例如将内存中的数据保存到数据
    库中,关闭数据库的连接等。当需要释放内存或者容器关闭时,容器就会调用Servlet对象的destroy()
    方法,在Servlet容器调用destroy()方法前,如果还有其他的线程正在service()方法中执行容器会等
    待这些线程执行完毕或者等待服务器设定的超时值到达。一旦Servlet对象的destroy()方法被调用,容
    器不回再把请求发送给该对象。如果需要改Servlet再次为客户端服务,容器将会重新产生一个Servlet
    对象来处理客户端的请求。在destroy()方法调用之后,容器会释放这个Servlet对象,在随后的时间
    内,该对象会被Java的垃圾收集器所回收。
    
  4. getServletConfig()和getServletInfo()

        该方法返回容器调用init()方法时传递给Servlet对象的ServletConfig对象,ServletConfig对象包含了Servlet的初始化参数。
        返回一个String类型的字符串,其中包括了关于Servlet的信息,例如,作者、版本和版权。该方法返回的应该是纯文本字符串,而不是任何类型的标记。
    

3.ServletRequest接口

  1. req.getMethod()获得请求行中的命令
  2. req.getServletPath();获得请求行中的资源路径
  3. req.getProtocol();获得请求行中的协议
  4. req.getQueryString()获得请求中的参数信息
  5. req.getHeader(“Host”)获得主机信息
  6. req.getHeader(“User-Agent”) 获得用户代理(浏览器)
  7. req.getInputStream()获得消息体的长度
  8. resp.setStatus(200);设置状态码为200
  9. resp.setContentType(“image/jpeg”);设置MIME类型

3.1其他

这里写图片描述

4.部署Servlet的两种方式

  1. WebServlet注解:loadOnStartup加载顺序
  2. web.xmlhello和com.qfedu.servlet.FirstServlet

5.处理中午乱码

  1. 1. response.setCharacterEncoding("UTF-8");
    2. respnse.setHeader("content-type","text/html;charset=UTF-8");
    3. resp.setContentType("text/html;charset=utf-8");
    4. respnse.getWriter().append("<h1>中文</h1>");
    
  2. 生成HTML方式

    1. PrintWriter out = response.getWriter();(1)append("String")(2)println("String")
    2. write("String")
    

6.servlet生命周期

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值