JAVA Web入门之JSP内置对象的解析及使用(超详细必看)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JAVA Web入门之JSP内置对象的解析及使用(超详细必看)

概述:


由于JSP使用java作为脚本语言 所以JSP具有强大的对象处理能力 并且可以动态创建web页面内容 但java语言在使用一个对象前  需要先实例化这个对象 为了简化开发 JSP提供了一些内置对象 用来实现JSP应用 在使用JSP内置对象时  不需要提前定义这些对象  直接使用即可


1:request


request对象封装了由客户端生成的HTTP请求的所有细节 主要包括HTTP头信息 系统信息 请求方式和请求参数等等 通过request对象提供的相应方法可以处理客户端浏览器提交的http请求中的各项参数


1.1:通过request对象的getParmeter()方法获取传递的参数值


语法如下

<%
request.getParmeter("id");
%>


实例如下 创建index.jsp文件 在该文件中添加一个连接到deal.jsp页面的超链接 并传递两个参数

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<html>
<head>
<meta  http-equiv="Content-Type"  content="text/html;charset=utf-8">
<title>使用request对象获取请求参数值</title>
</head>
<body>
<a href="deal.jsp? id=1&user">处理页</a>
</body>
</html>


创建deal.jsp文件

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
String id=request.getParameter("id");
String user=request.getParmeter("user");
String pwd=request.getParmeter("pwd");
%>
<html>
<head>
<meta http-equiv="Content-Type"  content="text/html;charset=utf-8">
<title>处理页</title>
</head>
<body>
id参数的值为:<%=id %><br>
user参数的值为:<%=user %><br>
pwd参数的值为:<%=pwd %> 
</body>
</html>



1.2:在作用域中管理属性


使用setAttribute()方法将数据保存到request范围内的变量中


使用getAttribute()方法可以读取request范围内的变量


实例如下


index1.jsp文件如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<html>
<head>
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
try{
  int money=100;
  int number=0;
  request.setAttribute("result",money/number);
}
catch(Exception e){
  request.setAttribute("result","很抱歉 页面产生错误");
}
%>
<jsp:forward page="deal1.jsp"/>
</body>
</html>


deal1.jsp文件如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>结果页</title>
</head>
<body>
<%String message=request.getAttribute("result").toString(); %>
<%=message %>
</body>
</html>


1.3:解决中文乱码


所有的request请求对象都是  iso-8859-1的 在此页面中采用的是utf-8的编码方式 只要将获取到的数据通过String的构造方法使用指定的编码类型重新构造一个string对象 就可以解决此问题


关键代码如下

<body>
name参数的值为<%=new String(request.getParmeter("name").getBytes("ISO-8859-1"),"UTF-8")%>
sex参数的值为<%=request.getPatmeter("sex")%>
</body>


1.4:获取客户端信息


通过request对象可以获取客户端的相关信息


部分方法实例如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<br>客户提交信息的方式<%=request.getMethod() %>
<br> 使用的协议<%=request.getProtocol() %>
<br> 获取发出请求字符串的客户端地址<%=request.getRequestURL() %>
<br> 获取提交数据的客户端IP地址<%=request.getRemoteAddr() %>
<br> 服务器端口号<%=request.getServerport() %>
<br> 获取服务器的名称<%=request.getServerName() %>
<br> 获取客户端所请求的脚本文件的文件路径<%=request.getServletPath() %>
<br> 获得HTTP协议定义的文件头信息host的值<%=request.getHeader("host") %>
</body>
</html>


2:response


response对象用于响应客户请求 向客户端输出信息 它封装了JSP产生的响应 并发送到客户端以响应客户端的请求 请求数据可以是各种数据类型 甚至是文件。


2.1:重定向网页


使用response对象提供的sendRedirect()对象可以将网页重定向到另一个页面 重定向操作支持将地址重定向到不同的主机上  这一点与转发不同 在客户端浏览器上将会得到跳转的地址 并重新发送请求链接 用户可以从浏览器的地址栏中看到跳转后的地址  进行重定向地址后 request中的属性全部失效  并且开始一个新的request对象 语法如下

response.sendRedirect(String path);


2.2:处理http文件头


禁用缓存


在默认的情况 浏览器会对显示的内容内容进行缓存 这样 当用户再次访问相关网页时,浏览器会判断网页是否有变化  如果没有变化则直接显示缓存中的内容 这样可以提高网页的显示速度 对于一些安全性较高网站 通常需要禁用缓存 语法如下

<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>


2.3:设置页面页面自动刷新


通过设置HTTP头还可以实现页面的自动刷新 语法如下

<%
response.setHeader("refresh","10");
%>


2.4:定时跳转网页


通过设置HTTP头还可以实现定时跳转网页的功能 语法如下

<%
response.setHeader("refresh","5; URL=login.jsp");
%>


2.5:设置输出缓冲


通常情况下 服务器要输出到客户端的内容不会直接写到客户端 而是写到一个输出缓冲区  语法如下

response.setBufferSize(32);


3: session


session在网络中被称为会话 由于HTTP协议是一种无状态协议 服务器并不保存相关的信息 所以session可以在应用程序的web页面进行跳转 保存用户的状态  使整个用户会话一直存在下去 部分方法语法如下

