JSP内置对象学习(2)-request篇

request请求对象

request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息,请求方式和请求参数等,通过该对象提供的相应方法可以获取客户端请求中的信息。

1.获取请求参数

客户端向服务器端发送请求时,通常情况会包含一些请求参数。例如,请求删除数据库中的一条信息时,需要在请求中传递一个主键值,在传递过程中其参数加载在request对象中。

当通过超链接的形式发送请求时可以为该请求传递参数,可以通过在超链接的后面加上问号"?"来实现,注意这个问号为英文半角。例如,发送一个请求到delete.jsp页面并传递一个名为id的参数,可以通过以下超链接实现

<a href="delete.jsp?id=1">删除</a>

注意:在通过问号"?"指定请求参数时,参数值不需要使用单引号或者双引号括起,包括字符型的参数,如果同时指宗多个参数,各参数间用"&"分隔

在delete.jsp页面可以通过request对象的getParameter()方法获取传递的参数值,其代码如下

<%

    String id=request.getParameter("id");

%>

执行了getParameter()方法后id值为1.

说明:在超链接中传递参数通过GET请求方式传递,如果通过POST请求方式传递参数,也使用getParameter()方法获取参数值

实例:实现用户注册功能,将用户的注册信息输出到JSP页面中

<1>创建程序首页index.jsp,在其中编写用户登录的表单,代码如下图


(2)创建名为login.jsp的用户登录处理页面,其代码如下图:


login.jsp实现用户登录的功能,其实现方式是判断表单提交的用户值和密码是否为admin,如果是刚用户登录成功,否则登录失败.

运行效果如下图:



2.解决中文乱码问题

在通过request对象获取请求参数时,如果参数值为中文且未处理,则获取的参数值将是乱码,在JSP中解决获取请求参数的中文乱码五以分为以下两种情况。

<1>获取访问请求时乱码

String user=new String(request.getParameter("user").getBytes("iso-6659-1"),"UTF-6");

<2>获取表单时提交信息乱码

当获取表单提交的信息时,通过request对象获取的中文参数值为乱码,可以通过在page指令下方加上调用request对象的setCharacterEncoding()方法将编码设置为UTF-6或GBK解决。例如,在获取下方加上调用request对象的setCharacterEncoding()方法将编码为UTF-6或GBK解决。例如,在获取包括中文信息的"用户名"文本框(name属性为username)的值时,可以在获取全部表单信息前加上以下代码:

<%

    request.setCharacterEncoding("UTF-6");

%>

这样通过下面的代码获取表单的值时,就不会产生中文乱码

String user=request.getParamter("username");

注意:

u调用request对象的setCharacterEncoding()方法的语句时,一定要在页面中没有调用任何request对象的方法,否则该语句将不起作用.

获取客户端数据

通过request对象可以获取客户端的相关信息,如HTTP报头信息、客户信息提交方式、客户端主机IP地址及端口号等,在客户端获取用户请求相关信息的request对象常用方法如下图:



说明:

在Windows7操作系统下,由于IP地址采用IPv6,所以当客户端与服务端与服务器为同一计算机获取的IP地址不是IPv4的形式

应用request对象域

request对象可以视为一个域,可以应用setAttibute()方法在域范围内存放数据,其语法如下

request.setAttribute(String name,Object object);

(1)name:变量名,为String类型,转发后的页面获取数据时通过这个变量名来获取数据

(2)object:指需要在request范围内转递的数据,为Object

在将数据保存在request范围内的变量中,可以通过getAttribute()方法获取变量值。其语法格式如下:

request.getAttribute(String name);

name为变量名,在request范围内有效

实例:应用request对象域传递数据。

<1>创建index.jsp文件,在其中首先应用java的try...catch语句来捕获页面中的异常信息,如果没有异常,刚运行结果保存仜requesst范围内的变量中,并将错误提示信息保存在request范围内的变量中,然后应用<jsp:forward>动作标识将页面转发到deal.jsp页面。index.jsp文件代码如下:


<2>创建deal.jsp文件,在其中通过request对象的getAttribute()方法获取保存在request范围内的result变量并输出.



运行效果如下:



想要免费学习python全栈吗?图灵学院推出免费学习python全栈课程,想学习了解的请加群号:158184562


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值