ServletConfig接口:

SevletConfig接口位于javax.servlet包中,它封装了servlet配置信息,在servlet初始化期间被传递。每一个Servlet都有且只有一个ServletConfig对象。

首先配置信息为:

  • getInitParameter(String name)————此方法返回String类型名称为name的初始化参数值
  • getInitParameterNames()————获取所有初始化参数名的枚举集合
  • getServletContext()————用于获取Servlet上下文对象
  • getServletName()————返回Servlet对象的实例名
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init");
//获取初始化参数:servlConfig
String user=servletConfig.getInitParameter("user");
System.out.println("user:"+user);
Enumeration<String> names=servletConfig.getInitParameterNames();
while(names.hasMoreElements()) {
String name=names.nextElement();
String value=servletConfig.getInitParameter(name);
System.out.println("~~"+name+":"+value);
}
//获取servletConfig对象 servletContext
ServletContext servletcontext=servletConfig.getServletContext();
String driver=servletcontext.getInitParameter("driver");
System.out.println("driver:"+driver);
Enumeration<String> names2=servletcontext.getInitParameterNames();
while(names2.hasMoreElements()) {
String name=names2.nextElement();
System.out.println("-->"+name);
}
//获取当前WEB应用的某一个文件在服务器上的绝对路径,而不是部署前的物理路径
String realpath=servletcontext.getRealPath("/note.txt");
System.out.println(realpath);
//获取当前web应用的名称
String contextPath = servletcontext.getContextPath();
System.out.println(contextPath); try {
ClassLoader classLoader=getClass().getClassLoader();
InputStream is=classLoader.getResourceAsStream("jdbc.servlet");
System.out.println("1."+is);
} catch (Exception e) {
e.printStackTrace();
}
//获取当前WEB应用的某一个文件对应的输入流:path的/为当前web应用的根目录
try {
InputStream is2=servletcontext.getResourceAsStream("/WEB-INF/classes/jdbc.servlet");
System.out.println("2."+is2);
} catch (Exception e) {
e.printStackTrace();
}
}

输出结果:

GET 请求和 POST 请求:

1). 使用GET方式传递参数:

  1. 在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。
  2. 如果网页中的<form>表单元素的 method 属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
  3. 使用GET请求方式给WEB服务器传递参数的格式: http://www.boogiever.com/counter.jsp?name=ISEE&password=777
  4. 使用GET方式传送的数据量一般限制在 1KB 以下。

2). 使用 POST 方式传递参数:

  • POST 请求方式主要用于向 WEB 服务器端程序提交 FORM 表单中的数据: form 表单的 method 置为 POST
  • POST 方式将各个表单字段元素及其数据作为 HTTP 消息的实体内容发送给 WEB 服务器,传送的数据量要比使用GET方式传送的数据量大得多。

POST /counter.jsp HTTP/1.1
referer: http://localhost:8080/Register.html
content-type: application/x-www-form-urlencoded
host: localhost:8080
content-length: 43

name=wangziyi&password=777              --请求体中传递参数.

Serlvet接口只定义了一个服务方法就是service,而HttpServlet类实现了该方法并且要求调用下列的方法之一:
doGet:处理GET请求
doPost:处理POST请求
当发出客户端请求的时候,调用service
方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或
doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。doGet和doPost都接受请求
(HttpServletRequest)和响应(HttpServletResponse)。

在实现登陆界面时发现form里面写的是post而逻辑处理页面代码都写在doget()里面依然可以正常运行,思考后发现是由于tomcat自动生成代码时,dopost()里面调用了doget()方法;

