欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

程序员文章站 2022-05-13 19:05:29
...

request对象

1、作用

主要用于处理客户端请求。
当浏览器请求一个网页,会发送大量信息到web服务器,这些信息不能直接读取,因为信息是作为HTTP请求头的一部分传输到服务器的,但是可以通过request对象提供的方法来获取客户端提交给服务器的信息。
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

2、常用方法

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

3、案例演示:编程实现用户注册功能

1、注册信息包括:用户名、密码、你从哪里知道本网站;
2、页面提交后会显示用户输入的数据。

(1)在web目录里创建用户注册页面register.jsp

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>显示注册信息</title>
</head>
<body>
    <%
        // 设置请求对象字符编码格式
        request.setCharacterEncoding("utf-8");
        // 读取用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 读取复选框选择项
        String[] channels = request.getParameterValues("channel");
        StringBuffer buffer = new StringBuffer();
        if (channels != null) {
            for (int i = 0; i < channels.length; i++) {
                buffer.append(channels[i] + " ");
            }
        }
    %>
    <h3>用户注册信息</h3>
    用户名:<%= username %><br/>
    密&nbsp;码:<%= password %><br/>
    渠&nbsp;道:<%= buffer.toString() %>
</body>
</html>
(2)在web目录里创建处理注册页面do_register.jsp

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

(3)启动tomcat服务器,查看运行效果

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
但是在这里还有问题,当你用户名,密码等都不填写的时候,也一样会注册成功,这明显是不对的
所以我们要进行一些修改
首先:给用户注册页面添加表单校验,要求用户名与密码非空。
设置表单元素的id属性是为了页面JavaScript代码能访问该元素,设置表单元素的name属性是为了表单的处理页面能够通过request.getParameter()方法获取到表单元素的值。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
</head>
<body>
<h3 style="text-align: center">用户注册</h3>
<form action="do_register.jsp" method="post">
    <table border="1" cellpadding="10" style="margin: 0px auto">
        <tr>
            <td align="center">用户名</td>
            <td><input id="username" type="text" name="username"></td>
        </tr>
        <tr>
            <td align="center">密&nbsp;码</td>
            <td><input id="password" type="password" name="password"></td>
        </tr>
        <tr>
            <td align="center">你从哪里知道本网站</td>
            <td>
                <input type="checkbox" name="channel" value="报刊">报刊
                <input type="checkbox" name="channel" value="网络">网络
                <input type="checkbox" name="channel" value="朋友推荐">朋友推荐
                <input type="checkbox" name="channel" value="电视">电视
            </td>
        </tr>
        <tr align="center">
            <td colspan="2">
                <input type="submit" value="提交" οnclick="return checkForm();">
                <input type="reset" value="重置">
            </td>
        </tr>
    </table>
</form>
<script type="text/javascript">
    function checkForm () {
        //获取用户名与密码元素
        var txtUsername = document.getElementById("username");
        var txtPassword = document.getElementById("password");
        //获取用户名与密码
        var username = txtUsername.value;
        var password = txtPassword.value;
        //用户名非空校验
        if (username == ""){
            alert("注意:用户名不能为空!")
            txtUsername.focus();
            return false;
        }//密码非空校验
        if (password == ""){
            alert("注意:密码不能为空!")
            txtPassword.focus();
            return false;
        }
        return true;
    }
</script>
</body>
</html>

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
重启服务器,查看运行效果:
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
其实,我们可以将表单校验脚本提取出来创建一个js文件,然后导入页面来使用。
(1)在web目录里创建js子目录,在里面创建check.js文件
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
(2)删除register.jsp页面里的

response对象

1、作用

主要用于处理服务器端向客户端返回的数据。

2、常用方法

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

3、案例演示:编程实现用户登录功能

输入用户名与密码,
正确则跳转到用户登录成功页面,否则跳转到用户登录失败页面。

(1)在web目录里创建登录页面login.jsp

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

(2)在web目录里创建登录处理页面do_login.jsp

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

(3)在web目录里创建登录成功页面success.jsp和登录失败页面failure.jsp

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

(4)启动tomcat服务器,查看运行效果

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

(5)修改登录处理页面,采用同一请求转发来实现页面跳转

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

(6)重启tomcat服务器,查看运行效果

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
同意请求转发的数据,在传输过程中采用的是ISO-5589-1编码,因此在的登陆成功页面接收到的中文就会乱码。
要想解决就只需要将接收到的字符串由ISO-5589-1编码转换成UTF-8字符编码即可。

(7)修改登录成功success.jsp与登录失败页面failure.jsp

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

4、转发与重定向的比较

(1)转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面间进行传递。转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址。
(2)重定向是在客户端发挥作用,通过请求新的地址实现页面转向,重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址。

五、out对象

1、作用

out 对象能把结果输出到网页上;
out主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。

2、常用方法

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

3、案例演示:打印输出九九表

(1)创建nine_nine_table.jsp页面

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
(2)启动tomcat服务器,查看运行效果
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

六、session 对象

1、作用

session对象表示目前个别用户的会话(session)状况。session对象实现javax.servlet.http.HttpSession接口,HttpSession接口所提供的方法。

2、常用方法

1、long getCreationTime():取得session产生的时间,单位是毫秒
2、String getId():取得session 的ID
3、long getLastAccessedTime():取得用户最后通过这个session送出请求的时间
4、long getMaxInactiveInterval():取得最大session不活动的时间,若超过这时间,session 将会失效
5、void invalidate():取消session 对象,并将对象存放的内容完全抛弃
6、boolean isNew():判断session 是否为"新"的
7、void setMaxInactiveInterval(int interval):设定最大session不活动的时间,若超过这时间,session 将会失效
8、void setAttribute():设置session对象的属性
9、void getAtrribute():获取session对象的属性

3、案例演示:页面跳转传递会话属性数据

(1)修改do_login.jsp页面,设置会话属性值

Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
(2)修改登录成功success.jsp页面
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
(3)启动tomcat服务器,查看
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象
同一个用户的session id在什么时候会发生变化?

(1)关闭浏览器之后同一个用户重新登录。

(2)浏览器没有关闭,但是后台服务重启了。

关闭浏览器,重启服务器,,同一个用户重新登录。session id值变了,创建时间和最后访问时间都变了:
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象

不关闭浏览器,再次重新登录,你会发现session id值不变,创建时间不变,但是最后访问时间变了:
Java web学习笔记--JSP隐形对象(二)--request、response、out、session对象