这里写目录标题

  • ServletRequest对象
  • HttpServletRequest对象
    • 基本概念
  • HttpServletRequest对象的生命周期
    • 常用方法
      • 获取请求信息
      • 获取请求头信息
      • 获取请求数据
  • ServletResponse对象
    • 基本概念
    • 常用方法
    • 使用示例
  • ServletConfig对象
    • 使用示例
  • ServletContext对象
    • 基本概念
    • ServletContext对象生命周期
  • 常见对象总结
    • HttpServletRequest对象:
      • 作用:
    • HttpServletResponse对象:
      • 作用:
      • 作用:

ServletRequest对象

·javax.servlet.ServletRequest对象主要用于向servlet提供客户端请求信息,可以从中获取到任何请求信息 ;
·Servlet容器创建一个ServletRequest对象,并将其作为参数传递给Servlet的service方法

HttpServletRequest对象

基本概念

·javax.servlet.http.HttpServletRequest对象是ServletRequest接口的子接口,主要用于提供HTTP 请求信息的功能
·发送HTTP请求时,HTTP请求头直接由浏览器设置
·可直接通过HttpServletRequest对象提供的一系列get方法获取请求头数据

HttpServletRequest对象的生命周期

当有请求到达Tomcat时,Tomcat会创建HttpServletRequest对象,并将该对象通过参数的方式传递到我们Servlet的方法中,当处理请求处理完毕并产生响应后该对象生命周期结束

常用方法

获取请求信息(如: 请求的项目名, 请求方式, 请求协议类型等)
·获取请求头信息
·获取请求数据(发送请求携带的参数)

获取请求信息

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String contextPath = req.getContextPath();//请求的项目名String method = req.getMethod();//请求方式String scheme = req.getScheme();//请求协议类型String protocol = req.getProtocol();//请求协议类型/版本号StringBuffer requestURL = req.getRequestURL();//请求的完整URLString requestURI = req.getRequestURI();//请求行中指定资源部分String remoteAddr = req.getRemoteAddr();//请求客户机的IP地址String localAddr = req.getLocalAddr();//请求WEB服务器的IP地址int localPort = req.getLocalPort();//请求WEB服务器的端口
}

获取请求头信息

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//根据请求头中的 key 获取 valueString header = req.getHeader("Connection");System.out.println(header);System.out.println("----------");//获取所有请求头中的keyEnumeration<String> headerNames = req.getHeaderNames();while (headerNames.hasMoreElements()){//获取每一个keyString key = headerNames.nextElement();//  根据key 或取 valuesString value = req.getHeader(key);System.out.println(key + ": "+ value);}
}

获取请求数据

1)获取的参数值只有一个(如: 用户名, 密码, 生日, 单选框, 下拉列表, 大文本框)

String p = req.getParameter("参数名");

获取的参数值大于一个(如: 复选框)

String[] ps = req.getParameterValues("参数名");

获取所有的参数名

Enumeration<String> parameterNames = req.getParameterNames();
<form action="servlet1" method="get">姓名:<input type="text" name="username" value="aaa"/><br/>爱好:<input type="checkbox" name="hobby" value="1"/>篮球<input type="checkbox" name="hobby" value="2"/>足球<input type="checkbox" name="hobby" value="3"/>音乐<input type="checkbox" name="hobby" value="4"/>看书<input type="checkbox" name="hobby" value="5"/>看报纸<br/>星期<input type="radio" name="week" value="1"/>一<input type="radio" name="week" value="2"/>二<input type="radio" name="week" value="3"/>三<input type="radio" name="week" value="4"/>四<input type="radio" name="week" value="5"/>五<input type="radio" name="week" value="6"/>六<input type="radio" name="week" value="7"/>日<br/>籍贯:<select name="pro"><option value="1">吉林</option><option value="2">黑龙江</option><option value="3">辽宁</option><option value="4">内蒙古</option></select><br/>介绍<textarea name="introduce" >aaa</textarea><input type="submit" value="提交数据">
</form>

Servlet

public class TestServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  //设置请求编码   req.setCharacterEncoding("utf-8");//获取用户名String username = req.getParameter("username");//获取爱好String[] hobbies = req.getParameterValues("hobby");//获取星期String week = req.getParameter("week");//获取省份String pro = req.getParameter("pro");//获取自我介绍String introduce = req.getParameter("introduce");//获取所有的参数名Enumeration<String> parameterNames = req.getParameterNames();while (parameterNames.hasMoreElements()){String key = parameterNames.nextElement();String value = req.getParameter(key);System.out.println(key+": "+value);}}
}

