百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

从asp.net到jsp:3分钟看透Jsp&Servlet

suiw9 2025-01-23 20:37 24 浏览 0 评论

零:JSP是谁?

话说故事的开头是这样的:JSP全名为Java Server Pages,其根本是一个简化的Servlet设计;后来的详细事情有请各位自便。美女→找→谷哥 or 帅哥→找→度娘

插播:如果还想精简继续提速;只需在目录导航中找点击实心五角星★标记的3个部分(内置对象和作用域、JavaBean、EL表达式)

一、Jsp凉菜

1、page 指令

Language : 用来定义要使用的脚本语言;在这里java是惟一默认合法的值,记住就行。

contentType:定义JSP字符的编码和页面响应的MIME 类型;

pageEncoding:Jsp页面的字符编码;

import:定义此JSP网页要使用哪些Java API或类;

示例:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>

2、scriptlet 标签

通过scriptlet标签我们可以在Jsp里嵌入Java代码,主要以下三种:

① <%! %> 可以在里面定义全局变量、方法、类;

② <% %> 可以在里面定义局部变量、编写语句;

③ <%= %> 可以在里面输出一个变量或一个具体内容;

3、Jsp 注释

主要以下4种方式:

① <!-- Html 注释客户端可见 -->

② <%-- Jsp 注释客户端不可见 --%>

③ // java 单行注释

④ /* java 多行注释 */

4、Jsp 包含指令

① <%@ include file=”要包含的文件”%> 静态包含先包含,后编译处理;② <jsp:include page=”要包含的文件”> 动态包含先编译处理,后包含;

实际开发中一般都采用第二种动态包含的方式。

5、Jsp 跳转指令

<jsp:forward>
<jsp:param value=”” name=””>
</jsp:forward>

服务器内部跳转,可带参数。

二、★JSP内置对象和作用域

2.1 九大内置对象

在Jsp开发中,Jsp提供了9个内置对象,这些内置对象将由容器为用户进行实例化,用户直接使用即可。分别是:pageContext,request,response,session,application,config,out,page,exception;常用的是前面5个,需要熟练掌握;

Response内置对象和request 内置对象是相对应的,response 内置对象用于响应客户请求,向客户端输出信息;

javax.servlet.HttpServletResponse 接口

① 自动刷新应用;

② 页面重定向应用:客户端跳转;

③ 操作cookie应用:post/get方法比较:post放数据包里,get放url后面;get数据量小,而且不安全;

④ cookie和session 的比较:cookie信息存在客户端,session信息存在服务器;

pageContext内置对象是一个比较特殊的对象。它相当于页面中所有对象功能的集合,即使用它可以访问到本页面中所有对象。pageContext 内置对象由Jsp 容器创建并初始化,pageContext 对象提供了对JSP 页面所有对象及控件的访问。

Config内置对象是JSP 页面通过JSP 容器进行初始化时被传递的对象。javax.servlet.ServletConfig 。在Servlet初始化的时候,JPS 引擎通过config 向它传递信息。这种信息可以是属性名和属性值匹配的参数,也可以是通过ServletContext 对象传递的服务器的有关信息;

Out内置对象主要用来向客户端输出各种类型的数据,同时还可以管理应用服务器上的输出缓冲区。所以out 内置对象的方法是向客户端输出数据和管理缓冲区; 底层javax.servlet.jsp.JspWriter 抽象类。

Exception内置对象用来处理JSP 文件在执行时发生的所有异常,它是java.lang.Throwable 类的一个对象。

2.2 四大作用域

此外,在Jsp 开发中为了可以保存数据,Jsp提供了四种数据保存范围;分别是:page,request,session,application。

Page:只在一个页面中保存数据; javax.servlet.jsp.PageContext(抽象类)

Request:只在一个请求中保存数据; javax.servlet.http.HttpServletRequest(接口)

Session:在一次会话范围中保存数据,仅供单个用户使用;javax.servlet.http.HttpSession(接口)

Application:在整个服务器上保存数据,所有用户共享;javax.servlet.ServletContext(接口)

三、★JavaBean

JavaBean是使用Java语言开发的一个可重用的组件,在JSP 开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。

创建javabean

<jsp:useBean id="实例化对象名称" scope="保存范围" class="类完整名称"/>

Scope有page,request,session和application 4个属性范围,默认是page;

设置javabean属性值

<jsp:setProperty property="属性名称" name="实例化对象的名称" value="属性值" param="参数名称"/>

Property=”*” 自动匹配所有

获取javabean属性值

<jsp:getProperty property="属性名称" name="实例化对象的名称"/>

javabean保存范围

Javabean 的保存范围有page,request,session,application;默认是page;

删除javabean

Page 范围:pageContext.removeAttribute(“javaBean Name”);

request 范围:request.removeAttribute(“javaBean Name”);

session 范围:session.removeAttribute(“javaBean Name”);

application 范围:application.removeAttribute(“javaBean Name”);

四、☆Servlet

Servlet生命周期:简单分为四步:servlet 类加载→实例化→服务→销毁。

客户端/服务器端 跳转

① 在Servlet 中获取session,application

② 客户端跳转response.sendRedirect("目标地址");

