02_04 JSP内置对象之request

request属性

主要作用是接收客户端发送过来的请求信息,如参数等。

Request是javax.servlet.http.HttpServletRequest接口的实例化对象。常用方法有:


No


方法


类型


描述


1


Public  String getParameter(String name)


普通


取得客户端发来的请求参数内容


2


Public  String[] getParameter(String name)


普通


取得客户端发来的一组请求参数内容


3


Public  Enumeraton getParameterName()


普通


取得全部请求参数的名称


4


Pulbic  String getRemoteAddr()


普通


得到客户端IP地址


5


Void  setCharacterEncoding(String env)


普通


设置统一的请求编码


6


Public  ovid isUserInRole(Sting role)


普通


进行用户身份的验证


7


等等


普通

1.乱码解决

request.setCharacterEncoding("GBK");      //设置统一编码

<!doctype html>
<html>
<head>
	<meta charset="GBK">
	<title>request</title>
</head>
<body>
	<form action="request_demo01.jsp" method="post">
		请输入信息:<input type="text" name="info" >
		<input type="submit" value="提交" >
	</form>
</body>
</html>
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
	<title>request</title>
</head>
<body>
<%
	//设置统一编码
	request.setCharacterEncoding("GBK");
	//接收表单提交的参数
	String content = request.getParameter("info");
%>
<h2><%=content%></h2>
</body>
</html>

注意:

如果是编辑器不支持中文则运行时也是不会显示中文。如直接安装的sublime、DW都不是直接支持中文的。EditPlus编辑肯定支持中文,但写代码速度慢,比较适合初学者。

2.接收请求参数

2.1单一参数可使用getParameter()方法接收;而一组参数要使用getParameterValues()方法接收。若一组参数使用getParameter()接收只是接收和一个选中参数。

<!doctype html>
<html>
<head>
	<meta charset="GBK">
	<title>udbful</title>
</head>
<body>
	<form action="request_demo02.jsp" method="post">
		姓名:<input type="text" name="username"><br>
		兴趣:<input type="checkbox" name="inst" value="唱歌">唱歌
			  <input type="checkbox" name="inst" value="跳舞">跳舞
			  <input type="checkbox" name="inst" value="游泳">游泳
			  <input type="checkbox" name="inst" value="看书">看书
			  <input type="checkbox" name="inst" value="上网">上网
			  <input type="hidden" name="id" value="3">		<!--定义隐藏域-->
			  <br><input type="submit" value="提交">
			  <input type="reset" value="重置">
	</form>
</body>
</html>
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
	<title>include</title>
</head>
<body>
<%
	request.setCharacterEncoding("GBK");
	String id = request.getParameter("id");
	String name = request.getParameter("username");
	String inst[] = request.getParameterValues("inst");
%>

<h2>编号:<%=id%></h2>
<h2>姓名:<%=name%></h2>

<%
	if(null != inst){
%>
	<h3>兴趣:
<%
		for(int x=0; x<inst.length; x++){
%>
			<%=inst[x]%>、
<%
		}
%>
	</h3>
<%
	}
%>
</body>
</html>

2.2URL地址重写(通过地址栏传递参数)

动态页面地址?参数名称1=参数内容1&参数名称2=参数内容2&……

<%@page contentType="text/html" pageEncoding="GBK"%>

<html>

<head>

<title>include</title>

</head>

<body>

<%

request.setCharacterEncoding("GBK");

String param1 = request.getParameter("name");

String param2 =request.getParameter("password");

%>

<h2>用户名:<%=param1%></h2>

<h2>密码:<%=param2%></h2>

</body>

</html>

在浏览器中输出下面地址

http://localhost/newudbful/Chapter6/02request/request_demo03.jsp?name=zzg&password=123

2.3关于表单提交方式post与get

两者有个明显的区别在于,post提交表单,提交的内容不会显示在地址栏上;而get提交时,提交的内容会以地址重写方式显示在地址栏上。

一般情况表单提交方式用post比较多。

