<% @path include file=%>
JSP基本语法
表达式:
<%= expression %>
表达式的值将直接输出到页面。
<%String hello=”hello world” %>
<%=hello %>
不能用一个分号(";")来作为表达式的结束符,但是同样的表达式用在scriptlet中就需要以分号来结尾。
Scriptlet脚本代码:
<% code fragment %>
它将被插入到JSP所生成的目标Servlet的Service方法中。
一个scriptlet能够包含多个jsp语句,方法,变量,表达式。
声明:
<%!JAVA Code%>
并不产生输出,值时定义了提供调用的方法和变量,因此将其和JSP 表达式与JSP脚本结合使用。
Page 指令
<%@ page
[ language=”java”]
[ extends=”package.class”]
[ import=”{package.class | package.*},….”] 使用逗号(“,”)分割
[session=”true | false”]
[ buffer=”none | 8kb | sizekb”]
[ autoFlush=”true | false”]
[ isThreadSafe=”true | false”]
[ info=”text”]
[ errorPage=”relativeURL”]
[ contentType=”mimeType [ ;charset=characterSet]” | ”text/html;charset=ISO-8859-1”]
[ isErrorPage=”true | false”]
%>
定义JSP文件的全局属性。
Include 指令:
<%@include file=”URL” %>
include指令将会在JSP编译时到入一个包含文本或代码的文件(静态包含)。
JSP 注释:
<!-- 注释[<%=表达式%>]-- > 显式
<% -- 注释 --%> 隐式
指令
}” flush=”true” />
与include 指令不同,指令在JSP 页面被用户请求时才将指定文件的内容插入服务器的响应输出中。
指令
指令能在JSP页面中载入并使用一个JavaBean。
指令
用来设置Bean中的属性值
指令
返回一个已被创建的Bean组件的属性值。
获取Bean的属性值,显示在页面中。
指令
用来把当前的页面重导至另一个页面上,客户端看到的地址是A页面,而实际内容却是B页面的内容。
指令
用来向客户端浏览器插入Java Applet插件来运行(Java小程序)或Bean对象。
JSP 内部对象
request
getParameter(String name)获得客户端传送给服务器端的参数值,该参数由name 指定
getParameterNames()获得客户端传送给服务器端的所有参数名称,结果集是一个Enumeration(类举)类的实例。
getParameterValue(String name)获得指定参数值。
response 重要的对象之一,只有通过它才能响应客户端的请求,向客户端输出信息。
PageContext
session用来在用户之间分别保存用户信息。
session.putValue(value , String name)
session.getParameter(String name)
application 重要的对象之一,一旦创立了application 对象,除非服务器关闭,否则application对象将一直保持
getAttribute(String name) 返回由name指定名称的 application 对象属性的值,这是个 object对象.
SetAttribute(String name, Object value) 用value来初始化某个属性,该属性由name指定
out
out.println()
out.print()
out.newLine()
……
config
exception 处理JSP文件在值在执行时发生的错误和异常。内建3个方法:
getMessage() 返回错误信息。
printStackTrace() 已标准的形式输出一个错误和错误的堆栈。
toString() 以字符串的形式返回一个对异常的描述。
page
JavaBean 组件
定义Bean的属性就必须为其创建访问方法,访问方法就是对组件中定义的属性的访问,包括读和写两种。读:用于取出Bean属性值的取值函数,方法以get 为前缀,并连接首字符为大写的属性名。写:用于设置Bean属性的赋值函数,方法以set为前缀,并连接首字符为大写的属性名。必须将 Bean 属性访问方法的访问权限定义为公有(public)。
数据库连接Bean:
导入JDBC标准类库 import java.sql.*;
注册数据库驱动程序 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
建立数据库连接
Connection conn=DriverManager.getConnection( “jdbcdbc:databaseame”, ”username”, ”password”);
创建stmt 对象,来执行数据库操作(执行SQL指令)
Statememt stmt=conn.createStatememt();
执行数据库操作 stmt.executeQuery(String sql) 返回信息在ResultSet 对象。
关闭数据库 stmt.close(); conn.close();
创建文件应用程序
标准的输入/输出封装在:Java.lang 包。
文件的输入/输出封装在:Java.io 包。
图形的输入/输出封装在:Java.wat 包。
对网络接口的输入/输出封装在:Java.net 包。
文件的输入/输出流
输入对象:FileInputStream bjectname = new FileInputStream(“filename”);
读取数据:read();
输出对象:FileOutputStream bjectname = new FileOutputStream(“filename”);
写入数据:write();
RamdonAccessFile类可利用length()方法和seek()方法实现文件的追加。
转义符: 双引号 \“ ,单引号\’,反斜杠\\,回车\r,换行\n,制表符\t,退格 \b
(URI)根据标签的前缀对自定义的标签进行唯一的命名
URI可以是以下内容
一个相对或绝对的路径 ?
可以是标签库描述文件
prefix="tagPrefix"
表示标签在JSP中的名称
向一个动态文件发送一个或多个参数,这个文件必须是动态文件。如果想传递多个参数,可以在一个JSP文件中使用多个“”;“name”指定参数名,“value”指定参数值。
JSP PLUGN
使用“”插入一个applet或Bean,必要的话还要下载一个Java插件用于执行它。
1.type="bean | applet"
将被执行的插件对象的类型,你必须得指定这个是Bean还是applet,因为这个属性没有缺省值。
?
2.code="classFileName"
将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中。
3.codebase="classFileDirectoryName"
将会被执行的Java Class文件的目录(或者是路径),如果你没有提供此属性,那么使用的jsp文件的目录将会被使用。
?
4.name="instanceName"
这个Bean或applet实例的名字,它将会在Jsp其它的地方调用。
“session” 对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。常用的方法包括getId、 getValue、 getValueNames和putValue等。
HTTP是无状态(stateless)协议;
Web Server 对每一个客户端请求都没有历史记忆;
Session用来保存客户端状态信息;
由Web Server 写入;
存于客户端;
客户端的每次访问都把上次的session记录传递给Web Server;
Web Server读取客户端提交的session来获取客户端的状态信息;
“application” 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。
“out” 对象代表了向客户端发送数据的对象,与“response” 对象不同,通过“out” 对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。常用的方法除了pirnt和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为“out” 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。
“config” 对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。
“exception” 对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用
客户端确认
采用javascript进行确认
常用函数
isBetween
isDate
isTime
isDigit
isEmail
isEmpty
isInt
isReal
JSP的汉字问题的原理
客户端和服务器用gb2312
HTTP传输编码用ISO8859_1
服务器需要指示客户端文档的编码方式
JSP中的汉字字符串在服务器端用gb2312
在编译为Servlet时自动转换为iso8859_1
汉字在传输中是正确的
在没有特别指示下,浏览器中无法正确显示
1.在HTML中指示浏览器文档的编码(myJSP\index.html)
2.在JSP中指示JSP引擎文档的编码
<%@ page contentType="text/html;charset=gb2312"%>
每个要显示汉字的JSP文档都应该包含该语句
jsp高级知识:
1).防止jsp或者servlet中的输出不备browser保存在cache中.把如下的脚本假如到jsp文件的开始即可
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expire",0);//prevents caching at proxy server
%>
2).在jsp中如何设置cookie
<%
Cookie mycookie = new Cookie("userName","user1");
response.addcookie(mycookie);
%>
3).在jsp中如何删除一个cookie
<%
Cookie killMyCookie = new Cookie("mycookie",null);
killMyCookie.setMaxAge(0);
killMycookie.setPath("/");
response.addCookie(killMyCookie);
%>
4).在一个jsp的请求中如何停止jsp的执行
<%
if (request.getParameter("wen") != null){
//do sth
}else
return;
%>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/293106/viewspace-582263/
,如需转载,请注明出处,否则将追究法律责任。