Servlet和JSP学习指导与实践(三):JSP助阵
前言:
JSP(Java Server Page)虽然作为一门服务端的语言,但它并没有创新新的语言标准。有些人一接触jsp之后发现易学易懂。实际上,jsp的内部原理仍然是基于Servlet,它是Servlet的补充,而并不是要取代Servlet。本文对JSP的一些概念及基础内容进行了不详尽的总结,希望感兴趣的博友凑合着看~
-------------
Part I: jsp指令,脚本元素,动作
1.常见指令
(1)page指令:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
其中,各属性详细说明见下表:
|
import
|
使一个JAVA导入声明被插入到最终页面文件(可分多次导入)。
|
|
contentType
|
规定了生成内容的类型。当生成非HTML内容或者当前字符集character set并非默认字符集时使用。
|
|
errorPage
|
处理HTTP请求时,如果出现异常则显示该错误提示信息页面。
|
|
isErrorPage
|
如果设置为TRUE,则表示当前文件是一个错误提示页面。
|
|
isThreadSafe
|
表示最终生成的servlet是否安全线程(threadsafe)。
|
(2)include指令:
<%@include file="demo"%>
2.脚本元素:
- 声明:
- <%! int a=1 %>
- 内嵌Java代码块,即scriptlet:
- <% %>
- 表达式:
- <%= "expanded inline data " + 1 %>
3.动作:
动作(Action)指的是被编译成执行某些操作的Java代码,常见的有
|
jsp:include
|
区别与include指令,当处理完该JSP页后就马上把控制权交还当前JSP页。这样JSP代码就可以在多个JSP页中共享而不用复制。
|
|
jsp:param
|
可以在jsp:include, jsp:forward或jsp:params块之间使用。指定一个将加入请求的当前参数组中的参数。
|
|
jsp:forward
|
用于处理对另一个JSP或SERVLET的请求和响应。控制权永远不会交还给当前JSP页。
|
|
jsp:plugin
|
这个动作产生为嵌入一个APPLET所需要的指定浏览器标签。
|
|
jsp:fallback
|
如果浏览器不支持APPLETS则会显示的内容。
|
|
jsp:getProperty
|
从指定的JavaBean中获取一个属性值。
|
|
jsp:setProperty
|
在指定的JavaBean中设置一个属性值。
|
|
jsp:useBean
|
创建或者复用一个JavaBean变量到JSP页。
|
实验1:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h2>第一个jsp页面</h2>
</body>
</html>
测试结果:
实验2:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<%
//内嵌的java代码
String name="Jack";
%> <%!
//声明方法
public String printTime(){
return "当前时间"+new java.util.Date();
}
%>
<body>
<!-- 表达式输出 -->
Hello,<%=name %>
<%=printTime() %>
</body>
</html>
测试结果:

Part II: jsp内置对象
jsp的9个内置对象分别表述如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
//request获取参数及设置参数
request.setAttribute("time", new java.util.Date());
String timeNow = request.getParameter("time");
//out以html格式将内容输出到浏览器
out.print("welcome!"+timeNow);
//session设置参数,会话信息可跨多个页面
session.setAttribute("time",new java.util.Date());
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h2>内置对象</h2>
<a href="test2.jsp?name=admin">请求测试1</a>
<a href="#">请求测试2</a>
<br>
request获得参数:<%=request.getParameter("name") %> <br>
当前项目名:<%=request.getContextPath() %> <br>
请求的IP地址:<%=request.getLocalAddr() %> <br> </body>
</html>
测试结果:

