1.Servlet技术

2.Servlet类的继承体系

3.ServletConfig类

4.ServletContext类

1.Servlet技术

a) 什么是Servlet

Servlet是javaWeb的三大组件。Servlet程序,Listener监听器。Filter过滤器。

Servlet程序主要是运行在Tomcat服务器上。

Servlet程序的作用:接收客户端的请求。响应给客户端数据。

b) 手动实现Servlet程序

1、编写一个类去实现Servlet接口

2、实现Servlet程序中的service方法(处理业务的方法)

3、到web.xml中去配置Servlet程序的访问地址

Servlet程序的源代码:

public class HelloServlet implements Servlet {/***   Servlet程序接收客户端的请求,并且响应数据<br/>*  service在每请求进来 的时候,负责 处理业务*/@Overridepublic void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {System.out.println("HelloServlet 程序被访问了~");}
}

web.xml中的配置:

<!-- servlet标签用来配置一个Servlet程序 --><servlet><!-- 给你要配置的Servlet程序起一个名称,一般放的是类名(可以任意自定义) --><servlet-name>HelloServlet</servlet-name><!-- servlet-class标签是配置Servlet程序的全类名 --><servlet-class>com.atguigu.servlet.HelloServlet</servlet-class></servlet><!-- servlet-mapping是配置Servlet程序的访问地址 --><servlet-mapping><servlet-name>HelloServlet</servlet-name><!-- url-paatern是配置访问地址。/hello 表示http://ip:port/工程名/hello--><url-pattern>/hello</url-pattern>
</servlet-mapping>

a) Servlet的生命周期

1、先执行Servlet的构造方法

2、执行Servlet程序的init初始化方法

构造方法和init初始化方法,只是第一次访问的时候由Tomcat服务器来调用,只调用一次

3、执行Service方法 (每次访问都会被调用)

4、执行destroy方法(服务器停止,停止web工程 )

b) 模拟GET请求和POST请求的分发

请求分为GET请求和POST请求。(一般GET请求和POST请求有可能会做不同的业务操作)

服务器如何区分 GET请求和POST请求。

/***     Servlet程序接收客户端的请求,并且响应数据<br/>*  service在每请求进来 的时候,负责 处理业务*/@Overridepublic void service(ServletRequest request, ServletResponse response)throws ServletException, IOException {
//      System.out.println("HelloServlet 程序被访问了~");HttpServletRequest httpRequest = (HttpServletRequest) request;// getMethod返回是GET或POST,返回请求的方式String method = httpRequest.getMethod();System.out.println(method);if ("GET".equals(method)) {// 如果是GET请求,执行get业务doGet();} else if ("POST".equals(method)) {//执行post请求的业务操作doPost();}}/*** 这是GET请求需要做的工作*/public void doGet() {System.out.println("doGet 这是GET请求");}/*** 这是POST请求需要做的工作*/public void doPost() {System.out.println("doPost 这是POST请求");}

a) 通过继承HttpServlet实现Servlet程序

在实现的开发中,我们都是使用HttpServlet抽取类去实现Servlet程序。

1、编写一个类去继承HttpServlet类

2、重写doGet方法和doPost方法

3、到web.xml中去配置Servlet程序的访问地址

HelloServlet2类

public class HelloServlet2 extends HttpServlet {/*** doGet方法,是GET请求的时候,会自动的调用*/@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("这是GET请求,调用了doGet方法");}/*** doPost方法,是POST请求的时候,会自动的调用*/@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("这是POST请求,调用了doPost方法");}}

web.xml中的配置:

<servlet><servlet-name>abc</servlet-name><servlet-class>com.atguigu.servlet.HelloServlet2</servlet-class></servlet><servlet-mapping><servlet-name>abc</servlet-name><!-- url-pattern 中 /ccc 表示http://ip:port/工程名/ccc<br/>url-pattern以斜线打头,配置的地址跟在工程名的后面web.xml中有了修改之后一定要重启Tomcat服务器才能生效在浏览器地址栏中输入地址,然后敲 回车是GET请求--><url-pattern>/ccc</url-pattern>
</servlet-mappi

2.Servlet类的继承体系

我们在重写doGet方法或doPost方法的时候,方法体内,一定不能调用super.doGet或super.doPost代码。否则会报405错误

3.ServletConfig类

我们所有的类都是由tomcat服务器进行创建。我们负责使用。

ServletConfig类它封装了Servlet程序的配置信息。

a) ServletConfig类的三大作用

