加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

JSP网页验证码校验功能几个步骤和测验代码

发布时间:2023-06-08 11:18:51 所属栏目:语言 来源:
导读:本篇内容介绍了“Java之JSP的内置对象、域对象、request、response对象介绍”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况

本篇内容介绍了“Java之JSP的内置对象、域对象、request、response对象介绍”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

为了简化页面的开发过程,JSP 提供了一些内置对象。

JSP 内置对象又称为隐式对象,它们由容器实现和管理。

在 JSP 页面中,这些内置对象不需要预先声明,也不需要进行实例化,我们可以直接在脚本和表达式中使用。

注意:JSP 内置对象只能在脚本和表达式中使用,在声明中不能使用。

九大内置对象

JSP 中定义了 9 个内置对象。

它们分别是:request、response、session、application、out、pagecontext、config、page 和 exception,这些对象在客户端和服务器端交互的过程中分别完成不同的功能。

JSP 的内置对象主要有以下特点:

由 JSP 规范提供,不用编写者实例化;

通过 Web 容器实现和管理;

所有 JSP 页面均可使用;

只有在脚本元素的表达式或代码段中才能使用。

四大域对象

在 JSP 九大内置对象中,包含四个域对象。

它们分别是:pageContext(page 域对象)、request(request 域对象)、session(session 域对象)、以及 application(application 域对象)。

JSP 中的 4 个域对象都能通过以下 3 个方法,对属性进行保存、获取和移除操作。

void:setAttribute(String name, Object o) 将属性保存到域对象中

Object:getAttribute(String name) 获取域对象中的属性值

void:removeAttribute(String name) 将属性从域对象中移除

JSP 中的 4 个域对象的作用域各不相同,如下。

page:如果把属性保存到 pageContext 中,则它的作用域是 page。

该作用域中的属性只在当前 JSP 页面有效,跳转页面后失效。

request:如果把属性保存到 request 中,则它的作用域是 request。

该作用域中的属性只在当前请求范围内有效。服务器跳转页面后有效,例如jsp:forward;客户端跳转页面后无效,例如超链接。

session:如果把属性保存到 session 中,则它的作用域是 session。

该作用域中的属性只在当前会话范围内有效,网页关闭后失效。

application如果把属性保存到 application 中,则它的作用域是 application。

该作用域中的属性在整个应用范围内有效,服务器重启后失效。

JSP request对象

JSP request 是 javax.servlet.http.HttpServletRequest 的实例对象,主要用来获取客户端提交的数据。

request 对象提供了一系列方法,可以获取请求参数信息、表单数据、HTTP 头信息、cookie 和 HTTP 请求方法等。

示例

在 index.jsp 页面使用 getHeaderNames() 方法获取 HTTP 头信息,并遍历输出参数名称和对应值。

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

pageEncoding="UTF-8"%>

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

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<h2>获取HTTP请求头信息</h2>

<table width="100%" border="1" align="center">

<tr bgcolor="#949494">

<th>参数名称</th>

<th>参数值</th>

</tr>

<%

Enumeration headerNames = request.getHeaderNames();

while (headerNames.hasMoreElements()) {

String paramName = (String) headerNames.nextElement();

out.print("<tr><td>" + paramName + "</td>\n");

String paramValue = request.getHeader(paramName);

out.println("<td> " + paramValue + "</td></tr>\n");

}

%>

</table>

</body>

</html>

JSP response对象

JSP response 是 javax.servlet.http.HttpServletResponse 的实例对象。response 对象和 request 对象相对应,主要用于响应客户端请求,将处理信息返回到客户端。

response 对象的常用方法如下:

void addHeader(String name, String value):添加头信息(参数名称和对应值)

void addCookie(Cookie cookie):添加 cookie 信息

void sendRedirect(String location):实现页面重定向

void setStatus(int sc):实现页面的响应状态代码

void setContentType(String type):设置页面的 MIME 类型和字符集

void setCharacterEncoding(String charset):设定页面响应的编码类型

示例

下面在 login.jsp 新建表单,在 checkdetails.jsp 接收 login.jsp 提交的用户名和密码,与指定的用户名和密码相比,相同则登录成功,重定向到 success.jsp;反之登录失败,重定向到 failed.jsp。

login.jsp 代码如下:

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

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<h2>用户登录</h2>

<form action="checkdetails.jsp">

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

密码: <input type="text" name="pass" />

<input type="submit" value="登录" />

</form>

</body>

</html>

checkdetails.jsp 代码如下:

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

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<%

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

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

if (username.equals("biancheng") && password.equals("bianchengbang")) {

response.sendRedirect("success.jsp");

} else {

response.sendRedirect("failed.jsp");

}

%>

</body>

</html>

success.jsp 代码如下:

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

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<h2>登录成功!</h2>

</body>

</html>

failed.jsp 代码如下:

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

pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<h2>登录失败,用户名或密码错误!</h2>

</body>

</html>

登录页面(输入正确的用户名和密码)

登录成功页面

登录页面(输入错误的用户名)

登录失败页面

JSP out对象

JSP out 是 javax.servlet.jsp.JspWriter 的实例对象。

out 对象包含了很多 IO 流中的方法和特性,最常用的就是输出内容到 HTML 中。

out 对象的常用方法如下:

void print():将内容直接打印在 HTML 标签中

void println():类似于 print,唯一区别是 println 方法添加了换行符

void newLine():输出换行字符

void clear():清除页面缓冲区

boolean isAutoFlush():检查页面是否自动清除缓冲区

示例

out 对象的方法相对比较简单,一般情况下很少使用。

下面我们使用 out 对象的 print、println 和 newLine 方法将内容输出到 HTML 中。index.jsp 代码如下:

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

pageEncoding="UTF-8"%>

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

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<%

out.print("欢迎来到编程帮,");

out.newLine();

out.println("我们的网址是:");

out.print("www.biancheng.net");

%>

</body>

</html>

index.jsp运行结果

注意:这里的 println 与 newLine 换行指的是 HTML 代码换行,并不是页面显示的换行。页面显示换行需要在代码后面加标签。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!