文档章节

跟小博老师一起学Servlet ——Servlet案例

博为峰教研组
 博为峰教研组
发布于 2017/02/13 19:28
字数 720
阅读 4
收藏 0
点赞 0
评论 0

细心的朋友发现Servlet的执行方法doXXX方法都带中二个类型为HttpServletRequest、HttpServletResponse的参数,通过这二个变量我们可以取请求信息与向客户端做出响应。本节小傅老师与大伙聊聊HttpServletReqeust。

HttpServletRequest

HttpServletReqeust是一个继承自ServletRequest,由容器负责创建实例,它通常作为Servlet的服务方法的参数(doGet,doPost,doDelete等)。客户端的IP、端口、参数、cookie、session等请求信息它都可以取得,是Servlet中最常用的接口之一。

 

用方法

getRemoteAddr

取得请求端的IP地址

getParamter

取得请求参数

getAttribute

取得属性

GetRequestURL

取得请求的URL

getCookies

取得客户端传来的cookies

getSession

取得会话实例

setContentType

设定MIME格式

setAttribute

设定属性

演示

/**

 * 显示HttpServletRequest接口中常用方法

 * 作者:樊建华

 * 日期:2017/2/9

 */

@Override

protected void doPost(HttpServletRequest req,

HttpServletResponse resp)

throws ServletException, IOException {

//取得请求端的IP地址

String addr = req.getRemoteAddr();

//取得请求端的端口号

Integer port = req.getRemotePort();

//取得请求的url

String  url = req.getRequestURL().toString();

//取得客户端的cookie

Cookie cookies[]= req.getCookies();

//取得会话接口实例

HttpSession session = req.getSession();

//根据参数名称取得参数值

String paramName = "uname";

String paramName_value = req.getParameter("uname");

//根据属性名称取得其值

String attrName="aname";

Object attrName_value = req.getAttribute(attrName);

//向控制台输出信息

System.out.println("你请求的IP为:"+addr+"\t端口为:"+port);

System.out.println("请不要做非法操作,我们会保存您的IP和操作记录");

System.out.println("参数名为uname的值为:"+paramName_value);

System.out.println("属性名为aname的值为:"+attrName_value);

}

 

 

 

取得参数

取得请求参数是servlet最为频繁的操作之一,它根据参数名称来取得其值。参数的名称我们可以理解为表单控件名称,一般情况表单控件是唯一,但有时也会存在同名控件。Servlet针对每种情况都提供了相应的方法。

比如我们要取得以下表单的【uname】与【interest】参数的值,我们可以这么操作。

 

<form action="http://localhost/fjhweb/req.do" method="get">

用户名:<input type="text" name="uname" /><br />

爱好:<input type="checkbox" name="interest" value="编程"/>男

<input type="checkbox" name="interest" value="写书"/>女<br />

<input type="submit" value="提交" />

</form>

 

uname

整个表单中只有一个名为uname的控件,可以使用getParameter()获取

//根据参数名称取得参数值

String paramName = "uname";

String paramName_value = req.getParameter("uname");

 

interest

表单中有二个控件都叫“interest”,此时如还采用getParameter()将不能完整的取到值。这种情况我们应该调整为getParamterValues()方法。

String paramInterest="interest";//就是表单控件名称

//由于传过来二个名都叫interest的参数,我们要用getParamterValues()方法

//并用一个字符数组接收其值

String paramInterest_value[] = req.getParameterValues(paramInterest);

 

由HttpServletRequest接口中引申出来的知识点非常多,小傅老师会陆续给大家讲解。

 

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 49
博文 1224
码字总数 479077
作品 0
黄浦
程序员
图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket “眨眼间,离上一篇写技术博文时隔1个月。怕自己真的生疏了,都是备案太慢惹...

泥沙砖瓦浆木匠
2015/08/21
0
50
图解 & 深入浅出 JavaWeb:Servlet必会必知

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket “眨眼间,离上一篇写技术博文时隔1个月。怕自己真的生疏了,都是备案太慢惹...

KeepMoving
2015/08/25
0
0
JSP复习笔记——第11章 JSP 构架和MVC设计模式

11.1 JSP Model I 体系结构 11.2 JSP Model II 体系结构/MVC设计模式 11.3 使用MVC设计模式改写用户注册程序 11.3.1 使用serlvet实现Controller层 11.3.2 使用jsp实现表示层 11.3.3 使用Jav...

暗之幻影
2014/12/18
0
0
J2EE规范系列之 JMS1.1 (一) 基本概念

什么是JMS JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它是J2EE规范的一部分,定义的接口标准,针对不同的厂商有不同的实现库。...

Garrry
2015/07/06
0
0
Web开发之JSP篇——JSP指令