1、获取Servlet程序在web.xml中配置的名称

2、获取在web.xml中配置的初始化参数

3、获取ServletContext对象

public class ConfigServlet extends HttpServlet {private static final long serialVersionUID = 1L;public void init(ServletConfig config) throws ServletException {
//      1、获取Servlet程序在web.xml中配置的名称System.out.println("在web.xml中配置的servlet-name名称:" + config.getServletName());
//      2、获取在web.xml中配置的初始化参数System.out.println("username初始化参数值:" + config.getInitParameter("username"));System.out.println("url初始化参数值:" + config.getInitParameter("url"));
//      3、获取ServletContext对象System.out.println( config.getServletContext() );}
}

web.xml中的配置:

<servlet><servlet-name>ConfigServlet</servlet-name><servlet-class>com.atguigu.servlet.ConfigServlet</servlet-class><!-- init-param 是给Servlet程序配置一个初始化键值对参数 --><init-param><!-- param-name是参数名 --><param-name>username</param-name><!-- param-value是参数值 --><param-value>root</param-value></init-param><!-- init-param 是给Servlet程序配置一个初始化键值对参数 --><init-param><!-- param-name是参数名 --><param-name>url</param-name><!-- param-value是参数值 --><param-value>jdbc:mysql://localhost:3306/test</param-value></init-param></servlet><servlet-mapping><servlet-name>ConfigServlet</servlet-name><url-pattern>/configServlet</url-pattern></servlet-mapping>

注意:ServletConfig是在GenericServlet类中持有的引用。当我们需要在自己自定义的Servlet程序中重写init(ServletConfig)初始化方法的时候。

一定要调用super.init(config); 否则父类中的ServletConfig就不能得到初始化

4.ServletContext类

a) 什么是ServletContext?

1、ServletContext对象是一个接口。

2、ServletContext在一个web工程中只有一个对象实例(也是由Tomcat服务器创建)。

3、ServletContext是一个域对象。

什么是域对象?

域对象指的是可以像map一样存取数据的对象。

put setAttribute 保存数据

get getAttribute 获取数据

域指的保存和获取数据的范围。ServletContext对象它的数据操作范围是整个web工程。

ServletContext对象在web工程启动的时候创建。在web工程停止的时候销毁。

b) ServletContext类的四个作用

1、它可以获取在web.xml中配置的上下文参数<context-param>

2、它可以获取到当前web工程的工程名(工程路径)

3、它可以获取web工程发布到服务器上之后。文件或目录在服务器磁盘上的绝对路径。

4、它可以像map一样存取数据。

protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// b)ServletContext类的四个作用ServletContext ctx = getServletContext();// 1、它可以获取在web.xml中配置的上下文参数<context-param>System.out.println("上下文初始化参数password的值:"+ ctx.getInitParameter("password"));System.out.println("上下文初始化参数driverClass的值:"+ ctx.getInitParameter("driverClass"));// 2、它可以获取到当前web工程的工程名(工程路径)// getContextPath()获取当前工程名System.out.println(ctx.getContextPath());// 3、它可以获取web工程发布到服务器上之后。文件或目录在服务器磁盘上的绝对路径。// getRealPath是获取指定的路径的资源在服务器上的绝对路径。// / 斜线,表示 根,// / 斜线 在web工程中 表示到http://ip:port/工程名/ 映射到 代码的WebContent目录System.out.println(ctx.getRealPath("/"));System.out.println("WebContent/css的绝对路径是:" + ctx.getRealPath("/css"));System.out.println("WebContent/imgs/ludashi.jpg的绝对路径是:" + ctx.getRealPath("/imgs/ludashi.jpg"));}

在web.xml中的配置:

 <context-param><param-name>password</param-name><param-value>root</param-value></context-param><context-param><param-name>driverClass</param-name><param-value>com.mysql.jdbc.Driver</param-value></context-param>

Javaweb开发了解前端知识六、Tomcat