-------------------------------
注:
本文内置对象部分的内容综合参考自其他技术博文及百科相关补充!
Servlet和JSP学习指导与实践(三):JSP助阵的更多相关文章
- Servlet和JSP学习指导与实践(一):Servlet API初探
前言: JavaSE如何跨度到JavaEE?原本java语言只是专门用于application桌面小应用程序的开发,但自从其追随CGI进入服务器端的开发之后便一发不可收拾.先是Servlet1.0,再 ...
- Servlet和JSP学习指导与实践(二):Session追踪
前言: web应用中经常需要对某些有用的信息进行存储或者附加一些信息.本文主要介绍session,即“会话”跟踪的几种不同方式~ ----------------------------4种管理ses ...
- jsp学习--JavaBean定义和在Jsp中使用JavaBean
一.JavaBean 1.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:>>这个Java类必须具有一个无参的构造函数>>属性必须私 ...
- Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性,跳转之后无效 request:在一次服务请求范围内,服务器跳转后依然有效 session:-在一次会话范围内 ...
- JSP学习笔记(3)-JSP内置对象
有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这些对象就是JSP的内置对象. JSP常用的内置对象有request,response,session,application,o ...
- JSP学习笔记(2)-JSP语法
1.JSP页面的基本结构 (1)HTML标记符(2)JSP标记(3)变量和方法的声明(4)Java程序片(5)Java表达式 2.变量和方法的声明 成员变量和方法 语法:<%! 变量.方法%&g ...
- JSP学习笔记(1)-JSP简介
1.什么是JSP? JSP是Java server page的缩写,有sun公司倡导,许多公司参与,于1999年推出的一种web服务设计标准.JSP基于Java Servlet以及整个java体系的W ...
- jsp学习--如何定位错误和JSP和Servlet的比较
一.如何查找JSP页面中的错误 JSP页面中的JSP语法格式有问题,导致其不能被翻译成Servlet源文件,JSP引擎将提示这类错误发生在JSP页面中的位置(行和列)以及相关信息.JSP页面中的JS ...
- jsp学习与提高(三)——JSP Cookie 处理
1.cookie是什么 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持. 通常有三个步骤来识别回头客: 服务 ...
随机推荐
- Java 内部类的阐述
创建一个Computer抽象类:用来在Test类中创建匿名抽象类 package com.zhiyou; public abstract class Computer { int a = 1; /** ...
- 了解HTML CSS布局(层叠样式表)
CSS全称为"层叠样式表(Cascading Style Sheets)", 它主要是用于定义HTML内容在浏览器内显示的样式, 比如文字, 颜色, 视觉上的静态效果, 布局等等. ...
- iOS开发之开源项目链接
1. Coding iOS 客户端 Coding官方客户端. 笔者强烈推荐的值得学习的完整APP.GitHub - Coding/Coding-iOS: Coding iOS 客户端源代码 2. OS ...
- git笔记
这篇有关git的博客,写着写着有些崩了.里面有些碎碎念了.下次一定注意这个问题. 创建项目: midir xx :创建xx文件夹 git init : 为当前文件夹创建代码仓库 提交代码: git a ...
- 敏捷开发与jira之燃烧图
项目当前版本的燃烧图是下面这样的 存在的问题: 1.任务在版本起始时期之后再细化,造成了绿线一直在红线上面.解决方案:版本起始日期定为任务录入结束后的日期 2.工时录入不及时,没有实时反映当前项目组的 ...
- Linux SSH登录慢案例分析
手头有台Linux服务器ssh登录时超级慢,需要几十秒.其它服务器均没有这个问题.平时登录操作都默默忍了.今天终于忍不住想搞清楚到底什么原因.搜索了一下发现了很多关于ssh登录慢的资料,于是自己也学着 ...
- Red Hat Enterprise Linux Server 6.5安装GCC 4.9.2
现在很多程序员都应用GCC,怎样才能更好的应用GCC.目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.本文以在RedHat L ...
- C++ 用宏实现swap(a,b)
#include <iostream> using namespace std; #define SWAP(a,b) a^=b,b^=a,a^=b int main(void){ int ...
- Linux cut命令
[root@wang /]# cat /etc/passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x ...
- Jackson将json字符串转换成泛型List
Jackson,我感觉是在Java与Json之间相互转换的最快速的框架,当然Google的Gson也很不错,但是参照网上有人的性能测试,看起来还是Jackson比较快一点 Jackson处理一般的Ja ...