因为学习android开发,必然要去学习关于Web开发的东西,首先来接触一下JSP。关于JSP的出现背景、工作原理等东西就暂时不写了。直接切入正题,怎么使用JSP。今天先来学习最基础的JSP指令。 JS...

笑缘心归
2014/03/26
0
0
和的区别

<%@include%>和jsp:include的区别,发现了一些东西的。 <%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet jsp:include:所有...

Alex_曰生
2015/04/04
0
0
Servlet3.0提供的异步处理

在以前的Servlet规范中,如果Servlet作为控制器调用了一个耗时的业务方法,那么Servlet必须等到业务方法完全返回之后才会生成响应,这将使得Servlet对业务方法的调用变成一种阻塞式的调用,因...

摆渡者
2014/03/03
0
0
图解 & 深入浅出 JavaWeb:Servlet 再说几句

Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket 上一篇的《 Servlet必会必知 》受到大家一致好评 — (感谢 读者 及 OSC 推荐...

泥沙砖瓦浆木匠
2015/09/03
0
13
JavaEE细节问题04——Servlet细节问题

1.<url-patten>的优先级问题 大家都知道,在web.xml中可以通过配置<servlet>和<servlet-mapping>来让一个servlet真正跑起来,而让服务器通过URL定位到 具体serlvet的标签就是通过<url-patten......

Lunqi
2015/08/17
0
0
JSP运行原理与JSP隐式对象(9个)

一、JSP运行原理 Web容器(Servlet引擎)接收到.jsp为扩展名的URL访问请求时,它将把该访问请求交给JSP引擎去处理,JSP引擎负责解释和执行JSP页面。 当Web容器接收到客户端的访问请求时,它将...

KYZGJ
2014/04/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

tomcat 学习笔记之 Session管理

1、Catalina 通过一个 Session 管理器的组件来管理建立的Session 对象 该组件由 org.apache.catalina.Manager 接口表示 Session 管理器必须与一个 Context 关联 Session 管理器负责,创建、更...

职业搬砖20年
刚刚
0
0
jquery获取input框的几种方式

//如何用jquery获取<input id="test" name="test" type="text"/>中输入的值?$(" #test ").val()$(" input[ name='test' ] ").val()$(" input[ type='text' ] ").val()$(" input[ ......

gulf
3分钟前
0
0
gradle的环境变量的配置

gradle的环境变量的配置 1.首先下载jdk,并且配置jdk的环境变量. 2.找到自己AS安装gradle的目录 我自己的目录为:F:\Android Studio3.1.3\gradle\gradle-4.4 创建环境变量:GRADLE_PATH: F:\A...

android-key
9分钟前
0
0
saltstack配置apache

1.相关配置 #vim /etc/salt/master //打开如下内容的注释 file_roots: base: - /srv/salt #mkdir /srv/salt #vim /srv/salt/top.sls base: 'slaver.test.com': - apache 注意:若换成 '*',则......

硅谷课堂
10分钟前
0
0
Nested enum types are implicitly static

.Nested enum types are implicitly static So there's no need to declare them static explicitly....

Yixin_Nemo
11分钟前
0
0
xlsxwriter 常用excel格式

官方文档:xlsxwriter 官方文档 微博只对常用的方法做了总结和coding,详细方法请参考官方文档 常规写入数据: 写入字符串write_string() import xlsxwriterworkbook = xlsxwriter.Workb...

白木日勿
11分钟前
0
0
TeX

Ito LaTeX是一类用于编辑和排版的软件,用于生成PDF文档。 LaTeX编辑和排版的核心思想在于,通过\section和\paragraph等语句,规定了每一句话在文章中所从属的层次,从而极大方便了对各个层次...

E-C-Ares
14分钟前
0
0
nodejs调用webservice接口

刚接触花了一天时间去查找资料,网上资料也是够了,很多都试了不行,最后看了还是那么简单 主要是了node-soap node-soap-ntlm soap-ntlm-2,这几个试了都有缺陷, 1 首先安装soap npm instal...

lovelan1314
14分钟前
0
0
SUSE Linux 将被 EQT 收购

SUSE再次易主 Micro Focus 宣布将其一大部分业务出售给瑞典私人股本集团殷拓(EQT),所得的一部分收益将用来减轻债务,其余部分将返给股东。EQT 是一家专注于开发领域的投资公司,在软件行业拥...

linux-tao
22分钟前
0
0
Elastic-Job定时任务

用Elastic-Job可解决分布式重复执行问题 如果业务工程采用集群化的部署,可能会多次重复执行定时任务而导致系统的业务逻辑错误,并产生系统故障。 job.properties simple.id=recommendJobs...

lsjlgo
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部