JSP内置对象--request对象

本文主要介绍JSP中的request对象

request对象的主要方法:

setAttribute(String name,Object):设置名字为name的request的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例

getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

1、获取请求参数值

在一个请求中,可以通过使用"?"的方式来传递参数,然后通过request对象的getParameter()方法来获取参数的值

例如:

String id = request.getParameter("id");

实战一下:

在index.jsp中加入下面代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <a href="show.jsp?id=001">获取请求参数的值</a>
</body>
</html>

index.jsp

show.jsp中的代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    id的参数值为:
    <%=request.getParameter("id")%><br> name的参数值为:<%=request.getParameter("name")%>
</body>
</html>

show.jsp

运行结果:

id的参数值为: 001
name的参数值为:null

乱码问题:

如果将上面的001改为中文,会出现乱码。

实战一下:

index.jsp

<%@page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.net.URLEncoder" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <a href="show.jsp?name=<%=URLEncoder.encode("工学1号馆") %>&sex=<%=URLEncoder.encode("男") %>">解决中文乱码</a>
</body>
</html>

show.jsp

<body>
    name参数的值为:
    <%=new String(request.getParameter("name").getBytes("iso-8859-1"),"gbk")%>
    sex参数的值为:<%=request.getParameter("sex")%>
</body>

可以看到,name值正常显示,sex值出现乱码

2、获取Form表单的信息

对于文本元素、单选按钮、下拉列表框都可以使用getParamer()方法获取其具体值

对于复选框以及多选列表框被选定的内容就要使用getParameterValue()方法来获取,给方法返回一个字符串数组,通过循环遍历这个数组就可以得到用户选定的具体内容

实战一下:

index.jsp

该页面创建一个form表单

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<%@page import="java.net.URLEncoder" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>‘index.jsp‘</title>
  </head>

<body>
<form action="show.jsp" method="post">
    <ul style="list-style: none; line-height: 30px">
        <li>
            输入用户姓名:
            <input type="text" name="name" />
            <br />
        </li>
        <li>
            选择性别:
            <input name="sex" type="radio" value="男" />
            男
            <input name="sex" type="radio" value="女" />
            女
        </li>
        <li>
            选择密码提示问题:
            <select name="question">
                <option value="母亲生日">
                    母亲生日
                </option>
                <option value="宠物名称">
                    宠物名称
                </option>
                <option value="电脑配置">
                    电脑配置
                </option>
            </select>
        </li>
        <li>
            请输入问题答案:
            <input type="text" name="key" />
        </li>
        <li>
            请选择个人爱好:
            <div style="width: 400px">
                <input name="like" type="checkbox" value="唱歌跳舞" />
                唱歌跳舞
                <input name="like" type="checkbox" value="上网冲浪" />
                上网冲浪
                <input name="like" type="checkbox" value="户外登山" />
                户外登山
                <br />
                <input name="like" type="checkbox" value="体育运动" />
                体育运动
                <input name="like" type="checkbox" value="读书看报" />
                读书看报
                <input name="like" type="checkbox" value="欣赏电影" />
                欣赏电影
            </div>
        </li>
        <li>
            <input type="submit" value="提交" />
        </li>
    </ul>
</form>
</body>
</html>

index.jsp

show.jsp页面

<%@ page language="java" contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>‘show.jsp‘</title>
  </head>

  <body>
    <ul style="list-style:none; line-height:30px">
        <li>输入用户姓名:<%=new String(request.getParameter("name").getBytes("ISO8859_1"),"GBK") %></li>
          <li>选择性别:<%=new String(request.getParameter("sex").getBytes("ISO8859_1"),"GBK") %></li>
        <li>选择密码提示问题:<%=new String(request.getParameter("question").getBytes("ISO8859_1"),"GBK") %></li>
        <li>
            请输入问题答案:<%=new String(request.getParameter("key").getBytes("ISO8859_1"),"GBK") %>
        </li>
        <li>
            请选择个人爱好:
            <%
                String[] like =request.getParameterValues("like");
                for(int i =0;i<like.length;i++){
            %>
            <%= new String(like[i].getBytes("ISO8859_1"),"GBK")+"&nbsp;&nbsp;" %>
            <%
                }
            %>
        </li>
    </ul>
  </body>