一般而言当提交表单数据较大时则是用post方式提交。

2.4使用getParameterNames()方法传递参数,此方式一般用于表单动态变化的情况,如购物车网站程序开发中。

<!doctype html>
<html>
<head>
	<meta charset="GBK">
	<title>udbful</title>
</head>
<body>
	<form action="request_demo04.jsp" method="post">
		姓名:<input type="text" name="username"><br>
		性别:<input type="radio" name="sex" value="男" CHECKED >男
			  <input type="radio" name="sex" value="女" >女<br>
		城市:<select name="city">
				<option value="北京">北京</option>
				<option value="上海">上海</option>
				<option value="南宁">南宁</option>
				<option value="鹰潭">鹰潭</option>
				<option value="上饶">上饶</option>
			  </select><br>
		兴趣:<input type="checkbox" name="**inst" value="唱歌">唱歌
			  <input type="checkbox" name="**inst" value="跳舞">跳舞
			  <input type="checkbox" name="**inst" value="游泳">游泳
			  <input type="checkbox" name="**inst" value="看书">看书
			  <input type="checkbox" name="**inst" value="上网">上网<br>
		自我介绍:<textarea cols="30" rows="3" name="note"></textarea><br>
			  <input type="hidden" name="id" value="1"><br>		<!--定义隐藏域-->
			  <input type="submit" value="提交">
			  <input type="reset" value="重置">
	</form>
</body>
</html>
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.util.*"%>
<html>
<head>
	<title>include</title>
</head>
<body>
<%
	request.setCharacterEncoding("GBK");
%>
	<center>
    <table border="1">
    	<tr>
        	<td>参数名称</td>
            <td>参数内容</td>
        </tr>
<%
	//接收全部请求参数据的名称
	Enumeration enu = request.getParameterNames();
	//依次取出每一个参数名称
	while(enu.hasMoreElements()){
		String paramName = (String) enu.nextElement();
%>
	<tr>
    	<td><%=paramName%></td>
        <td>
<%
		if(paramName.startsWith("**")){
			String paramValue[] = request.getParameterValues(paramName);
			for(int x=0; x<paramValue.length; x++){
%>
				<%=paramValue[x]%>、
<%
				}
		}else{
			String paramValue = request.getParameter(paramName);
%>
			<%=paramValue%>
<%

			}
%>
		</td>
    </tr>
<%
		}
%>
    </table>
    </center>
</body>
</html>

3.显示全部的头信息(略)

使用getHeaderNames()/getHeader()方法

4.角色验证(略)

使用isUserInRole()方法及配置文件

5.IP地址、路径信息、提交方式取得

例1

<%@page contentType="text/html" pageEncoding="GBK"%>
<%@page import="java.util.*"%>
<html>
<head>
    <title>include</title>
</head>
<body>
<%
    //取得提交方式
    String method = request.getMethod();
    //取得客户端IP地址
    String ip = request.getRemoteAddr();
    //取得访问路径
    String path = request.getServletPath();
    //取得上下文资源名称
    String contextPath =request.getContextPath();
%>
<h2>请求方式:<%=method%></h2>
<h2>IP地址:<%=ip%></h2>
<h2>访问路径:<%=path%></h2>
<h2>上下文名称:<%=contextPath%></h2>
</body>
</html>

例2

<%@page contentType="text/html" pageEncoding="GBK"%>
<%@page import="java.util.*"%>
<html>
<head>
    <title>include</title>
</head>
<body>
    <imgsrc="../images/udbful.jpg">
    <img src=\‘#\‘" /images/udbful.jpg";
</body>
</html>

<imgsrc=\‘#\‘" /images/udbful.jpg";使用更加安全而不是用../

以上内容参考JAVAWEB开发实战经典(名师讲坛)

时间: 2024-10-12 03:55:07

02_04 JSP内置对象之request的相关文章

JSP内置对象-request传来的数据中文乱码处理

