9--request内置对象的使用

该文章只针对初学者,使用的方式可能有些过时,针对于没有Servlet,EL表达式,JSTL的读者。
request内置对象是使用最多的一个对象,主要作用是接收客户端发送来的信息(处理请求的)

request对象的常用方法

  1. public String getParameter(String name)//接收客户端发送来的请求参数
  2. public String[] getParameterValues(String name)//取得客户端发送来的一组请求参数
  3. public Enumeration getParameterNames()//取得全部的请求参数名称
  4. public String getRemoteAddr()//得到客户端的IP地址
  5. void setCharacterEncoding(String env) throws UnsupportedEncodingException//设置统一的请求编码
  6. public boolean isUserInRole(String role)//进行用户身份的验证
  7. public Httpsession getSession()//取得当前的Session对象
  8. public StringBuffer getRequestURL()//返回正在请求的路径
  9. public Enumeration getHeaderNames()//取得全部的头信息的名称
  10. public String getHeader(String name)//根据名称取得头信息的内容
  11. public String getMethod()//取得用户的提交方式
  12. public String getServletPath()//取得访问路径
  13. public String getContextPath()//取得上下文资源

实例1:编写提交表单:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="demo02.jsp" method="post">
		username:<input type="text" name="username"><br>
		age:<input type="text" name="age"><br>
		love:<input type="checkbox" name="love" value="足球">足球
		<input type="checkbox" name="love" value="排球">排球
		<input type="checkbox" name="love" value="乒乓球">乒乓球<br>
		<input type="submit" value="提交">
	</form>
</body>
</html>

在这里插入图片描述

实例2:接收表单提交的数据

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		//设置请求字符编码集
		request.setCharacterEncoding("UTF-8");
		//根据提交参数名获取提交参数的值
		String username=request.getParameter("username");
		String age=request.getParameter("age");
		//接收多个提交数据
		String loves[]=request.getParameterValues("love");
		//获取所有的提交参数名。
		Enumeration<String> e=request.getParameterNames();
		//获取客户端的IP地址
		String remoteAddr=request.getRemoteAddr();
		//获取session对象
		HttpSession session1=request.getSession();
	%>
	姓名:<%=username %><br>
	年龄:<%=age %><br>
	爱好:<%
	    	for(int i=0;i<loves.length;i++){
	    		%>
	    		<%=loves[i] %><%
	    	}
	    %><br>
	 所有提交参数名:<br>
	  <%
	  	while(e.hasMoreElements()){
	  		String name=e.nextElement();
	  		%>
	  		<%=name %><%
	  	}
	  %>
	  <br>
	  address:<%=remoteAddr %>
</body>
</html>

运行结果:
姓名:光头强
年龄:18
爱好: 足球、 乒乓球、
所有提交参数名:
username、 age、 love、
address:0:0:0:0:0:0:0:1
实例3:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
	<%
		//返回正在请求的路径
		String uri=request.getRequestURI();
	    //返回正在请求的路径
	    StringBuffer url=request.getRequestURL();
	    
	%>
	uri:<%=uri %><br>
	url:<%=url %><br>
</body>
</html>

运行结果:(结果根据自己的项目有所不同)
uri:/jsp04/demo03.jsp
url:http://localhost:8080/jsp04/demo03.jsp
实例4:获取头信息

<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%	
		//获取所有的头信息名称
		Enumeration  headnames =request.getHeaderNames();
	    while(headnames.hasMoreElements()){
	    	String name=(String)headnames.nextElement();
	    	//根据头名称获取头信息
	    	String value=request.getHeader(name);
	    	%>
	    		<%=name %>----<%=value %><br>
	    	<%
	    }
	%>
	
</body>
</html>

运行结果:(结果可能会因为浏览器原因有所不同)
accept----image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap, /
accept-language----zh-CN
cache-control----no-cache
ua-cpu----AMD64
accept-encoding----gzip, deflate
user-agent----Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; LCTE)
host----localhost:8080
connection----Keep-Alive
cookie----JSESSIONID=5BD99606CABA02E88A9B0A7CA6CBB317
实例5:获取提交方式

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		//获取提交方式: get/post
		/*
		  地址栏提交,a标签,<form>表单的method="get"等提交返回get
		<form>表单的method="post"等提交返回post
		get提交方式:数据量较小,不安全,不能提交二进制
		post提交方式,理论上可以无限大。可以提交二进制
		*/
		String method=request.getMethod();
	%>
	method:<%=method %>
</body>
</html>

因为篇幅所致,有些问题没法一一列出,演示的部分没法编写清楚,大家见谅
====================================================================================================
  自己也是最近才开始写文章,看到大家都分享自己的经验给别人。我也是受益者之一,做人不能只懂的索取而不去回馈,所以也将自己学习的知识分享给大家。我不能保证每个问题都讲的是对的,毕竟我也是个学习者。如果有地方写得不对或理解有误的,也希望大家给指出,我当非常感谢。编写过程也不易,也希望大家给个赞,关注下本人。这也能激励我继续分享。
  ====================================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值