session.setAttribute(String name,Object obj)
session.getAttribute(String name)


3.1:从会话中移动指定的绑定对象


对于存储在session会话中的对象 如果想删除 可以使用session对象的removeAttribute方法

removeAttribute(String name)


3.2:销毁session

session.invalidate()


4:application


application对象用于保存所有应用程序中的公有数据 它在服务器启动时自动创建 在服务器停止时销毁 有点类似于系统的全局变量


应用getAttribute方法获取web.xml中定义的全部应用程序初始化参数名 并通过循环输出 代码如下

<%@ page import="java.util.*"%>
<%
Enumeration enema=application.getInitParameterNames();
while(enema.hasMoreElements()){
String name=(String)enema.nextElement();
String value=application.getInitParameter(name);
out.printIn(name+"");
out.printIn(value);
}
%>


5:out


out对象一个最基本的应用就是想客户端浏览器输出信息 out对象可以输出各种数据类型的数据.,还可以对缓冲区进行管理


分别有print方法和printIn()方法 都可以用于输出数据 区别不大

out.print()
out.printIn()


6:获取会话范围的pageContext对象


pageContext可以获取页面上下文


7:读取web.xml配置信息的config对象


config对象主要用于取得服务器的配置信息


8:应答或请求的page对象


page对象代表JSP本身 只有在JSP页面内才是合法的 page对象本质上是包含当前Servlet接口引用的变量 可以看作是this关键字的别名  效果如下

1666437276317.jpg

代码如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>page 对象各方法的引用</title>
</head>
<body>
<%! Object object;%>
<ul>
<li>getClass()方法的返回值<%=page.getClass()%></li>
<li>hashCode方法的返回值<%=page.hashCode() %></li>
<li>toString方法的返回值<%=page.toString() %></li>
<li>与object对象比较的返回值<%=page.equals(object) %></li>
<li>与this对象比较的返回值<%=page.equals(this) %></li>
</ul>
</body>
</html>



9:获取异常信息的exception


exception对象用来处理JSP文件执行时发生的所有错误和异常  只有在page指令中设置isErrorPage属性值为true的页面中才可以被使用


实例如下 使用exception对象获取异常信息


index4.jsp文件如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" errorPage="error.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>使用exception对象获取异常信息</title>
</head>
<body>
<%
request.setAttribute("price","12.5元");
float price=Float.parseFloat(request.getAttribute("price").toString());
%>
</body>
</html>


error.jsp文件如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta  http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>错误提示页</title>
</head>
<body>
错误提示为:<%=exception.getMessage() %>
</body>
</html>


创作不易 觉得有帮助请点赞关注收藏~~

相关文章
|
3月前
|
前端开发
【前端web入门第四天】02 CSS三大特性+背景图
本文详细介绍了CSS的三大特性:继承性、层叠性和优先级,并深入讲解了背景图的相关属性,包括背景属性、背景图的平铺方式、位置设定、缩放、固定以及复合属性。其中,继承性指子元素自动继承父元素的文字控制属性;层叠性指相同属性后定义覆盖前定义,不同属性可叠加;优先级涉及选择器权重,包括行内样式、ID选择器等。背景图部分则通过具体示例展示了如何设置背景图像的位置、大小及固定方式等。
259 91
|
3月前
|
前端开发
【前端web入门第四天】01 复合选择器与伪类选择器
本文档详细介绍了CSS中的复合选择器与伪类选择器。复合选择器包括后代选择器、子代选择器、并集选择器和交集选择器,能够更精确地定位和样式化元素。后代选择器用于选中某元素的所有后代,子代选择器仅选中直接子元素。并集选择器可为多个标签设置相同样式,而交集选择器则选中同时满足多个条件的元素。此外,还介绍了伪类选择器,如鼠标悬停效果和超链接的不同状态。
66 32
【前端web入门第四天】01 复合选择器与伪类选择器
|
2月前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
20天前
|
SQL XML 缓存
java中jsp详解!!!
JSP(Java Server Pages)是一种动态网页技术标准,允许在HTML页面中嵌入Java代码,实现网页逻辑与设计分离。JSP本质上是Servlet的简化,支持跨平台运行。JSP通过内置对象(如request、response、session等)和指令(如page、include、taglib)提供强大的功能,同时利用EL表达式和JSTL标签库简化页面开发。JSP的核心优势在于快速开发和维护Web应用。
35 0
|
3月前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
3月前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
68 28
|
2月前
|
网络协议 安全 JavaScript
Web实时通信的学习之旅:WebSocket入门指南及示例演示
Web实时通信的学习之旅:WebSocket入门指南及示例演示
149 0
|
2月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
44 0
|
3月前
|
前端开发 开发者 Python
从零到一:Python Web框架中的模板引擎入门与进阶
在Web开发的广阔世界里,模板引擎是连接后端逻辑与前端展示的重要桥梁。对于Python Web开发者而言,掌握模板引擎的使用是从零到一构建动态网站或应用不可或缺的一步。本文将带你从基础入门到进阶应用,深入了解Python Web框架中的模板引擎。
35 3
|
3月前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
61 19
下一篇
无影云桌面