ServletResponse对象

基本概念

javax.servlet.ServletResponse对象用于定义一个对象 向客户端发送响应
· Servlet容器创建ServletResponse对象,并将其作为参数传递给servlet的service方法, 在service方法中借助该对象完成向客户端的响应

常用方法

使用示例

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置响应的编码格式resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//获取响应输出流PrintWriter writer = resp.getWriter();//输出html页面writer.println("<html>");writer.println("<head>");writer.println("<title>我的页面</title>");writer.println("</head>");writer.println("<body>");writer.println("<h1>你好啊!</h1>");writer.println("</body>");writer.println("</html>");
}

ServletConfig对象

javax.servlet.ServletConfig对象用于描述Servlet本身的相关配置信息,在初始化期间用于将信息传递给Servlet配置对象
· 在Servlet中通过this.getServletConfig()方法可以父类中获得ServletConfig对象

使用示例

web.xml

servlet><servlet-name>servlet4</servlet-name><servlet-class>com.bjsxt.servlet.TestServlet</servlet-class><init-param><param-name>username</param-name><param-value>zs</param-value></init-param>
</servlet>
<servlet-mapping><servlet-name>servlet4</servlet-name><url-pattern>/testServlet</url-pattern>
</servlet-mapping>

servlet

public class TestServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//从父类中获取ServletConfig对象ServletConfig servletConfig = this.getServletConfig();//获取当前servlet的初始化参数String username= servletConfig.getInitParameter("username");//设置响应的编码格式resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//获取响应输出流PrintWriter writer = resp.getWriter();//输出writer.println("获取当前servlet的初始化参数 username: "+ username);}
}

ServletContext对象

基本概念

javax.servlet.ServletContext对象主要用于定义一组方法,Servlet使用这些方法与它的Servlet容器通信
· 服务器容器在启动时会为每个项目创建唯一的一个ServletContext对象,用于实现多个Servlet之间的信息共享和通信
· 在Servlet中通过this.getServletContext()方法可以父类中获得ServletContext对象

ServletContext对象生命周期

当容器启动时会创建ServletContext对象并一直缓存该对象,直到容器关闭后该对象生命周期结束。ServletContext对象的生命周期非常长,所以在使用全局容器时不建议存放业务数据, 存放的数据为整个项目需要共享的数据


web.xml

<context-param><param-name>charset</param-name><param-value>utf-8</param-value>
</context-param>

servlet(当前项目中所有的servlet共享)

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//从父类中获取ServletContext对象ServletContext servletContext = this.getServletContext();//获取全局初始化参数String charset = servletContext.getInitParameter("charset");//设置响应编码格式resp.setCharacterEncoding(charset);resp.setContentType("text/html;charset="+charset);//获取响应输出流PrintWriter writer = resp.getWriter();//输出writer.println("获取当前项目共享的初始化参数 charset: "+ charset);
}

常见对象总结

HttpServletRequest对象:

作用:

专门处理Http的请求

  1. 可以获取请求相关参数(请求数据[参数], 请求信息, 请求头信息)
    2.可以存储数据, 获取存储的数据(一次请求有效)
    发送请求开始, 响应结束 一次请求
    setAttribute(key,value) getAttribute(key)
  2. 可以完成请求的转发
    生命周期: 当有请求到达Tomcat时,Tomcat会创建HttpServletRequest对象,并将该对象通过参数的方式传递到我们Servlet的方法中,当处理请求处理完毕并产生响应后该对象生命周期结束

HttpServletResponse对象:

作用:

向客户端发送响应

  1. 可以向页面响应内容
  2. 可以完成请求的重定向
  1. ServletContext对象:

作用:

实现多个Servlet之间的信息共享和通信, 一个项目只有一个ServletContext对象, 所有servlet都共享该对象
1.可以获取全局初始化参数(当前项目共享) getInitParameter(key)
2.可以存储数据, 获取数据(当前项目共享)
setAttribute(key,value) getgetAttribute(key)
4) ServletConfig对象:
作用: 描述Servlet本身的相关配置信息

  1. 可以获取当前Servlet的初始化参数(当前Servlet有效)

