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

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

haoteby 2025-05-28 17:16 26 浏览

零: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 遍历

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...