认识request:

request对象是HttpServletRequest接口的一个实例,HttpServletRequest的父接口ServletRequest

使用request接受参数

直接编写表单,进行表单的提交即可。

例子:

input.html

<FORM METHOD="POST" ACTION="input.jsp">输入信息<INPUT TYPE="text" NAME="info"><INPUT TYPE="submit" value="显示"></FORM>

input.jsp

<%@ page contentType="text/html;charset=GBK"%><%String str = request.getParameter("info") ;      %><h2><%=str%></h2>

此时返现页面中原来的数字,可以正确的显示,但是传递进来的参数文字,却无法正确的进行显示。在进行request接受参数的过程中会产生乱码。

分析乱码产生的原因:

所有的静态WEB的执行流程,是先从服务器上取得一个页面,之后通过此页面把内容进行提交,提交给服务器,之后服务器再将提交的内容返回给客户进行显示。

如果想解决乱码,直接将输入的内容变为服务器的默认编码--ISO8859-1即可,如果要想完成转码操作,需要将字符串内容重新变为byte数组。

例如:进行转码操作,修改input.jsp

<%@ page contentType="text/html;charset=GBK"%><%String str = request.getParameter("info") ;    //接受表单参数str = new String(str.getBytes("ISO8859-1"));  //转码%><h2><%=str%></h2>

发现程序中没有乱码了。

但是,发现以上的转码操作过于复杂,最好的做法是,设置一个统一的编码,之后就按此编码进行数据的接收。

如果想完成此操作,可以直接使用从ServletRequest接口继承而来的:setCharacterEncoding()方法进行统一的编码设置。

<%@ page contentType="text/html;charset=GBK"%><%request.setCharacterEncoding("GBK") ;        //按中文接收String str = request.getParameter("info") ;    //接受表单参数%><h2><%=str%></h2>

以上两种方式最长用的还是setCharacterEncoding

get与post的区别:

get:

会在地址栏中显示提交的内容

地址栏中最大能放4k-5k容量的文字,所以过大肯定无法提交

post:

不在地址栏中显示提交的内容

本身不收长度的限制,理论上是任意的长度,但是如果上传的内容过多,则会超过HTTP的超时时间的限制

URL重写

格式如下:

xxx.jsp?参数名称=参数值&参数名称=参数值&参数名称=参数值

隐藏域传递参数

在表单中有一种称为隐藏域的对象,此对象中的内容会随着表单一起提交到JSP页面上。

例如:修改input.html

<FORM METHOD="POST" ACTION="input.jsp">输入信息:<INPUT TYPE="text" NAME="info"><INPUT TYPE="hidden" name="var" value="hello "><INPUT TYPE="submit" value="显示"></FORM>

修改input.jsp

<%@ page contentType="text/html;charset=GBK"%><%request.setCharacterEncoding("GBK") ;            String str = request.getParameter("info") ;      String var = request.getParameter("var") ;        // str = new String(str.getBytes("ISO8859-1")) ;%><h2><%=str%></h2><h2><%=var%></h2>

可以发现隐藏域中的内容随着表单一起进行了提交。

接受多个同名参数

在表单控件中,存在复选框,如果现在使用复选框那么该如何接收呐?

范例:

request02.html

<form action="request02.jsp" method="post">姓名    <input type="text" name="name">爱好    <input type="checkbox" name="inst" value="唱歌">唱歌<input type="checkbox" name="inst" value="跳舞">跳舞<input type="checkbox" name="inst" value="游泳">游泳<input type="submit" value="显示"></form>

request02.jsp

<%@ page contentType="text/html;charset=GBK"%>
<%request.setCharacterEncoding("GBK") ;           String name = request.getParameter("name") ;    String[] inst = request.getParameterValues("inst") ;
%>
<h2>姓名<%=name%></h2>
<h2>兴趣
<%for(int i=0;i<inst.length;i++){
%><%=inst[i]%>
<%}
%>
</h2>

public String[] getParameterValues(String name) 此方法返回的是一个数组,表示接收同名的一组参数。

public java.util.Enumeration getParameterNames() 此方法可以取得所有表单提交参数的参数名称。

将上面两个方法同时使用,此时会发现当获取数组的参数名后,输出值是还是只有一个。

解决方法如下:

request04.html

<form action="request04.jsp" method="post">姓名    <input type="text" name="name">爱好    <input type="checkbox" name="**inst" value="唱歌">唱歌<input type="checkbox" name="**inst" value="跳舞">跳舞<input type="checkbox" name="**inst" value="游泳">游泳<input type="hidden" name="info" value="hello "><input type="submit" value="显示"></form>

request04.jsp

