(五)JSP教程——response对象

        response对象主要用于动态响应客户端请求(request),然后将JSP处理后的结果返回给客户端浏览器。JSP容器根据客户端的请求建立一个默认的response对象,然后使用response对象动态地创建Web页面、改变HTTP标头、返回服务器端地状态码等信息。

        request对象用于得到用户提交的信息,而response对象与request对象作用正好相反,是向用户发送信息。例如,客户端用户通过表单向服务器提交信息,request对象获取用户信息,然后接收信息并进行处理,并将结果用response对象返回给用户的浏览器。但是,response对象在JSP代码中使用较少。

        下面通过具体的实例来说明response对象如何使用,使读者加深理解并做到触类旁通。首先,我们使用response对象来设置HTTP的一个重要头信息:刷新,实例功能是每隔一秒对当前页面进行一次刷新,实现时钟的作用,其代码如下。

        创建一个Web应用后,创建一个refresh.jsp页面。

<%@ page import="java.util.Date" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>刷新</title>

</head>

<body>

<%

    response.setHeader("refresh", "1");

    out.print(new Date().toLocaleString());

%>

</body>

</html>

        启动应用后,在浏览器地址栏中输入URL:http://localhost:8080/s001/refresh.jsp

        界面显示如下图所示

        当我们要向客户端login.jsp文件中输入用户名和密码时,输入正确则跳转到wel.jsp页面,否则重新转到login.jsp页面。这种情况下,response对象也是一个很好的工具。

        首先创建一个login.jsp页面,页面的代码内容如下。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>Refresh实例</title>

</head>

<body bgcolor="pink">

<center>

<form action="loginCL.jsp" method="post">

用户名: <input type="text" name="username"/> <br> <br>

密 码: <input type="password" name="password"/> <br> <br>

<input type="submit" value="提交"/>

</form>

</center>

</body>

</html>

        接着创建欢迎页面,欢迎页面的代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>欢迎界面</title>

</head>

<body>

恭喜您登录成功!<br>

<a href="login.jsp">返回登录</a>

</body>

</html>

        然后创建loginCL.jsp处理页面,代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>response</title>

</head>

<body>

<%

//接收用户名和密码,完成对用户的验证

String u=request.getParameter("username");

String p=request.getParameter("password");

//简单验证用户名称和密码是否正确

if(u.equals("Jerry")&&p.equals("123")){

    //合法,跳转到wel.jsp

response.sendRedirect("wel.jsp");

}

else{

    //不合法,跳转到login.jsp页面

response.sendRedirect("login.jsp");

}

%>

</body>

</html>

        完成上述代码后启动该应用,在地址栏中输入地址:http://localhost:8080/s001/login.jsp

        打开后的界面如下图所示

        在用户名输入框中输入Jerry,密码中输入123后点击提交按钮,界面显示如下图所示

        然后输入错误的用户名和密码,则界面显示如下图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3021892.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

WP All Import Pro插件下载 - 一键导入,无限可能

在当今快节奏的数字时代&#xff0c;网站内容的更新和管理是每个网站管理员和开发者的日常工作。但是&#xff0c;传统的手动更新方法不仅耗时&#xff0c;而且容易出错。现在&#xff0c;有了WP All Import Pro&#xff0c;这一切都将改变。 WP All Import Pro 是一款专为Wor…

金融人需要什么机遇?中国人民大学与加拿大女王大学金融硕士能为你带来什么?

金融&#xff0c;作为现代经济的核心&#xff0c;为无数有志之士提供了施展才华的舞台。在这个日新月异、风云变幻的时代&#xff0c;金融人需要的机遇既是挑战也是机遇。中国人民大学与加拿大女王大学合作举办的金融硕士项目&#xff0c;正是为金融人量身定制的一次宝贵机遇。…

人工智能实验:人脸检测

一、实现目的&#xff1a; 了解人脸检测的主要方法&#xff1b;了解 detectMultiScale 函数的功能及用法&#xff1b;掌握使用 OpenCV 提供的分类器和检测器进行人脸检测的方法。 二、实验设备&#xff1a; 计算机一台&#xff1b;视觉实验软件环境及资源一套&#xff08;vi…

springcloud报错:Failed to start bean‘webServerStartStop‘

如果你正在使用nacos进行服务注册&#xff0c;然后报一下错误&#xff1a; 那就说明的nacos没有打开&#xff0c;所以找到你的下载nacos的文件夹 好了&#xff0c;错误完美解决~

【bash】笔记

在Shell脚本中&#xff0c;-e 是一个测试运算符&#xff0c;用于检查给定的文件或目录是否存在。 | 是通道符&#xff0c;会把前面的输出给后面作为输入。 sudo tee命令在这里用于同时更新文件和在终端显示输出&#xff08;尽管 > /dev/null 将标准输出重定向到黑洞&…

机器学习:基于TF-IDF算法、决策树,使用NLTK库对亚马逊美食评论进行情绪分析

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

react状态管理之state