select中常用的对象相关推荐

  1. js中常用的对象—String的属性和方法

    今天说一下,js中常用的内置对象--String对象 它有以下几个常用的属性: length prototype 有以下几个常用的方法: parseInt()转换为数字 parseFloat()转换为 ...

  2. java对象类型有哪些_Java中常用的对象数据类型有哪些?它们分别又占多少个字节呢?...

    CSDN上面有关于数据类型的一篇总结详细的文章,顺便复制过来: 在java中常见的数据类型有哪些 ? 内置数据类型类型名称字节.位数最小值最大值默认值例子 byte字节1字节,8位-128(-2^7) ...

  3. SELECT中常用的子查询操作

    MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...

  4. ADO.net中常用的对象介绍

    ADO.NET的对象主要包括:DataSet,DataTable,DataColumn,DataRow,和DataRelation. DataSet:这个对象是一个集合对象,它可以包含任意数量的数据表 ...

  5. javascript中select的常用操作

    *说明:select元素javascript常用操作  * 1.判断是否存在指定value的Item  * 2.加入一个Item  * 3.删除值为value的所有Item  * 4.删除某一个ind ...

  6. java中常用API、Scanner类、匿名对象、Random类、ArrayList类、对象数组

    java中常用API: API:Application Programming Interface,应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.这些类将底层的代码实现封装 ...

  7. php redis type,redis中的几种常用基础对象介绍

    一:前言 redis中有几种常用的基础对象,如string.hash.list.set.zset等,下面我们就来介绍下他们的底层实现数据结构与常见应用场景和特点. 二:redisobject 源码位置 ...

  8. BOM模型中常用对象 定义计数器 网页跳转 网页前进后退

    今天上午学了的BOM模型中常用对象,了解了一部分的属性 For循环的规律 外层循环控制行 内层循环控制列 <!doctype html> <html> <head> ...

  9. 小程序 | 小程序中常用的事件 + 事件对象的属性列表 +小程序事件传参 + 小程序全局配置 + 小程序页面配置 + 小程序发起网络数据请求

    文章目录 一.WXML 模板语法 数据绑定 事件绑定 ⭐小程序中常用的事件 ⭐事件对象的属性列表 target 和 currentTarget 的区别 bindtap 的语法格式 在事件处理函数中为 ...

  10. Unity中常用的单例模式、对象池的脚本模板,连按退出和滑动翻页或放大缩小的功能实现,以及属性在代码中的灵活使用

    1.单例模式的脚本模板: Unity中针对一些常用的manager可以使用单例模式,用于统一的功能管理: //普通单例,不需要继承MonoBehavior,不用挂载在GameObject上 publi ...

最新文章

  1. C++中基类的析构函数为什么要用virtual虚析构函数
  2. Log4j输出格式控制--log4j的PatternLayout参数含义
  3. Java中如何生成jar(框架)
  4. boost::iota相关的测试程序
  5. 英伟达最大gpu_英伟达正式发布Ampere架构GPU,完成史上最大性能飞跃
  6. find命令 -- 之查找指定时间内修改过的文件
  7. 【CodeForces - 520B】Two Buttons (bfs或dp或时光倒流,trick)
  8. 面向对象阶段个人总结
  9. php带来互联网的影响,网络对我们的影响有哪些?
  10. fireFox模拟 post请求、上传插件,火狐浏览器中文postman插件
  11. 如何让元素支持 height:100%效果
  12. 向窗口输入文字--TextOut和DrawText函数
  13. 阿里 虚拟主机和弹性web托管的具体区别是什么
  14. python贪心算法几个经典例子_Python笔试——贪心算法
  15. 计算机网络中的网卡作用
  16. python:算术平方根的实现
  17. The Bean Validation API is on the classpath but no implementation could be found 项目启动报错解决
  18. JAVA医护人员排班系统计算机毕业设计Mybatis+系统+数据库+调试部署
  19. matlab做二元garch m,多元garch模型的matlab程序如何运行?能否举例说明下啊,希望高手指点...
  20. 能轻松部署的企业即时通讯软件

热门文章

  1. 如何判断真假“中台”?
  2. 专访阿里云技术掌舵人蒋江伟:中台是企业的未来
  3. java httpclient 进度条_java – 如何使用Apache HttpClient 4获取文件上传的进度条?
  4. 【单目标优化求解 】基于matlab烟花算法求解单目标问题【含Matlab源码 1599期】
  5. 【数字信号调制】基于matlab GUI BPSK调制+解调【含Matlab源码 644期】
  6. java太大太重_Java 编码最容易疏忽的 10 大问题!
  7. 计算机网络—五层知识架构图
  8. PackagesNotFoundError: The following packages are not available from current channels: - python=3
  9. 修改服务器监听端口命令,如何更改prometheus监控系统启动的默认端口号
  10. python快乐数,快乐数 - SegmentFault 思否