JSP中request内置对象
认识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内置对象相关推荐
- jsp中的内置对象(9个)、作用
jsp内置对象 定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象 客户 ...
- JSP中out内置对象的使用
out内置对象的应用方法 方法名 含义 print() 输出显示信息 println() 换行输出显示信息 clear() 清除缓冲区里的内容 clearBuffer() 清除当前缓冲区的内容 flu ...
- jsp输出金字塔_实验二 JSP语法及内置对象.doc
实验二 JSP语法及内置对象 燕山大学经济管理学院 JSP编程技术 实验指导书 经济管理学院电子商务系 2011年5月 实 验 说 明 <JSP编程技术>JSP(Java Server P ...
- 第4章 JSP语法、内置对象
第4章 JSP语法.内置对象 关于Spring Boot+Vue全栈开发实战(三方面)前端 全栈 Spring Boot JSP概述 4.1.1 什么是JSP(Java Server Page) 4. ...
- 编写两个jsp页面inputString.jsp 和computer.jsp,用内置对象获取inputString.jsp页面提交的字符串。
编写两个jsp页面inputString.jsp 和computer.jsp,用户可以并使用inputString.jsp提供的表单输入一个字符串,并提交给computer.jsp页面,该页面通过内置 ...
- javascript中的内置对象和数据结构
文章目录 简介 基础类型 undefined Boolean和Boolean对象 Number和BigInt String Symbol null Object Function Date Array ...
- JSP的out内置对象及其常用方法
JSP全名为Java Server Page,即Java服务器语言,是一种简化的Servlet语言,与ASP相似,用于动态网页的设计,下面我们就简单讲一下JSP的out内置对象以及一些常用的方法,ou ...
- 简单聊聊js中的内置对象
文章目录 一.Map对象 1.常用属性和方法 2.示例 二.Set 1.属性和方法 2.示例 三.Date对象 1.创建Date对象 1.1.*new Date() ;* 2.2.*new Date( ...
- jsp是在html中添加什么作用域,JSP九个内置对象 四大作用域 动作指令
九个内置对象: 1.application:javax.servlet.ServletContext的实例,代表JSP所属的web应用本身,常用的方法有getAttribute(). 2.config ...
- JSP动作和内置对象
前言: 这节的内容很简单,简单总结下. 一.动作元素 动作元素:主要在请求处理阶段起作用,能够影响输出流和对象的创建.使用修改等,它按照XML语法进行书写. 动作元素分为两类: 一类 ...
最新文章
- oracle 10.2.0.4 rac emca,ORACLE 10G RAC升级10.2.0.4报错
- 0基础学python看什么书-零基础学python编程需要看什么书?
- java:volatile,instanceof,strictfp关键字
- public class UserServiceImpl extends ServiceImpl UserMapper, User implements UserService
- Biztalk 2013 R2 开发环境安装
- Monkeyrunner脚本的录制与回放
- Mesos超配:让集群利用率可以达到100%
- 服务器虚拟机系统镜像安装win7系统,在虚拟机中怎么安装Win7旗舰版系统
- IntelliJ IDEA设置字体样式
- 计算机网络英文题库(含答案) Chapter 1 Computer Networks and the Internet
- win10关机后cpu风扇还在转_win10电脑关机后风扇还在一直转怎么修复
- 工业相机的曝光时间和帧率的关系
- DB2遇到这样一个问题 。 ‘’Operation not allowed for reason code 7 on table DB2ADMIN.XXX. SQLSTATE=5701‘’
- 人脸识别签到实习第三天
- 【海思3798系列机顶盒NAS分区表修改软件】
- 利用python的matplotlib绘制分布图
- xcode 显示代码后缀名
- Ubuntu20.04版本系统时间如何设置成北京时区,我来教你【亲测有效】
- wps序列号 网页怎么保存为word?
- javascript汉字转换成拼音(部分)