jsp内置对象(隐式对象)--输入/输出对象

jsp隐式对象——输入/输出对象

1. 作用

​ 主要是控制页面输出和输入,访问与所有请求和响应相关的信息

2. request对象

在这里插入图片描述

a. 作用

​ 保存了用户提交的信息,通过调用该对象相应的方法可以获取用户提交的信息

b. 常用方法

1.String     getParameter(String name);
2.String     getParameterValues(String name);
3.Enumeration  getParameterNames();
4.setAttribute(String name,Object o);
5.Object getAttribute(String name);
6.Session  getSession(String name);
7.removeAttribute(String name);
8.setCharacterEncoding //设置请求数据的编码,只适用与post方法
9.getRequestDispatcher(String path);

c.访问请求参数

​ 获取客户端提交的信息,request对象代表来自客户端的请求

1. String getParameter("XX");  //得到name的参数值
2. String[] getParameterValues("XX");  //得到name所有的参数值
3. String[] getParameterNames();   //得到所有参数名字

​ 实例:getParameter(“XX”) 返回类型为String

/***requestInfo.jsp***/
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>输入数据界面</title>
</head>
<body>
<form action="requestInfo_deal.jsp">
    用户名:<input type="text" name="username"><br>
    密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password"><br>
    <input type="submit" value="提交">
    <input type="submit" value="取消">
</form>
</body>
</html>
/***requestInfo_deal.jsp***/
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>处理数据页面</title>
</head>
<body>
<h1>您刚才输入的内容是:</h1>
<%
    String name = request.getParameter("username");
    String password = request.getParameter("password");
    out.println("姓名:参数名称:"+name);
    out.println("密码:参数名称:"+password);
%>
</body>
</html>

​ 实例:getParameterValues(“XX”) 返回类型为String[]

/***requestProduct.jsp***/
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h1>您的爱好为:</h1>
<form action="requestDeal.jsp" method="post">
    <input type="checkbox" name="chekBox" value="Basketball">打篮球
    <input type="checkbox" name="chekBox" value="Football">踢足球
    <input type="checkbox" name="chekBox" value="Code">写代码
    <input type="checkbox" name="chekBox" value="Games">打游戏
    <br>
    <input type="submit" value="提交">
    <input type="reset" value="清除">
</form>
</body>
</html>
/***requestDeal.jsp***/
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
    <title>数据处理</title>
</head>
<body>
<%
    request.setCharacterEncoding("UTF-8");
    String[] chekBoxes = request.getParameterValues("chekBox");
    out.print("您的爱好有:");
    if (chekBoxes!=null){
        for (int i = 0;i<chekBoxes.length;i++){
            if (chekBoxes[i].equals("Basketball")){
                out.print("打篮球");
            }
            if (chekBoxes[i].equals("Football")){
                out.print("踢足球");
            }
            if (chekBoxes[i].equals("Code")){
                out.print("写代码");
            }
            if (chekBoxes[i].equals("Games")){
                out.print("打游戏");
            }
        }
    }
%>
</body>
</html>

​ 实例:getParameterNames() 返回类型为枚举类型Enumeration

/***requestInfo.jsp***/
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>输入数据界面</title>
</head>
<body>
<form action="requestDemo2.jsp">
    用户名:<input type="text" name="username"><br>
    密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password"><br>
    <input type="submit" value="提交">
    <input type="submit" value="取消">
</form>
</body>
</html>
/***requestDemo2.jsp***/
<%
    Enumeration enumeration = request.getParameterNames();//获取的是有name参数的value
    while (enumeration.hasMoreElements()){   //enumeration.hasMoreElements()获取Enumeration中参数的个数
        String pName = (String)enumeration.nextElement();
        String pValue = request.getParameter(pName);
        out.print("参数名称"+ pName+"<br>");
        out.print("参数内容"+ pValue+"<br>");
    }
%>
</body>
</html>

*若如页面出现中文乱码的情况,在request.getParameter()前面加上request.setCharacterEncoding(“UTF-8”);

d. 在作用域中管理属性

​ 在转发的时候,需要再转发的后面带一些数据带到转发页面处理,用

request.setAttribute("key",Object);//key为传值的键,用于获取参数值,为String类型.Object是需要保存到									request里面的

​ 在转发页面获取此数据用

