理解及使用Servlet 灰太狼 2021-09-28 22:12 331阅读 0赞 ### 文章目录 ### * Servlet简介 * Servlet基础 * Servlet使用 * 推荐书籍 # Servlet简介 # * 在Java中,Servlet就是一个接口,用来处理Servlet容器发送来的请求和响应的业务逻辑; * 在Tomcat中,Servlet运行在Servlet容器中,由容器管理Servlet的一生。 # Servlet基础 # * **Tomcat是一个web服务器和Servlet容器的结合体。Tomcat剖析参考[逝宇、这篇文章][Link 1]**。 * **web服务器的作用:将某个主机上的资源映射为一个URL供外界访问。** * **容器这样处理请求:容器接收web服务器发送来的请求;容器“看出”请求指向一个servlet,容器创建两个对象request、response;容器匹配到对应的servlet,为此请求分配一个线程,并创建请求和响应对象传递给此servlet;容器调用servlet的service方法,根据请求的不同类型,service()方法会调用doGet()或doPost()方法;doGet()或doPost()方法根据请求将响应内容填入到响应对象,此期间容器一直保留有响应对象的一个引用;线程结束,容器把响应对象转换为一个Http响应,把它发回给请求方,然后删除请求和响应对象。** * 每一次请求都会创建一个线程,每一个线程都会分配一个方法栈,这样保证每次执行doGet()和doPost()方法都在一个单独的方法栈中。 * Servlet的任务是得到一个**请求**,再发回一个**响应**。 * **Servlet的生命周期:** 此时servlet可处理请求 类加载 初始化即构造函数运行 调用init方法 调用service方法 调用doGet或doPost方法 调用destroy方法 * ServletConfig * 每个Servlet都有一个ServletConfig对象 * 用于向Servlet传递部署时信息(例:读取配置文件web.xml中配置的初始化属性的值) <servlet> <init-param> <param-name></param-name> <param-value></param-value> </init-parm> </servlet> this.getServletConfig().getInitParam(String name); * 用于访问ServletContext * * ServletContext * 每个Web应用都有一个ServletContext * <web-app> <context-param> <param-name></param-name> <param-value></param-value> </context-param> </web-app> this.getServletContext().getInitParam(String name); -------------------- * 其他基础知识可参考[ImportNew这篇文章][ImportNew] * 更多可以参考[**这个知乎问题**][Link 2]。 -------------------- # Servlet使用 # * 覆盖servlet的doGet()、doPost()方法 * request对象可增加属性 * `request.setAttribute();` * Servlet调用JSP: * //为JSP实例化一个请求分派器 RequestDispatcher view=request.getRequestDispatcher("xxx.jsp"); //使用请求分派器要求容器准备好JSP,并向JSP发送请求和响应 view.forward(request,response); * request对象可获取的信息: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0p1c3RfbGVhcm5fbW9yZQ_size_16_color_FFFFFF_t_70] * GET是幂等的,POST不是幂等的 * response的输出可以选择字符或者字节: * //输出字符 PrintWriter writer=response.getWriter(); writer.println(""); * //输出字节 ServletOutputStream out=response.getOutputStream(); out.write(aByteArray); * 下载jar的servlet代码: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0p1c3RfbGVhcm5fbW9yZQ_size_16_color_FFFFFF_t_70 1] * 常用MIME类型(`response.setContentType("MIME类型")`): ![在这里插入图片描述][20190604154153985.png] # 推荐书籍 # * [**Head First Servlets and JSP**][Head First Servlets and JSP] * 重点为Servlet,JSP可不用着重学习,做了解即可。 [Link 1]: https://www.cnblogs.com/zhouyuqin/p/5143121.html [ImportNew]: http://www.importnew.com/20045.html [Link 2]: https://www.zhihu.com/question/21416727 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0p1c3RfbGVhcm5fbW9yZQ_size_16_color_FFFFFF_t_70]: /images/20210920/8fb30097625a460ea8c9768642fdc08a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0p1c3RfbGVhcm5fbW9yZQ_size_16_color_FFFFFF_t_70 1]: /images/20210920/c3b89688ebff4f53adb0e5d0926943b3.png [20190604154153985.png]: /images/20210920/20d00a3dd7af4a6a9b8eb084515f8e07.png [Head First Servlets and JSP]: https://share.weiyun.com/5H3JMYl
相关 Servlet生命周期理解及编写常见问题 Servlet是Java Web应用中处理HTTP请求的关键组件。其生命周期包括以下几个阶段: 1. **初始化**:当服务器启动并开始监听端口时,对于每个注册的Servle 绝地灬酷狼/ 2024年09月11日 00:45/ 0 赞/ 50 阅读
相关 了解Servlet及Servlet的使用 目录 1、创建程序 2、引入依赖 3、创建目录结构 4、编写servlet代码 5、打包 6、部署程序 7、验证程序 简便部署: ------- 拼搏现实的明天。/ 2024年03月24日 11:40/ 0 赞/ 40 阅读
相关 Servlet配置及使用 > 1. 静态Web资源:不同的人,在不同的条件下访问后看到的是相同的效果,这样的资源叫做静态Web资源 > (html、css、js等) > 2. 动态Web 谁践踏了优雅/ 2023年03月12日 07:08/ 0 赞/ 47 阅读
相关 深入理解Servlet 简介 Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据, 蔚落/ 2022年08月20日 03:27/ 0 赞/ 172 阅读
相关 servlet本质理解 事实上,servlet就是一个Java接口,interface! 打开eclipse,ctrl + shift + t,搜索servlet,就可以看到是一个只有5个方法的int ╰半橙微兮°/ 2022年05月28日 08:42/ 0 赞/ 215 阅读
相关 servlet的理解 servlet是什么。 Servlet是Java编写的服务器端程序。而这些Servlet都要实现Servlet这个接口。其主要的功能在于交互式地浏览和修改数据 生成动态 分手后的思念是犯贱/ 2022年02月15日 00:25/ 0 赞/ 544 阅读
相关 理解及使用Servlet 文章目录 Servlet简介 Servlet基础 Servlet使用 推荐书籍 Servlet简介 在Java中,Servlet就是 灰太狼/ 2021年09月28日 22:12/ 0 赞/ 332 阅读
相关 Servlet--Cookie原理及API使用详解 会话的概述 在日常生活中,从拨通电话到挂断电话之前的一连串的你问我答的过程就是一个会话。Web应用中的会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与We 冷不防/ 2021年08月13日 22:57/ 0 赞/ 454 阅读
还没有评论,来说两句吧...