servlet学习之servletAPI编程常用的接口和类的更多相关文章

  1. JavaWeb学习之JDBC API中常用的接口和类

    JDBC API中包含四个常用的接口和一个类分别是: 1.Connection接口 2.Statement接口 3.PreparedStatement接口 4.ResultSet接口 5.Driver ...

  2. Servlet常用的接口和类

    使用接口和类的作用:Servlet也是依靠继承父类和实现接口来实现的.使用Servlet必须要引入两个包:javax.servlet和javax.servlet.http.所有的Servlet应用都是 ...

  3. Spring常用的接口和类(一)

    一.ApplicationContextAware接口 当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口.代码展示如下: p ...

  4. Spring常用的接口和类(三)

    一.CustomEditorConfigurer类 CustomEditorConfigurer可以读取实现java.beans.PropertyEditor接口的类,将字符串转为指定的类型.更方便的 ...

  5. Spring常用的接口和类(二)

    七.BeanPostProcessor接口 当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中. 实现BeanPostPro ...

  6. 07.Hibernate常用的接口和类---Session接口☆☆☆☆☆

    一.特点 Session是在Hibernate中使用最频繁的接口.也被称之为持久化管理器.它提供了和持久化有关的操作,比如添加.修改.删除.加载和查询实体对象 Session 是应用程序与数据库之间交 ...

  7. 学习响应式编程 Reactor (4) - reactor 转换类操作符(1)

    Reactor 操作符 数据在响应式流中的处理,就像流过一条装配流水线.Reactor 既是传送带,又是一个个的装配工或机器人.原材料从源头(最初的 Publisher )流出,经过一个个的装配线中装 ...

  8. 学习响应式编程 Reactor (5) - reactor 转换类操作符(2)

    Reactor 操作符 上篇文章我们将 Flux 和 Mono 的操作符分了 11 类,我们来继续学习转换类操作符的第 2 篇. 转换类操作符 转换类的操作符数量最多,平常过程中也是使用最频繁的. F ...

  9. 05.Hibernate常用的接口和类---Configuration类和作用

    Configuration作用: 加载Hibernate配置文件,可以获取SessionFactory对象 加载方式: 1.加载配置文件 Configuration configuration = n ...

随机推荐

  1. SQL CASE Syntax

    CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE ...

  2. 一、Django入门

    1.安装: 下载地址:https://www.djangoproject.com/download/ 原文节选: How to get Django Django is available open- ...

  3. Linux安装—IP设置

    IP设置 务必不要把Linux的IP设置为和我们的真实机位于同一网段(这可能会跟其他机器造成冲突) 具体操作是:在安装虚拟机时Network Type设置选择:Use Host-Only networ ...

  4. 2019 7.6 T2 虫洞

    虫洞(conch) [题目描述] HZY 现在在数轴原点处,她想跑到 2000001 这个点上.听说各路 神犇暑假里都在健♂身,所有 HZY 也想不要只是简单地跑步,于是她 决定在这条数轴上造虫洞,具 ...

  5. 记一次protobuf和hbase自带protobuf版本冲突的解决

    使用protobuf生产模板代码,使用的版本是: <dependency> <groupId>com.google.protobuf</groupId> <a ...

  6. ansible模块文件操作

    Ansible常用模块文件操作 [root@tiandong etc]# ansible-doc -l   列出ansible所支持的模块 [root@tiandong ~]# ansible-doc ...

  7. python3网络编程

    网络编程(定义) 网络编程的本质就是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机,数据传递本身 没有多大难度,不就是把一个设备中的数据发送给一个设备,然后接收另一个设备的反馈的数据. ...

  8. 代码审计之seacms v6.54 前台Getshell 复现分析

    1.环境: php5.5.38+apache+seacms v6.54 上一篇文章针对seacms v6.45 进行了分析,官方给出针对修复前台geishell提供的方法为增加: $order = ( ...

  9. vue-cli脚手架构建了项目,想去除Eslint验证,如何设置?

    vue-cli脚手架构建了项目,想去除Eslint验证,如何设置? 在webpack.base.conf.js里面删掉下面: preLoaders: [ { test: /\.vue$/, loade ...

  10. HearthBuddy卡组

    偶数萨 手打两天已上传说,各位加油  欧洲牧羊人 ### 火元素换艾雅# 职业:萨满祭司# 模式:狂野模式## 2x (2) 图腾魔像        # 2x (2) 大漩涡传送门   # 2x (2 ...