request.getAttribute("key");

实例:

<body>
    <%
    	request.setAttribute("username","张三");
    	request.setAttribute("hobby","打篮球");
    %>
    <%
    	用户名:<%=request.getAttribute("username"); %>
        爱好:<%=request.getAttribute("hobby"); %>
    %>
</body>

e. getParameter()与getAttribute()的区别

  • getParameter返回值是String,获取客户端提交的表单中的值
  • getAttribute返回值是任意数据类型,获取服务器设置的数据

在这里插入图片描述

f. 获取Cookie

1. cookie的定义

​ Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间的传递。可以保存用户的登录信息

2. cookie获取
Cookie[] cookie = request.getCookies();

g. 获取客户信息的方法

在这里插入图片描述

3. response对象

a. 定义:

​ response对象处理jsp生成响应并发送给客户端。事务处理完之后response对象将被销毁

在这里插入图片描述

b. 常用方法

1. flushBuffer();  //强制把当前缓冲区的所有内容发送到客户端
2. getBufferSize(); //获取实际缓冲区的大小
3. getCharacterEncoding(); //获取响应的字符编码格式
4. setCharacterEncoding(); //设置响应的字符编码格式
5. getContentType();  //获取响应的内容MIME类型
6. setContentType();  //设置响应的内容MIME类型
7. getOutputStream();  //获取客户端的输入流
8. sendError();  //向客户端发送错误信息
9. setContentLength(); //设置响应内容的长度(字节数)

c. response重定向网页

1.作用

​ 将客户端请求重定向到一个不同的页面

response.sendRedirect(login.jsp?param=aaa&...);
2.response.sendRedirect()与 jsp:forward 的区别

​ a. response.sendRedirect():在客户端跳转,浏览器会根据重定向的url发起请求。request和response都将重新产生

​ b. jsp:forward:在服务器端跳转,浏览器url不变,request无法重新产生,所以可以用request来传递参数

在这里插入图片描述

​ c. 实例

/***sendRedirect.jsp***/
<body>
    <form mothod="post">
        输入用户名:
        <input type="text" name="name"/>
        <input type="submit" value="login"/>
    </form>
    <%
    	String name = request.getParameter("name");
    	if(name!=null){
            request.sendRedirect("redirect.jsp?sendname="+name);
            //?sendname=是给重定向后的页面传值
            out.print("重定向后的语句!");//用来区分jsp:forward
        }
    %>
</body>
/***redirect.jsp***/
<body>
    <%
    	String sendname = request.getParameter("sendname"); //接收重定向传过来的值
    %>
    用户名:<%=sendname %>
</body>

d. 设置HTTP响应报头

在这里插入图片描述
在这里插入图片描述

实例:

<%@ page contentType="text/html;charset=gb2312"%> 
<body>
    <%@include file="work.html"%>
    <%	
    	String str1 = request.getParameter("word");
     	String str2 = request.getParameter("excel");
    	if(str1!=null && str1.equals("word")){
            response.setContentType("application/msword;charset=gb2312");
        }
    
    	if(str2!=null && str2.equals("excel")){
            response.setContentType("application/x-msexcel;charset=gb2312");
        }
    %>
</body>
<html>
    <head>
        <title>response.setContentType的实例</title>
    </head>
    <body>
        <p>
            当前页面保存为哪一类的文档
        </p>
        <form method="get" name="form">
            <input type="submit" value="word" name="word"/>
            <input type="submit" value="excel" name="excel"/>
        </form>
    </body>
</html>

response.setHeader("refresh","time","url");//refresh为刷新,time为刷新的时间。url刷新后跳转的页面

e.设定状态显示码

在这里插入图片描述
在这里插入图片描述

f.保存客户端信息

1. 方法: addCookie(Cookie cookie);

2. 获取:request.getCookie()获取
3. 作用:保存用户的个性化信息,为下一次访问提供方便

4.out对象(JspWriter)

a. 定义

​ 1. 表示输出流,PrintWriter类型

​ 2. out对象是javax.servlet.jsp.PrintWriter的一个对象,能把信息发送给客户端的浏览器

​ 3. Write只能输出和字符相关的信息,print可以输出任何类型的信息

b. out对象的方法

在这里插入图片描述

c. out对象的特点

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super 琪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值