java必知必会-j2ee规范(上)

文章目录

  • 一、WEB三大规范
  • 二、j2ee相关接口(上)
    • 1.javax.servlet.Servlet
    • 2.javax.servlet.http.HttpServlet
    • 3.javax.servlet.ServletRequest
    • 4.javax.servlet.http.HttpServletRequest
    • 5.javax.servlet.ServletResponse
    • 6.javax.servlet.http.HttpServletResponse
    • 7. javax.servlet.ServletContext
    • 8. javax.servlet.ServletConfig
  • 总结


一、WEB三大规范

  • servlet
  • filter
  • listener

二、j2ee相关接口(上)

1.javax.servlet.Servlet

  • servlet用于获取请求数据、处理请求、完成响应
  • 使用servlet可以实现servlet接口并配置web.xml,但是不推荐
  • init(ServletConfig config);//servlet对象创建的时候执行ServletConfig:代表的是该servlet对象的配置信息
  • service(ServletRequest request,ServletResponse response);//每次请求都会执行
  • destroy();//servlet销毁的时候执行

2.javax.servlet.http.HttpServlet

  • 使用servlet可以继承HttpServlet并复写HttpServlet类的doGet、doPost方法并配置web.xml
  • init();//servlet对象创建的时候执行
  • doGet(HttpServletRequest request,HttpServletResponse response);//每次get请求都会执行
  • doPost(HttpServletRequest request,HttpServletResponse response);//每次post请求都会执行
  • destroy();//servlet销毁的时候执行

3.javax.servlet.ServletRequest

4.javax.servlet.http.HttpServletRequest

  • 获得请求行
    • String getContextPath()获得”/“+web应用名称,例如/WEB15_request
    • String getMethod()
    • String getRequestURI()获得相对web应用地址/WEB15_request/line
    • String getRequestURL()获得绝对路径http://localhost:8080/WEB15_request/line
    • String getRemoteAddr()获得访问的客户端IP地址
    • String getQueryString()get提交url地址后的参数字符串username=lisi&password=123
    • String getProtocol();获取请求行中的协议名和版本
    • String getServletPath();
    • String getRemotePort();
    • String getRemoteHost();
    • String getLocalAddr();
    • String getLocalName();
    • String getLocalHost();
    • int getLocalPort();
    • String getServerName();
    • int getServerPort();
    • String getScheme();//获取请求协议名
    • StringBuffer getRequestURL();
  • 获得请求头
    • String getHeader(String name)
    • Enumeration getHeaders(String name)
    • Enumeration getHeaderNames()
    • Long getDateHeader(String name)
    • int getIntHeader(String name)
    • String getContentType()
    • int getContentLength()
    • String getCharacterEncoding()
  • 获得请求体
    • String getParameter(String name) 多个只获得一个,没有则返回null
    • Map<String,String[]> getParameterMap()获得指定参数名对应的所有键值
    • String[] getParameterValues(String name)获得指定参数名对应的所有值(少用)
    • Enumeration getParameterNames()
  • 乱码:浏览器的中文用UTF-8编码,而HTTP协议使用iSO8859-1编码。不同的浏览器接收和发送数据取决于浏览器类型,通过Http请求体中的User-Agent属性可以辨别
    • post乱码 request.setCharacterEncoding(“UTF-8”);
    • get乱码 String parameter=new String(parameter.getbytes(“iso8859-1”),“utf-8”);
  • 转发 request.getRequestDispatcher(”/?”).forward(req,resp);
  • 域对象
    • Object setAttribute (String name, Object o)set注意名字相同时则覆盖
    • String getAttribute(String name)
    • void removeAttribute(String name)

5.javax.servlet.ServletResponse

6.javax.servlet.http.HttpServletResponse

  • 设置响应行
    • void setStatus(int sc)
    • void sendError(int sc,[String messge])
  • 设置响应头(值不重复)
    • void addHeader(String name, String value)
    • void setHeader(String name, String value);
  • 设置定时刷新的头:setHeader(“refresh”, “5;url=http://www.baidu.com”);
    • void addIntHeader(String name, int value)
    • void setIntHeader(String name, int value)
    • void addDateHeader(String name, long date)
    • void setDateHeader(String name, long date)
    • void setContentLength(int len)
    • void setContentType(String type)
    • void setLocale(Locale loc)
    • void setCharacterEncoding(String charset)
  • 设置响应体
    • getWriter().write(“”)字符串,可以插入标签
    • getOutputStream().write(byte[] bytes) 因为getWriter()之前已调用getOutputStream(),故两者不能同时使用
    • setHeader(“content-Type”,“text/html;charset=utf-8”);中文乱码
    • sendRedirect(“/WEB14/servlet2”);重定向
    • setStatus(302);setHeader(“Location”, “/WEB14/servlet2”);

7. javax.servlet.ServletContext

  • 获得ServletContext
    • ServletConfig.getServletContext();
    • this.getServletContext();(推荐)
  • 获得web.xml全局的初始化参数 getInitParameter(String name);
  • 域对象(整个web应用)
    • void setAtrribute(String name,Object obj);
    • Object getAttribute(String name);
    • void removeAttribute(String name);
  • WebContext目录内任何资源绝对路径
    • String getRealPath(String path);//:/WEB-INF/
    • InputStream getResourceAsStream(String path); 以/开头path相对WebContext目录InputStream

8. javax.servlet.ServletConfig

  • 获得该servlet在web.xml上的name String getServletName();
  • 获得该servlet的初始化的参数
    • String getInitParameter(String name);
    • Enumeration getInitParameterNames();
  • 获得Servletcontext对象 ServletContext getServletContext();

总结

本文介绍了的j2ee规范(上),如有问题欢迎私信和评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/40178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s record 20240705

k8s 安全管理 request 是1g&#xff0c;你得不到要求&#xff0c;我就不创建了&#xff0c;这就是准入控制二次校验 SA就是serviceAccount。 内部是SA和 token, 外部用户进来就是 .kube/config文件 namespace下的是role&#xff0c;整个集群是 ClusterRole. 动作就是Binding li…

pytest-rerunfailures:优化测试稳定性的失败重试工具

笔者在执行自动化测试用例时&#xff0c;会发现有时候用例失败并非代码问题&#xff0c;而是由于服务正在发版&#xff0c;导致请求失败&#xff0c;从而降低了自动化用例的稳定性&#xff0c;最后还要花时间定位到底是自身case的原因还是业务逻辑问题&#xff0c;还是其他原因…

适合家居建材企业的CRM系统盘点(2024版)

当前&#xff0c;CRM市场上&#xff0c;国际巨头的市场优势正在逐渐减弱&#xff0c;国内CRM企业奋起追赶&#xff0c;呈现出强劲的崛起势头。因此&#xff0c;对于家居建材企业来讲&#xff0c;在进行CRM选型时&#xff0c;如何选择一款合适的系统是关乎企业高效发展的重要课题…

矩阵键盘与密码锁

目录 1.矩阵键盘介绍​编辑 2.扫描的概念 3.代码演示&#xff08;读取矩阵键盘键码&#xff09; 4.矩阵键盘密码锁 1.矩阵键盘介绍 为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式&#xff0c;采用逐行或逐列的 “扫描”&#xff0c;就可以读出任何位置按键的状态…

免杀笔记 ----> ShellCode Loader !!!

学了那么久的前置知识&#xff0c;终于到了能上线的地方了&#xff01;&#xff01;&#xff01; 不过这里还没到免杀的部分&#xff0c;距离bypass一众的杀毒软件还有很长的路要走&#xff01;&#xff01; 目录 1.ShellCode 2.ShellCode Loader的概念 3.可读可写可…

字符串函数5-9题(30 天 Pandas 挑战)

字符串函数 1. 相关知识点1.5 字符串的长度条件判断1.6 apply映射操作1.7 python大小写转换1.8 正则表达式匹配2.9 包含字符串查询 2. 题目2.5 无效的推文2.6 计算特殊奖金2.7 修复表中的名字2.8 查找拥有有效邮箱的用户2.9 患某种疾病的患者 1. 相关知识点 1.5 字符串的长度条…

代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 题目链接&#xff1a;188.买卖股票的最佳时机IV 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会 思路&#xff1a; 在股票买卖1使用一维dp的基础上&#xff0c;升级成二维的即可。 定义dp[k1][2]&#xff0c;其中 dp[j][0] 表示第j次交易后持…

虚拟ECU:纯电动汽车发展下的新选择

人类文明的进步是一个不断自我否定、自我超越的过程。21世纪以来&#xff0c;随着科技进步和经济社会发展&#xff0c;能源和交通系统已从独立于自然环境的孤立系统&#xff0c;转变为与自然、技术、社会深度耦合的复杂系统。为实现可持续发展和应对气候变化&#xff0c;世界各…

【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——AVL树

目录 1 -> 底层结构 2 -> AVL树 2.1 -> AVL树的概念 2.2 -> AVL树节点的定义 2.3 -> AVL树的插入 2.4 -> AVL树的旋转 2.5 -> AVL树的验证 2.6 -> AVL树的性能 1 -> 底层结构 在上文中对对map/multimap/set/multiset进行了简单的介绍&…

《简历宝典》02 - 如果你是HR,你会优先打开哪份简历?

现在的求职环境不必多说&#xff0c;其实我们大家都还是很清楚的。所以&#xff0c;在这个环境下&#xff0c;写一份优秀的简历&#xff0c;目的与作用也不必多说。那么&#xff0c;这一小节呢&#xff0c;我们先从简历这份文档的文档名开始说起。 目录 1 你觉得HR们刷简历的时…

【深度学习】图形模型基础(5):线性回归模型第二部分:单变量线性回归模型

1.引言 在统计学与机器学习的广阔领域中&#xff0c;线性回归作为一种基础而强大的预测技术&#xff0c;其核心在于通过输入变量&#xff08;或称预测器、自变量&#xff09;来估计输出变量&#xff08;响应变量、因变量&#xff09;的连续值。本章聚焦于线性回归的一个基本但…

【C++】相机标定源码笔记- 立体视觉相机的校准和图像矫正类

类主要用于双目相机的标定和矫正。它包含了读取和保存相机模型、计算标定参数以及矫正图像的功能。通过这些功能&#xff0c;可以实现双目相机的标定和矫正&#xff0c;从而提高双目相机的精度和稳定性。 公有函数&#xff1a; 构造函数、带参构造函数、析构函数、读取双目相机…

摩斯邀您参加“WAIC 2024世界人工智能大会”

2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;简称“WAIC 2024”&#xff09;将于7月在上海世博中心、世博展览馆举行&#xff0c;论坛时间为7月4日-6日&#xff0c;展览时间为7月5日-7日。大会展览面积超5.2万平方米&#xff0c;重点围绕核心技术、智能终端、…

STM32要学到什么程度才算合格?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; STM32 这玩意儿要学到啥…

vscode 前行复制到下一行

目录 这个技巧也比较多 选择 python解释器 F1 Ctrl Shift P 跳转上一次编辑 下一次编辑 Ctrl d 会把当前行复制到下一行 步骤1&#xff1a;打开键绑定设置 使用VS Code设置换行 这个技巧也比较多 VS Code技巧汇总_vs code反缩进-CSDN博客 选择 python解释器 F1 Ctrl Shi…

Java中如何使用 tesseract-ocr 进行图片文字提取(tesseract、tesseract训练自己的字库)

tesseract下载链接&#xff1a; github&#xff1a;https://github.com/tesseract-ocr/ db&#xff1a;https://digi.bib.uni-mannheim.de/tesseract/ 文字识别技术在许多领域都有广泛的应用&#xff0c;例如文档处理、自动化办公、移动设备上的文本输入等。而Tesseract-OCR作…

Python推导式写出简洁高效的代码方法详解

概要 推导式是Python中一种非常强大的语法特性,允许你用简洁的语法创建列表、字典、集合等数据结构。使用推导式不仅可以让代码更加简洁和易读,还能提高代码的执行效率。本文将详细介绍Python中的各种推导式,并提供相应的示例代码,帮助全面掌握这一强大的工具。 列表推导式…

【前端项目笔记】9 数据报表

数据报表 效果展示&#xff1a; 在开发代码之前新建分支 git checkout -b report 新建分支report git branch 查看分支 git push -u origin report 将本地report分支推送到云端origin并命名为report 通过路由的形式将数据报表加载到页面中 渲染数据报表基本布局 面包屑导航…

数据洞察:从零到一的数据仓库与Navicat连接全攻略【实训Day04】[完结篇]

一、数据分析 1 实现数据仓库(在hadoop101上) 1) 创建jobdata数据库 # cd $HIVE_HOME # bin/hive hive>create database jobdata; hive>use jobdata; 2) 创建原始职位数据事实表ods_jobdata_orgin(在hadoop101上) create table ods_jobdata_origin( city string CO…

Keepalived+LVS实现负责均衡,高可用的集群

Keepalived的设计目标是构建高可用的LVS负载均衡群集&#xff0c;可以调用ipvsadm工具来创建虚拟服务器&#xff0c;管理服务器池&#xff0c;而不仅仅用作双机热备。使用Keepalived构建LVS群集更加简便易用&#xff0c;主要优势体现在&#xff1a;对LVS负责调度器实现热备切换…