Javaweb开发了解前端知识七、Servlet(一)相关推荐

  1. Javaweb开发了解前端知识四、Jquery(二)

    1.JQuery 的属性操作 JQuery属性操作 html() 它可以设置和获取起始标签和结束标签中的内容 功能跟innerHTML一样 text() 它可以设置和获取起始标签和结束标签中的文本 功 ...

  2. JavaWeb开发_Web前端_Ajax

    JavaWeb开发_Web前端_Ajax 原生Ajax Axios 案例 参考 原生Ajax 概念: Asynchronous JavaScript And XML, 异步的JavaScript和XM ...

  3. javaWeb开发总结 ---- 前端数据插入到后台

    一,概述: 本文主要描述如何将数据通过表单提交到后台并插入到数据库.其中后台使用spring框架. 二,开发流程: 明确需求,即将什么数据插入到数据库 平台搭建,配置spring, 数据库,建表 走通 ...

  4. SEEK学习论坛-JavaWeb开发实训课题 (数据库MySQL+js+Ajax+Servlet)

    关于这次学校实训,我们做了一个类似于CSDN博客的项目,然后我们小组取名叫SEEK,一个学习论坛,前面ppt有介绍,我主要是负责后端数据库的,与MySQL交互,由我的组长写好js代码,然后将前端所获取 ...

  5. JavaWeb开发 前端语言:jQuery(一) jQuery核心函数、jQuery对象、jQuery选择器、以及jQuery元素筛选

    JavaWeb开发 前端语言:jQuery 1.jQuery介绍 1.1 jQuery的初使用 1.2 使用jQuery的常用问题解析 2. jQuery核心函数介绍 3.区分jQuery对象与dom ...

  6. 【JavaWeb开发-Servlet】拾起海中的漂流瓶超强版

    目录 原版: 一.思路: 二.实现: 三.资源分享 四.部署服务器时记得修改文件路径 原版: [JavaWeb开发-Servlet]拾起海中的漂流瓶增强版_代码骑士的博客-CSDN博客[代码][Jav ...

  7. 【JavaWeb开发-Servlet】拾起海中的漂流瓶

    项目原型: [JavaWeb开发-Servlet]老人言随机语录_代码骑士的博客-CSDN博客需求:点击网页按钮随机显示一句话:1.内容涵盖:老人言.励志语录.名言名言.一句情话2.设计要求:以老人言 ...

  8. 【JavaWeb开发-Servlet】拾起海中的漂流瓶增强版

    目录 原版: 1.前端样式 2.错误提示 3.实现id序列增长 完整项目代码: 原版: [JavaWeb开发-Servlet]拾起海中的漂流瓶_代码骑士的博客-CSDN博客需求:点击网页按钮随机显示一 ...

  9. 前端开发的浏览器知识

    前端开发的浏览器知识 1.1 在浏览器中输入url 用户输入url,例如http://www.feng.com.其中http为协议,www.feng.com为网络地址,及指出需要的资源在哪台计算机上. ...

最新文章

  1. Autofac3 在MVC4中的运用原理
  2. 使用Altera综合工具Quartus II下载到FPGA时无法识别USB-Blaster问题
  3. ruby on rails 站点
  4. PHP中的get_defined_funciton和get_defined_vars
  5. Python的lambda函数
  6. ArcMap自定义脚本工具制作
  7. ubuntu下caffe的FCN8模型训练
  8. Neural networks and deep learning C1总结(一)
  9. Windows10系统的MSDN下载和通过U盘进行安装的步骤(亲测有效)
  10. 记一次PLC和脉冲型伺服电机的接线方法_20210915
  11. 将图片url转file类型
  12. 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版登录入口-云课堂智慧职教app官网版下载-XP软件园...
  13. AutoCAD块属性提取
  14. SQL语句 按年龄段分组统计人数
  15. VUE3(二十四)自定义alert弹窗组件
  16. 原生JS获取QQ好友列表
  17. 2022中级Android开发面试解答,当上项目经理才知道
  18. VisionPro (简单介绍)
  19. Level Set Evolution Without Re-initialization: A New Variational Formulation
  20. 微观经济学第六周作业(需求函数,收入效应与替代效应)

热门文章

  1. icloud是什么?
  2. 12-1 蓝色天空 : 创建一个背景为蓝色的Pygame窗口 12-2 游戏角色 : 找一幅你喜欢的游戏角色位图图像或将一幅图像转换为位图。 创建一个类, 将该角色绘制到屏幕中央, 并将该图像的背景色
  3. # 标题Windows最强神器,WIN+R的最骚使用方法!
  4. 【单片机毕业设计】【mcuclub-jj-051】基于单片机的书桌的设计
  5. 重新安装anaconda的感想
  6. 深入探索C++对象模型之C++对象(vs,gcc,clang测试)
  7. 第一本Docker书pdf
  8. android 2.2(froyo)源码下载
  9. mysql linux 监控工具_细说linux服务器各种监控工具
  10. 阿里云服务器永久性修改主机名方法