Servlet

本文深入探讨了Servlet的生命周期,包括初始化、服务处理与销毁阶段,同时解析了Servlet架构及其核心组件,如ServletConfig和ServletContext的作用,以及如何处理HTTP请求与响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet---运行在服务器上的小服务程序,用于接收及响应客户端请求,更多的配合动态资源(静态资源有tomcat定义好的default servlet)

  • Servlet架构

          

  • Servlet生命周期
//Servlet 通过调用 init () 方法进行初始化。整个生命周期只被调用一次
public void init() throws ServletException {
   // 简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期
}
//Servlet 调用 service() 方法来处理客户端的请求。每有一个请求,就调用一次
public void service(ServletRequest request, ServletResponse response)  throws ServletException, IOException{
  //每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务
}
//Servlet 通过调用 destroy() 方法终止(结束)。
 public void destroy() {
    // 终止化代码...由 JVM 的垃圾回收器进行垃圾回收的。
  }


public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
    // Servlet 代码
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // Servlet 代码
}
  •  ServletConfig

    用来取Servlet的注册信息

            

 

  •  ServletContext  

    servlet上下文,这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。

  作用

    域对象(服务器在内存上创建的存储空间,用于在不同动态资源(servlet)之间传递与共享数据)

    可以读取全局配置参数,搜索当前工程目录下面的资源文件

  生命周期:服务器启动到从服务器移除或关闭服务器

void setAttribute(String name,Object object) 添加对象
Object getAttribute(String name)指定的key读取域对象里面的数据
void removeAttribute(String name)删除数据
InputStream getResourceAsStream(String path) 将数据转为流的方式
Set getResourcePaths(String path)相对路径 
String getRealPath(String path)绝对路径

 

 

 

 

 

 

  • HttpServletRequest   封装客户端提交的数据

    常用方法:

      String  getHeader(String name)        Enum  getHeaders()
      String  getParameter(String name)  //根据name获取参数
      Object  getParameterValues(String name) //根据name获取请求参数列表
      Map   getParameterMap()  //记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系

    中文数据的编码问题:

      get请求:在url地址栏中已经进行编码

//方法一,进行转码
String s = new String (name.getBytes("iso-8859-1"),"UTF-8")
//二,tomcat进行配置处理

      post请求:在获取(getParameter)数据前进行编码指定

request.setCharacterEncoding();
  • HttpServletResponse  负责返回数据给客户端

response.setHeader(“name”,”value”) //设置响应头
response.getWriter().writer(); //发送字符实体内容 
response.setCharacterEncoding("UTF-8");// 
response.getOutputStream().writer() //发送字节实体内容 
response.setHeader("Content-Type", "text/html; charset=UTF-8");//
response.setStatus(404);//修改状态码
response.sendError(404); // 发送404的状态码+404的错误页面

 

转载于:https://www.cnblogs.com/xiaoyi0214/p/10277710.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值