③ 服务器跳转:RequestDispatcher rd=request.getRequestDispatcher("目标地址"); rd.forward(request, response);

五、★EL表达式

表达式内置对象说明
1pageContext表示javax.servlet.jsp.PageContext对象
2pageScope表示从page属性范围查找输出属性
3requestScope表示从request属性范围查找输出属性
4sessionScope表示从session属性范围查找输出属性
5applicationScope表示从application属性范围查找输出属性
6param接收传递到本页面的参数
7paramValues接收传递到本页面的一组参数
8header取得一个头信息数据
9headerValues取出一组头信息数据
10cookie取出cookie中的数据
11initParam取得配置的初始化参数

寻找值的顺序:page→request→session→application

EL表达式运算符操作还包括:算数运算符,关系运算符,逻辑运算符;三目运算符;Empty关键字;

六、Jsp标准标签库

JSTL核心标签库

c:out 内容输出标签;

c:set 用来设置4 中属性范围值的标签;

c:remove 用来删除指定范围中的属性;

c:catch 用来处理程序中产生的异常;

c:if 用来条件判断;

c:choose、c:when、c:otherwise 用来多条件判断;

c:forEach 用来遍历数组或者集合;

c:fortokens 分隔输出;

c:import 导入页面;

c:url 生成一个url 地址;

c:redirect 客户端跳转

JSTL SQL标签库

Sql:setDataDource 设置JDBC 连接;

sql:query 数据库查询操作;

Sql:update 数据库添加,修改,删除操作;

Sql:transaction 数据库事务;

JSTL XML标签库

x:parse 解析xml;

x:out 输出xml 文件的内容;

x:set 把xml 读取的内容保存到指定的属性范围;

x:if 判断指定路径的内容是否符合判断的条件;

x:choose x:when x:otherwise 多条件判断;

x:forEach 遍历

相关推荐

10款超实用JavaScript音频库(js播放音频代码)

HTML5提供了一种新的音频标签实现和规范用一个简单的HTML对象而无需音频插件来控制音频。这只是一个简单的整合这些新的HTML5音频特征及使用JavaScript来创建各种播放控制。下面将介绍10款...

Howler.js,一款神奇的 JavaScript 开源网络音频工具库

o...

PROFINET转Modbus网关——工业协议融合的智能枢纽

三格电子SG-PNh750-MOD-221,无缝连接Profinet与Modbus,赋能工业物联产品概述...

简单实用的Modbus类库,支持从站和DTU

一、简介...

[西门子PLC] S7-200 SMART PROFINET :通过GSD组态PLC设备

从S7-200SMARTV2.5版本开始,S7-200SMART开始支持做PROFINETIO通信的智能设备。从而,两个S7-200SMART之间可以进行PROFINETI...

Modbus(RTU / TCP)有什么异同(modbus tcp和tcp)

Modbus是一种广泛使用的工业自动化通信协议,它支持设备之间的数据交换。Modbus协议有两个主要的变体:ModbusRTU(二进制模式)和ModbusTCP(基于TCP/IP网络的模式)。尽管...

Modbus通信调试步骤详解(modbus调试工具怎么用)

Modbus通信调试步骤详解  Modbus通信分为串口和以太网,无论是串口还是以太网,只要是标准Modbus,就可以用Modbus模拟器进行调试。按以下几步进行调试。...

理解Intel手册汇编指令(intel 汇编指令手册)

指令格式...

「西门子PLC」S7-200 SMART的Modbus RTU通讯

S7-200SMART集成的RS485端口(端口0)以及SBCM01RS485/232信号板(端口1)两个通信端口可以同时做MODBUSRTU主站,或者一个做MODBUSRTU主站一个做MO...

InfiniBand网络运维全指南:从驱动安装到故障排查

一、InfiniBand网络概述InfiniBand(直译为“无限带宽”技术,缩写为IB)是一种用于高性能计算的计算机网络通信标准,具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。它...

一加回归 OPPO,背后的秘密不可告人

有这样一个手机品牌,它诞生于互联网品牌。在大众群体看来,它的身世似乎模糊不清,许多人以为它是国外品牌。它的产品定位是极客群体,深受国内发烧友,甚至国外极客玩家喜爱。...

[西门子PLC] S7-200SMART快速高效的完成Modbus通信程序的设计

一、导读Modbus通信是一种被广泛应用的通信协议,在变频器、智能仪表还有其他一些智能设备上都能见到它的身影。本文呢,就把S7-200SMART系列PLC当作Modbus主站,把...

狂肝10个月手搓GPU,他们在我的世界中玩起我的世界,梦想成真

梦晨衡宇萧箫发自凹非寺量子位|公众号QbitAI自从有人在《我的世界》里用红石电路造出CPU,就流传着一个梗:...

[西门子PLC] 博途TIA portal SCL编程基础入门:1-点动与自锁

一、S7-SCL编程语言简介...

工作原理系列之:Modbus(modbus工作过程)

MODBUS是一种在自动化工业中广泛应用的高速串行通信协议。该协议是由Modion公司(现在由施耐德电气公司获得)于1979年为自己的可编程逻辑控制器开发的。该协议充当了PLCS和智能自动化设备之间的...

取消回复欢迎 发表评论: