Servlet-2
时间:2021-09-06
本文章向大家介绍Servlet-2,主要包括Servlet-2使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.HttpServletRequest类
a.HttpServletRequest类的作用
- 每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中。
- 然后传递到service方法(doGet,doPost)中给我们使用。我们可以通过该类对象,获取到所有请求信息。
b.HttpServletRequest类的常用方法
- getRequestURI() 获取请求的资源路径
- getRequestURL() 获取请求的统一资源定位符(绝对路径)
- getRemoteHost() 获取客户端的ip地址
- getHeader() 获取请求头
- getParameter() 获取请求的参数
- getParameterValues() 获取请求的参数(多个值时使用)
- getMethod() 获取请求方式(get/post)
- SetAttribute(key, value) 设置域数据
- getAttribute(key) 获取域数据
- getRequestDispatcher() 获取请求转发对象
c.获取请求参数
设置表单:
获取参数:
String username = req.getParameter("username");
String password = req.getParameter("password");
String[] hobby = req.getParameterValues("hobby");
System.out.println(username);
System.out.println(password);
System.out.println(Arrays.asList(hobby));
注:若需通过post获取输入中文字符需设置req.setCharacterEncoding("UTF-8");
且需将其设置在所有getParameter之前
d.请求的转发
- 请求转发是指服务器收到请求后,从一个资源跳转到另一个资源的操作。
通过servlet1,2模拟请求转发过程
servlet1:
//获取请求参数
String username = req.getParameter("username");
System.out.println("servlet1查看参数: " + username);
//盖章
req.setAttribute("key", "done");
//问路
//请求转发必须要以/打头,/表示地址为http://ip:port/工程名/,映射到IDEA代码的web目录
RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");
//走向柜台2
requestDispatcher.forward(req,resp);
servlet2:
//获取请求参数
String username = req.getParameter("username");
System.out.println("servlet2查看参数: " + username);
//查看柜台1是否有盖章
Object key = req.getAttribute("key");
System.out.println("柜台1是否有章: " + key);
//处理自己的业务
System.out.println("Servlet2处理自己的业务");
请求转发的特点:
- 浏览器地址栏没有变化
- 他们是依次请求
- 他们共享Request域中的数据
- 可以转发到WEB_INF目录下(可以通过请求转发访问WEB_INF)
- 不可以访问工程以外的资源(都是基于当前工程下的地址访问)
- 请求转发必须要以/打头,/表示地址为http://ip:port/工程名/,映射到IDEA代码的web目录
原文地址:https://www.cnblogs.com/jingqz/p/15234470.html
- 照虎画猫写自己的Spring——自定义注解
- 数据分析进阶课程笔记(六)
- 微信发布重磅更新!上线小游戏,小程序间可快速切换
- 鼠标点击层以外的地方层隐藏
- WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)
- WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)
- 解决文本框在updatepanel中得到焦点,输入法不能切换到中文的问题
- 得到真实外网IP、IP所在国家、省份、地区
- 机器学习在智能制造中的应用!
- sql2008 附加数据库时 错误5123
- Logistic Regression Models分析交互式问答译
- 照虎画猫写自己的Spring——依赖注入
- Logistic Regression Models分析交互式问答译
- Asp.Net开发等级星使用(Jquery Rating)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 将终结点图添加到你的ASP.NET Core应用程序中
- Stata | 爬取 CFPS 文献传送门并制作成 Markdown
- 委托的好处
- Elasticsearch安装和配置
- Notes | QUAIDS 模型
- Stata | 520,听说你也想快点找到...
- Stata | 批量替换变量值的小技巧
- 手把手教你完成课设作业使用Pandas对海平面温度异常进行分析,小白也能看的懂
- 谈谈自学 Stata 的体会
- Latex修改字体字号的大小
- Notes | GitHub Upload Large Files
- PPT 中插入图片的几个小技巧
- Stata | 整理调查问卷修改内容清单
- LaTeX | 绘制微观经济学图形
- Python | 地址数据清理相关的库