</html>

show.jsp

3、获取请求客户端信息

<html>
  <head>
    <title>‘index.jsp‘</title>
  </head>
  <body>
    <div style="width: 600px">
    <ul style="line-height:24px">
          <li>客户使用的协议:<%=request.getProtocol() %>
          <li>客户端发送请求的方法:<%=request.getMethod() %>
          <li>客户端请求路径:<%=request.getContextPath() %>
          <li>客户机IP地址:<%=request.getRemoteAddr() %>
          <li>客户机名称:<%=request.getRemoteHost() %>
          <li>客户机请求端口号:<%=request.getRemotePort() %>
          <li>接爱客户信息的页面:<%=request.getServletPath() %>
          <li>获取报头中User-Agent值:<%=request.getHeader("user-agent") %>
          <li>获取报头中accept值:<%=request.getHeader("accept") %>
          <li>获取报头中Host值:<%=request.getHeader("host") %>
          <li>获取报头中accept-encoding值:<%=request.getHeader("accept-encoding") %>
          <li>获取URI:<%= request.getRequestURI() %>
          <li>获取URL:<%=request.getRequestURL() %>
      </ul>
    </div>
  </body>
</html>

运行结果如下:

  • 客户使用的协议:HTTP/1.1
  • 客户端发送请求的方法:GET
  • 客户端请求路径:/3.01
  • 客户机IP地址:0:0:0:0:0:0:0:1
  • 客户机名称:0:0:0:0:0:0:0:1
  • 客户机请求端口号:4777
  • 接爱客户信息的页面:/index.jsp
  • 获取报头中User-Agent值:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
  • 获取报头中accept值:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  • 获取报头中Host值:localhost:8080
  • 获取报头中accept-encoding值:gzip, deflate, sdch
  • 获取URI:/3.01/index.jsp
  • 获取URL:http://localhost:8080/3.01/index.jsp

4、cookie管理

cookie的getCookies()方法可以获取到所有的cookie对象集合

然后通过getName和getValue方法分别获取名称和值

index.jsp

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>‘index.jsp‘</title>
</head>
<body>
    <%
        String welcome = "第一次访问";
        String[] info = new String[] { "", "", "" };
        Cookie[] cook = request.getCookies();
        if (cook != null) {
            for (int i = 0; i < cook.length; i++) {
                if (cook[i].getName().equals("mrCookInfo")) {
                    info = cook[i].getValue().split("#");
                    welcome = ", 欢迎回来! ";
                }
            }
        }
    %>
    <%=info[0] + welcome%>
    <form action="show.jsp" method="post"></form>
    <ul>
        <li>姓&nbsp;&nbsp;&nbsp;&nbsp;名: <input name="name" type="text"
            value="<%=info[0]%>">
        <li>出生日期: <input name="birthday" type="text" value="<%=info[1]%>">
        <li>邮箱地址: <input name="mail" type="text" value="<%=info[2]%>">
        <li><input type="submit" value="提交">
    </ul>

</body>
</html>

index.jsp

show.jsp

<body>
    <%
        String name = request.getParameter("name");
        String birthday = request.getParameter("birthday");
        String mail = request.getParameter("mail");
        Cookie cook = new Cookie("mrCookInfo", name + "#" + birthday + "#"
                + mail);
        cook.setMaxAge(60 * 60 * 24 * 365);//设置cookie的有效期
        response.addCookie(cook);
    %>
    表单提交成功
    <ul>
        <li>姓名: <%=name%>
        <li>出生日期: <%=birthday%>
        <li>电子邮箱: <%=mail%>
        <li><a href="index.jsp">返回</a>
    </ul>
</body>

show.jsp

时间: 2024-10-26 07:42:36

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内置对象和el表达式

九个内置对象 *out jsp的输出流,用来向客户端响应 *page 当前jsp页面, 它的引用数据类型是Object,即真身中有如下代码 Object page=this; *config 它对应真身中的ServletConfig对象 *pageContext 一个顶九个,这个重要 *request HttpServletRequest *response HttpServletResponse *exception Throwable *session HttpSession *applic

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

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

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