JSP的内置对象request可以接收从客户端传来的参数信息,即用户提交的信息,但是当requesr获取客户端提交的汉字信息时,会出现乱码(仅限中文). 我们可以对该汉字字符进行重新编码,很简单,看代码: 我们先建一个客户端信息提交页面,提交中文: 现在我们新建一个服务器接收页面用来显示出客户端传来的参数信息: 可以看到我们用JSP内置对象request接收显示客户端传来的参数时出现了乱码 怎么处理,我们只需要把request传来的参数进行重新编码,就简单的一行代码: 现在再来看看结果: 现在就

Jsp — 内置对象request、response 配置servlet

1. 访问动态网页 使用URL实现页面访问: URL:统一资源定位符,即常说的网址: URL是唯一能识别Internet上具体的计算机.目录或文件夹的命名约定: 组成:第一部分:协议     第二部分:主机的IP地址,主机或端口号,是每台计算机的唯一标识:     第三部分:项目资源的地址,如目录和文件夹名等. 2. Jsp文件中的注释 ① 在jsp中写java脚本使用<% %>来括起来 ② 在jsp中如果要输出一个表达式使用<%= %> ③ 在jsp中如果要定义一个方法使用<

Jsp 内置对象

JSP内置对象是 Web 容器创建的一组对象 JSP内置对象的名称是 JSP 的保留字 JSP内置对象是可以直接在 JSP 页面使用的对象,无需使用 “new” 获取实例 -request 对象:用于处理客户端请求,主要方法如下: String getParameter(String name) 根据页面表单组件名称获取页面提交数据 String[ ] getParameterValues(String name) 获取一个页面表单组件对应多个值时的用户的请求数据 void setCharact

jsp 内置对象(五)

1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理.首先,将获取的 字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象 即可.如下: String textContent=request.getParameter("boy") byte b[]=textContent.get

JSP内置对象详解

jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request:是javax.servlet.httpservletRequest类型的对象,该对象是用户客户端的请求信息,主要用户接受客户端通过http协议传送到服务器的数据! (包括头部信息.系统信息.请求方式以及请求信息参数),jsp内置对象Web容器所创建的一组对象! 生命周期:jsp发出请求一个requ

JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式

最近在学习JSP相关基础知识,我们都知道JSP当中存在一组不使用new关键字就可以在脚本和表达式中使用的对象,在Web开发中经常使用.为了能更好的理解这些对象,在此对JSP内置对象作一些归纳. 目录: JSP内置对象——九大内置对象简介与四种作用域范围以及Web程序的请求和响应模式 JSP内置对象——out(待更新) JSP内置对象——request/response(待更新) JSP内置对象——session(待更新) JSP内置对象——application(待更新) JSP内置对象——其他

JSP学习笔记(3)-JSP内置对象

有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这些对象就是JSP的内置对象.  JSP常用的内置对象有request,response,session,application,out.  其中两个重要的request和response对象提供了服务器和浏览器通信方法的控制. 1.request对象(请求对象) 作用:封装用户提交的信息,获取封装信息等 1.1.获取用户提交信息 request.getParameter(String s);//获取提交信息    如果该方法获

JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次都要先创建这些对象,然后再去使用它们,这样就显得十分繁琐了,为了方便使用者,Sun公司在开发JSP的时候,把一些对象设置为内置对象,开发者在JSP页面编程的时候不必声明这些对象就能直接使用,这就是JSP的内置对象. 那么JSP对象有哪些呢? JSP内置对象          对应的类型   备注 R

Jsp内置对象的简单说明

声明 实习森的理解层次,希望有错大家一起纠正 本文主要信息来自网友共享的一个JSPAPI,不是特别全,只是对jsp内置对象进行了简单的介绍,这里我总结了一下 正文 Jsp主要内置了9个对象,分别为:Application.Exception.Out.PageContext.Page.Request.Response.Session以及Config,详细如下: Application对象 基础介绍: Application对象实现了不同用户之间的数据共享,声明周期最长了,服务器启动的时候,Appl