第三章 - 状态管理 随着你的应用不断变大&#xff0c;更有意识的去关注应用状态如何组织&#xff0c;以及数据如何在组件之间流动会对你很有帮助。冗余或重复的状态往往是缺陷的根源。在本节中&#xff0c;你将学习如何组织好状态&#xff0c;如何保持状态更新逻辑的可维护性&…

学习软考----数据库系统工程师22

关系运算 基本的关系代数运算 拓展的关系运算 除&#xff1a;需要S连接中属性为C和D的两个元组都与R连接一样&#xff0c;且在R连接中对应的另外的元素完全一致 总结

C++语法|如何写出高效的C++代码(一)|对象使用过程中背后调用了哪些方法?

文章目录 再探拷贝构造函数和重载复制运算符实例化新对象和赋值操作强转为类类型指针和引用时临时对象的生成析构过程 考考你问题答案 再探拷贝构造函数和重载复制运算符 实例化新对象和赋值操作 首先我们写一个类&#xff0c;实现它的拷贝构造并重载赋值运算符。 class Tes…

scala速通(精简版)

1.变量和常量 var name [:VariableType] value // variable val name [:ConstantType] value // constant1.声明变量时&#xff0c;类型可以省略 2.类型定义后就不能修改言 3.变量声明必须有初始值 4.变量&#xff0c;常量分别用var&#xff0c;val声明修饰 2.标识符命名…

C++学习————第十天(string的基本使用)

1、string 对象类的常见构造 (constructor)函数名称 功能说明&#xff1a; string() &#xff08;重点&#xff09; 构造空的string类对象&#xff0c;即空字符串 string(const char* s) &#xff08;重点&#xff09;…

算法学习006-瓷砖总数 广度优先算法BFS 中小学算法思维学习 信奥算法解析 c++实现

目录 C瓷砖总数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C瓷砖总数 一、题目要求 1、编程实现 在一个长方形房间&#xff0c;铺着不同颜色的的瓷砖&#xff0c;有红色和黑色&#…

分割模型Maskformer系列

maskformer&#xff1a;Per-Pixel Classification is Not All You Need for Semantic Segmentation 论文地址&#xff1a;https://arxiv.org/pdf/2107.06278 1.概述 传统的语义分割方法通常采用逐像素分类&#xff08;per-pixel classification&#xff09;&#xff0c;而实…

【C++】滑动窗口:最大连续1的个数

1.题目 2.算法思路 其实在做这道题的时候并不需要真的把0翻转成1&#xff0c;只需要找到最长的子数组且该子数组中0的个数不大于K&#xff0c;就可以了&#xff01; 当然我们首先想到的是暴力穷举法&#xff1a; 找到所有符合题意的子数组&#xff0c;跳出最长的那个就可以了…

词袋法TFIDF

Tf-idf⽂本特征提取 TF-IDF的主要思想是&#xff1a;如果某个词或短语在⼀篇⽂章中出现的概率⾼&#xff0c;并且在其他⽂章中很少出现&#xff0c;则认为此词或者短语具有很好的类别区分能⼒&#xff0c;适合⽤来分类。TF-IDF作⽤&#xff1a;⽤以评估⼀字词对于⼀个⽂件集或…

iphone忘记锁屏密码怎么解锁?这些解锁方法你必须知道!

在使用iPhone的过程中经常会遇到很多问题&#xff0c;比如忘记了iPhone的锁屏密码。面对这样的情况&#xff0c;许多用户可能会感到手足无措。别担心&#xff0c;本文将为您详细介绍iPhone忘记锁屏密码的解锁方法&#xff0c;让您轻松解决这一烦恼。 一、使用iTunes备份恢复 如…

如何为数据库中新建用户B复制用户A的表和视图权限?

故事背景&#xff1a; 公司使用的是SQL Server数据库&#xff0c;经常会碰到一种情况&#xff0c;需要为新入职的员工赋予同组内其他同事的权限。 常用方法: 1) 为同一组申请创建统一的Security Group(安全组)&#xff0c;为创建的组分配相关表和视图的访问权限。不管员工入职…

Python从0到POC编写--SQL注入

SQL注入POC编写。 环境&#xff1a; win10 &#xff0c;phpStudy &#xff0c;python3.7 &#xff0c;sqli-labs 虚拟域名&#xff1a; www.sql.com 简单的POC&#xff1a; 说起来也简单&#xff0c; 就是请求–>响应&#xff0c; 然后再判断返回信息是否存在注入。 本…

【3dmax笔记】026:挤出和壳修改器的使用

文章目录 一、修改器二、挤出三、壳 一、修改器 3ds Max中的修改器是一种强大的工具&#xff0c;用于创建和修改复杂的几何形状。这些修改器可以改变对象的形状、大小、方向和位置&#xff0c;以生成所需的效果。以下是一些常见的3ds Max修改器及其功能&#xff1a; 挤出修改…

全双工音频对讲模块-支持空中升级、多级无线中继

SA618F30是一款高集成的大功率全双工无线音频模块&#xff0c;发射功率高达32dBm。该音频模块简化接口&#xff0c;只需外接音频功放或麦克风即可作为一个小型对讲机&#xff0c;方便快捷嵌入到各类手持设备中。支持多级无线中继&#xff0c;支持OTA空中升级。 SA618F30配备1W…