<%@ page contentType="text/html;charset=GBK"%><%@ page import="java.util.*"%>
<%request.setCharacterEncoding("GBK") ;            Enumeration enu = request.getParameterNames() ;
%>
<% while(enu.hasMoreElements()){String paramName = (String)enu.nextElement() ;
%><h2><%=paramName%>-->
<%if(paramName.startsWith("**")){        //在html的复选框中设置的name属性开头格式// 按数组接收String temp[] = request.getParameterValues(paramName) ;for(int i=0;i<temp.length;i++){
%><%=temp[i]%>
<%}}else{
%><%=request.getParameter(paramName)%>
<%}
%></h2>
<%}
%>

取得客户端的IP地址:

直接使用request对象的getRemoteAddr()方法就可以取得客户端的IP地址了。

JSP中request内置对象相关推荐

  1. jsp中的内置对象(9个)、作用

    jsp内置对象 定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象 客户 ...

  2. JSP中out内置对象的使用

    out内置对象的应用方法 方法名 含义 print() 输出显示信息 println() 换行输出显示信息 clear() 清除缓冲区里的内容 clearBuffer() 清除当前缓冲区的内容 flu ...

  3. jsp输出金字塔_实验二 JSP语法及内置对象.doc

    实验二 JSP语法及内置对象 燕山大学经济管理学院 JSP编程技术 实验指导书 经济管理学院电子商务系 2011年5月 实 验 说 明 <JSP编程技术>JSP(Java Server P ...

  4. 第4章 JSP语法、内置对象

    第4章 JSP语法.内置对象 关于Spring Boot+Vue全栈开发实战(三方面)前端 全栈 Spring Boot JSP概述 4.1.1 什么是JSP(Java Server Page) 4. ...

  5. 编写两个jsp页面inputString.jsp 和computer.jsp,用内置对象获取inputString.jsp页面提交的字符串。

    编写两个jsp页面inputString.jsp 和computer.jsp,用户可以并使用inputString.jsp提供的表单输入一个字符串,并提交给computer.jsp页面,该页面通过内置 ...

  6. javascript中的内置对象和数据结构

    文章目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array ...

  7. JSP的out内置对象及其常用方法

    JSP全名为Java Server Page,即Java服务器语言,是一种简化的Servlet语言,与ASP相似,用于动态网页的设计,下面我们就简单讲一下JSP的out内置对象以及一些常用的方法,ou ...

  8. 简单聊聊js中的内置对象

    文章目录 一.Map对象 1.常用属性和方法 2.示例 二.Set 1.属性和方法 2.示例 三.Date对象 1.创建Date对象 1.1.*new Date() ;* 2.2.*new Date( ...

  9. jsp是在html中添加什么作用域,JSP九个内置对象 四大作用域 动作指令

    九个内置对象: 1.application:javax.servlet.ServletContext的实例,代表JSP所属的web应用本身,常用的方法有getAttribute(). 2.config ...

  10. JSP动作和内置对象

    前言:          这节的内容很简单,简单总结下. 一.动作元素 动作元素:主要在请求处理阶段起作用,能够影响输出流和对象的创建.使用修改等,它按照XML语法进行书写. 动作元素分为两类: 一类 ...

最新文章

  1. oracle 10.2.0.4 rac emca,ORACLE 10G RAC升级10.2.0.4报错
  2. 0基础学python看什么书-零基础学python编程需要看什么书?
  3. java:volatile,instanceof,strictfp关键字
  4. public class UserServiceImpl extends ServiceImpl UserMapper, User implements UserService
  5. Biztalk 2013 R2 开发环境安装
  6. Monkeyrunner脚本的录制与回放
  7. Mesos超配:让集群利用率可以达到100%
  8. 服务器虚拟机系统镜像安装win7系统,在虚拟机中怎么安装Win7旗舰版系统
  9. IntelliJ IDEA设置字体样式
  10. 计算机网络英文题库(含答案) Chapter 1 Computer Networks and the Internet
  11. win10关机后cpu风扇还在转_win10电脑关机后风扇还在一直转怎么修复
  12. 工业相机的曝光时间和帧率的关系
  13. DB2遇到这样一个问题 。 ‘’Operation not allowed for reason code 7 on table DB2ADMIN.XXX. SQLSTATE=5701‘’
  14. 人脸识别签到实习第三天
  15. 【海思3798系列机顶盒NAS分区表修改软件】
  16. 利用python的matplotlib绘制分布图
  17. xcode 显示代码后缀名
  18. Ubuntu20.04版本系统时间如何设置成北京时区,我来教你【亲测有效】
  19. wps序列号 网页怎么保存为word?
  20. javascript汉字转换成拼音(部分)

热门文章

  1. linux 编译安装nginx,配置自启动脚本
  2. TYVJ1613 不和谐的公司
  3. Disable UTC in Ubuntu
  4. 404页面应该怎么做?
  5. 10.11 noip模拟试题
  6. Android 怎么使用Bitmap+Canvas 自适应屏幕
  7. 大数据学习资源(上)
  8. [翻译svg教程]Path元素 svg中最神奇的元素!
  9. 项目交换通知——PM(李忠)
  10. ACL'22 | 一种基于隐变量建模的并行文本生成模型