2018/5/11模拟面试题

本文介绍了JSTL和EL表达式的概念及其在JSP页面中的应用。包括EL表达式的语法、JSTL标签的分类及常用标签介绍,如<c:out>、<fmt:formatNumber>等。此外,还探讨了EL表达式和JSTL标签的优势以及JSP中的作用域问题。

1、请描述EL表达式的语法?

el 全名为expression language

el 语法很简单,它最大的特点就是使用上很方便。

el主要的语法结构:

${sessionscope.user.sex}

所有el都是以${为起始、以}为结尾的。

2、什么是JSTL?在JSP页面使用JSLT需要哪些作准备工作?

1、JSTL 是什么:Java Server Pages 标准标签库 (JSTL) 包含的各种标签可用于 JSP 页面中。 
JSP 标准标签库 (JSTL) - 提供两组标签,一组使用 EL(Expression Language,表达式语言),而另一组支持使用请求时表达式。

2、jar包,将tld文件夹放置到WEB-INF目录下,web.xml文件中注册要使用的taglib,在要使用标签的JSP页面导入tld

3、请你描述你知道的JSTL常用标签有哪些?分别具有什么作用?

核心标签:

核心标签是最常用的JSTL标签。

<%@ taglib prefix="c" 
           uri="http://java.sun.com/jsp/jstl/core" %>

标签描述
<c:out>用于在JSP中显示数据,就像<%= ... >
<c:set>用于保存数据
<c:remove>用于删除数据
<c:catch>用来处理产生错误的异常状况,并且将错误信息储存起来
<c:if>与我们在一般程序中用的if一样
<c:choose>本身只当做<c:when>和<c:otherwise>的父标签
<c:when><c:choose>的子标签,用来判断条件是否成立
<c:otherwise><c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行
<c:import>检索一个绝对或相对 URL,然后将其内容暴露给页面
<c:forEach>基础迭代标签,接受多种集合类型
<c:forTokens>根据指定的分隔符来分隔内容并迭代输出
<c:param>用来给包含或重定向的页面传递参数
<c:redirect>重定向至一个新的URL.
<c:url>使用可选的查询参数来创造一个URL

格式化标签:

JSTL格式化标签用来格式化并输出文本、日期、时间、数字。

<%@ taglib prefix="fmt" 
           uri="http://java.sun.com/jsp/jstl/fmt" %>
标签描述
<fmt:formatNumber>使用指定的格式或精度格式化数字
<fmt:parseNumber>解析一个代表着数字,货币或百分比的字符串
<fmt:formatDate>使用指定的风格或模式格式化日期和时间
<fmt:parseDate>解析一个代表着日期或时间的字符串
<fmt:bundle>绑定资源
<fmt:setLocale>指定地区
<fmt:setBundle>绑定资源
<fmt:timeZone>指定时区
<fmt:setTimeZone>指定时区
<fmt:message>显示资源配置文件信息
<fmt:requestEncoding>设置request的字符编码

SQL 标签

JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签。

<%@ taglib prefix="sql" 
           uri="http://java.sun.com/jsp/jstl/sql" %>
标签描述
<sql:setDataSource>指定数据源
<sql:query>运行SQL查询语句
<sql:update>运行SQL更新语句
<sql:param>将SQL语句中的参数设为指定值
<sql:dateParam>将SQL语句中的日期参数设为指定的java.util.Date 对象值
<sql:transaction>在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行

XML 标签

JSTL XML标签库提供了创建和操作XML文档的标签。

<%@ taglib prefix="x" 
           uri="http://java.sun.com/jsp/jstl/xml" %>
在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的<Tomcat 安装目录>\lib下

JSTL 函数

JSTL包含一系列标准函数,大部分是通用的字符串处理函数。

<%@ taglib prefix="fn" 
           uri="http://java.sun.com/jsp/jstl/functions" %>
函数描述
fn:contains()测试输入的字符串是否包含指定的子串
fn:containsIgnoreCase()测试输入的字符串是否包含指定的子串,大小写不敏感
fn:endsWith()测试输入的字符串是否以指定的后缀结尾
fn:escapeXml()跳过可以作为XML标记的字符
fn:indexOf()返回指定字符串在输入字符串中出现的位置
fn:join()将数组中的元素合成一个字符串然后输出
fn:length()返回字符串长度
fn:replace()将输入字符串中指定的位置替换为指定的字符串然后返回
fn:split()将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回
fn:startsWith()测试输入字符串是否以指定的前缀开始
fn:substring()返回字符串的子集
fn:substringAfter()返回字符串在指定子串之后的子集
fn:substringBefore()返回字符串在指定子串之前的子集
fn:toLowerCase()将字符串中的字符转为小写
fn:toUpperCase()将字符串中的字符转为大写
fn:trim()移除首位的空白符

4、请描述下为什么要使用EL表达式和JSTL标签技术?

使用jsp标准标签库有利于程序的可读性,提高了代码的复用性与编程效率。其目的就是为了jsp中不出现Java代码片段。方便维护。

5、请详细描述下jsp中的四大作用域?

  名称

  作用域

  application

  在所有应用程序中有效,即只要这个网站运行着,这个作用域就有效,这个指的程序的运行过程。

session

  在当前会话中有效,即从浏览器访问服务器开始,这个指的是用户的一个访问过程,即这次会话的开始到结束

request

  在当前请求中有效,负责多个servlet之间的信息共享,即将信息放入到request中,在整个请求阶段都是有效的,即用户访问的这个阶段都可以获取到这个数据

page

  在当前页面有效,即在一个jsp页面上是有效的。

6、如果用JSP开发一个聊天程序,不用数据库存储聊天记录,请问聊天记录是存储在什么对象中?

application,聊天记录所有人可见。

7、在一个JSP的请求处理中如何停止JSP的执行?

在代码的任何想要停止JSP执行的位置里加"return;"语句就可以

8、请简要描述session和application的区别。

session是会话变量,只要同一个浏览器没有被关闭,session对象就会存在。因此在同一个浏览器窗口中,无论向服务器发送多少请求,session对象只有一个。但是如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。

application它类似于系统的全局变量,用于保存所有程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁的时候,所有用户都可以享用该application对象。

9、分别解释成员变量、局部变量、类变量、实例变量、全局变量。

成员变量:在类体的变量部分中定义的变量,也称为属性(又名全局变量)
局部变量:方法体或者循环体内定义
类变量:使用static修饰的变量(使用final修饰的是常量)
实例变量:实例变量也是类中独立于方法之外的变量,不过没有static修饰。
全局变量:在类体的变量部分中定义的变量,也称为属性(又名成员变量)

10、分别用java和js形式写出九九乘法表。

java:

class Demo
{
	public static void main(String[] args)
	{
		int x,y;
		for(x = 0;x <= 9; x++)
		{
			for(y = 1;y <= x; y++)
			{
				System.out.print(y+"*"+x+"="+x*y+"\t");
			}
			System.out.println();
		}
	}

}

JavaScript:

<script type="text/javascript">
//用表格形式显示一个九九乘法表


document.write("<table>");


for (var x = 1; x <= 9; x++)
{
	document.write("<tr>");
	for (var y = 1; y <= x; y++)
	{
		document.write("<th>"+y+"*"+x+"="+y*x+"</th>");
	}
	document.write("</tr>");
}
document.write("</table>");


</script>




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值