该文章只针对初学者,使用的方式可能有些过时,针对于没有Servlet,EL表达式,JSTL的读者。
request内置对象是使用最多的一个对象,主要作用是接收客户端发送来的信息(处理请求的)。
request对象的常用方法
- public String getParameter(String name)//接收客户端发送来的请求参数
- public String[] getParameterValues(String name)//取得客户端发送来的一组请求参数
- public Enumeration getParameterNames()//取得全部的请求参数名称
- public String getRemoteAddr()//得到客户端的IP地址
- void setCharacterEncoding(String env) throws UnsupportedEncodingException//设置统一的请求编码
- public boolean isUserInRole(String role)//进行用户身份的验证
- public Httpsession getSession()//取得当前的Session对象
- public StringBuffer getRequestURL()//返回正在请求的路径
- public Enumeration getHeaderNames()//取得全部的头信息的名称
- public String getHeader(String name)//根据名称取得头信息的内容
- public String getMethod()//取得用户的提交方式
- public String getServletPath()//取得访问路径
- 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>
因为篇幅所致,有些问题没法一一列出,演示的部分没法编写清楚,大家见谅
====================================================================================================
自己也是最近才开始写文章,看到大家都分享自己的经验给别人。我也是受益者之一,做人不能只懂的索取而不去回馈,所以也将自己学习的知识分享给大家。我不能保证每个问题都讲的是对的,毕竟我也是个学习者。如果有地方写得不对或理解有误的,也希望大家给指出,我当非常感谢。编写过程也不易,也希望大家给个赞,关注下本人。这也能激励我继续分享。
====================================================================================================