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");      //设置统一编码

	
request
请输入信息:
<%@ page contentType="text/html" pageEncoding="GBK"%>	request<%	//设置统一编码	request.setCharacterEncoding("GBK");	//接收表单提交的参数	String content = request.getParameter("info");%>

<%=content%>

注意:

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

2.接收请求参数

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

	
udbful
姓名:
兴趣:
唱歌   
跳舞   
游泳   
看书   
上网   
  
  
<%@ page contentType="text/html" pageEncoding="GBK"%>	include<%	request.setCharacterEncoding("GBK");	String id = request.getParameter("id");	String name = request.getParameter("username");	String inst[] = request.getParameterValues("inst");%>

编号:<%=id%>

姓名:<%=name%>

<% if(null != inst){%>

兴趣:<% for(int x=0; x
<%=inst[x]%>、<% }%>

<% }%>

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()方法传递参数,此方式一般用于表单动态变化的情况,如购物车网站程序开发中。

	
udbful
姓名:
性别:
男   
城市:
北京
上海
南宁
鹰潭
上饶   
兴趣:
唱歌   
跳舞   
游泳   
看书   
上网
自我介绍:
  
  
  
<%@ page contentType="text/html" pageEncoding="GBK"%><%@ page import="java.util.*"%>	include<%	request.setCharacterEncoding("GBK");%>	
    
              参数名称            参数内容        <% //接收全部请求参数据的名称 Enumeration enu = request.getParameterNames(); //依次取出每一个参数名称 while(enu.hasMoreElements()){ String paramName = (String) enu.nextElement();%>      <%=paramName%>        <% if(paramName.startsWith("**")){ String paramValue[] = request.getParameterValues(paramName); for(int x=0; x
<%=paramValue[x]%>、<% } }else{ String paramValue = request.getParameter(paramName);%> <%=paramValue%><% }%>     <% }%>        

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

    使用getHeaderNames()/getHeader()方法

4.角色验证(略)

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

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

例1

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

请求方式:<%=method%>

IP地址:<%=ip%>

访问路径:<%=path%>

上下文名称:<%=contextPath%>

例2

<%@page contentType="text/html" pageEncoding="GBK"%><%@page import="java.util.*"%>    include    
    
<%=request.getContextPath()%>/p_w_picpaths/udbful.jpg";

<imgsrc="<%=request.getContextPath()%>/p_w_picpaths/udbful.jpg";使用更加安全而不是用../

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