摘要:概述是公司提供的一门用于开发动态资源的技术。把开发好的类部署到服务器中。应用程序被停止或重新启动之前,引擎将卸载,并在卸载之前调用的方法。
servlet概述
Servlet是sun公司提供的一门用于开发动态web资源的技术。
Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
(1)编写一个Java类,实现servlet接口。 (2)把开发好的Java类部署到web服务器中。 (3)按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet
servlet运行过程:
(1)Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。 ②装载并创建该Servlet的一个实例对象。 ③调用Servlet实例对象的init()方法。 ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。 ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。IDEA创建第一个servlet程序
选中自己的project,打开Project Structure界面》》选中Libraries》》点击"+"并选择java》》选择并选中自己的tomcat/lib/servlet-api.jar》》Apply》》OK
通过idea创建servlet,选中项目的src目录,右键选择new
创建一个servlet,命名为testServlet
创建成功后testServlet.java文件中有一行关键的代码:
@WebServlet(name = "TestServlet") 备注:可以加上具体的urlPattern参数来定义servlet的具体的请求的URL,如下 @WebServlet(name = "TestServlet",urlPatterns = "/test")
示例代码:
示例代码分享:
关于servlet之http请求的request与response对象:
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; import java.util.Enumeration; import java.util.Arrays; @WebServlet(name = "testServlet",urlPatterns = "/test") public class testServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //请求头,请求行,请求体 System.out.println("请求行:"); System.out.println("url:"+request.getRequestURL()); System.out.println("uri"+request.getRequestURI()); System.out.println("methord:"+request.getMethod()); System.out.println("querystring:"+request.getQueryString()); System.out.println("addr:"+request.getRemoteAddr()); System.out.println("host:"+request.getRemoteHost()); System.out.println("--------------------"); System.out.println("请求头:"); EnumerationheaderNames = request.getHeaderNames(); while(headerNames.hasMoreElements()){ String key = headerNames.nextElement(); String value = request.getHeader(key); System.out.println(key+"="+value); } System.out.println("--------------------"); System.out.println("请求体:"); Enumeration params = request.getParameterNames(); while (params.hasMoreElements()){ String key = params.nextElement(); //接收的参数中一般有中文,注意编码 String value = request.getParameter(key); value = new String(value.getBytes("iso-8859-1"),"UTF-8"); System.out.println(key+"="+value); } System.out.println("--------------------"); //开始response //1.二进制流方式输出 response.setContentType("text/html;charset=UTF-8");//一定要做编码的设置,否则浏览器可能输出乱码 //response.getOutputStream().write("中国".getBytes("UTF-8")); //2.字符流方式输出 response.getWriter().write("字符流"); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74336.html
摘要:系列文章请查看超详细的面试题总结一之基础知识篇超详细的面试题总结二之基础知识篇超详细的面试题总结三之集合篇常见问题下面的都是自己之前在学习的时候总结的,对于巩固的基础知识应该有很大帮助。注意多线程的并发的读写类属性会导致数据不同步。 系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(...
摘要:出现的目的同一样也是要提到页面中的脚本代码。标准标准标签库有个子库,但随着发展,目前常使用的是他的核心库标签库标签库的前缀下载与导入下载从的网站下载的包。 一、JSP技术1.jsp脚本和注释jsp脚本:1) ----- 内部的java代码翻译到service方法的内部2) ----- 会被翻译成service方法内部out.print()3) ---- 会被翻译成servlet的成员的...
摘要:协议版本请求头客户端向服务器端表示,我能支持什么类型的数据。在地址栏上输入项目名称向报告,我这个应用里面有这个,名字叫做具体的路径是注册的映射。的配置,通过这个对象,可以获取在配置的时候一些信息先说,在写怎么用,最后说有什么用。 1.Http协议 什么是协议 双方在交互、通讯的时候, 遵守的一种规范、规则。 http协议 针对网络上的客户端 与 服务器端在执行http请求的时候...
摘要:当后继请求相同的页面时,容器加载之前生成的类,并且通知去执行已经存在的字节码,从而省去了转换的过程,这也是第一次执行页面时间较长的原因。 以往学习的时候大多是看完书或者看完视频,动手实践一下就OK了。然而过了一段时间我发现东西都忘差不多了,需要复习才能重新掌握。现在开始学习JavaWeb了,我将在这里记录自己的学习的一点一滴,不仅便于自己以后回顾知识点,也希望能对JavaWeb初学者有...
摘要:创建与销毁对象是发送请求服务器就会创建它,当响应产生时,对象就会销毁。是容器为开发人员提供的对象,它提供了对某一资源的已过滤请求调用链的视图。 一、Listener监听器 Javaweb开发中的监听器,是用于监听web常见对象 HttpServletRequest HttpSession ServletContext 监听它们的创建与销毁 属性变化 session绑...
阅读 3515·2023-04-25 16:35
阅读 665·2021-10-11 11:09
阅读 6063·2021-09-22 15:11
阅读 3336·2019-08-30 14:03
阅读 2569·2019-08-29 16:54
阅读 3323·2019-08-29 16:34
阅读 3003·2019-08-29 12:18
阅读 2080·2019-08-28 18:31