JAVA WEB 学习之JSP基础篇之语法学习
本篇内容主要涉及到jsp一些语法常识,还有一些主要的API对象学习。
1. JSP 常用语法
JSP被称为动态网页技术,其原因在于基本的HTML页面中嵌入JAVA语言,字符系列<%= %>的作用是圈起Java表达式,这个表达式将在运行的时候被计算,例如
1 HTML> 2 3 <BODY> 4 5 Hello! The time is now <%= new java.util.Date() %> 6 7 </BODY> 8 9 </HTML>
JSP另外允许你编写Java代码块嵌入到JSP中。具体做法是:将Java代码段放置于<% %>字符之间。其实跟表达式是一样的,只不过在开始的地方没有等号而已
就是scriptlet,下面的代码增加了一个script.
HTML> <BODY> <% // This is a scriptlet. Notice that the "date" // variable we declare here is available in the // embedded expression later on. System.out.println( "Evaluating date now" ); java.util.Date date = new java.util.Date(); %> Hello! The time is now <%= date %> </BODY> </HTML>
使用<%! and %>来圈起你的声明
page directive
语法:<%@ page import="*"%>
<%@ page import="java.util.*,java.text.*" %>
其它有用的directives有include 和 taglib.
JSP另外一个重要的语法是Tags(标记)。JSP Tags不是使用<%,而只是使用<字符。JSP Tag有点象HTML Tag 。JSP tags可以有一个“start tag”、一个“tag body”以及一个“end tag”。开始和结束的标志都可以使用标志的名字,都被圈在<和>字符里面。结束的标志是在字符<后面加一个反斜杆(/)字符。这个标志名字有一个嵌入的冒号(:)字符在里面,其中冒号前面的部分描述了标志的类型。举个例子吧:
<some:tag>
body
</some:tag>
jsp:include 包含文件-运行时调用
jsp:forward:跳转文件
<jsp:forward>
剩下的为引用数据类型,大多都是new的
request.getContextPath();getScheme();getServerName();getServerPort()
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
输出:
path:/E_WuLiu
basePath:http://localhost:8080/E_WuLiu/
getContextPath():得到当前应用的根目录
getScheme():它返回当前请求所使用的协议。 一般的应用返回 "http",对于ssl则返回"https"
getServerName():获取服务器名字,如果是在本地的话就是localhost
getServerPort():获得服务器的端口号
另外:jsp中获取客户端的浏览器和操作系统信息
string agent = request.getheader("user-agent");
stringtokenizer st = new stringtokenizer(agent,";");
st.nexttoken();
//得到用户的浏览器名
string userbrowser = st.nexttoken();
//得到用户的操作系统名
string useros = st.nexttoken();
取得本机的信息也可以这样:
操作系统信息
system.getproperty("os.name"); //win2003竟然是win xp?
system.getproperty("os.version");
system.getproperty("os.arch");
浏览器:
request.getheader("user-agent")
其他
request.getheader(“user-agent”)返回客户端浏览器的版本号、类型
getheader(string name):获得http协议定义的传送文件头信息,
request. getmethod():获得客户端向服务器端传送数据的方法有get、post、put等类型
request. getrequesturi():获得发出请求字符串的客户端地址
request. getservletpath():获得客户端所请求的脚本文件的文件路径
request. getservername():获得服务器的名字
request.getserverport():获得服务器的端口号
request.getremoteaddr():获得客户端的ip地址
request.getremotehost():获得客户端电脑的名字,若失败,则返回客户端电脑的ip地址
request.getprotocol():
request.getheadernames():返回所有request header的名字,结果集是一个enumeration(枚举)类的实例
request.getheaders(string name):返回指定名字的request header的所有值,结果集是一个enumeration(枚举)类的实例
2.常用 API学习
request
response
System.out.println 输出内容换行,System.out.print 输出不换行。
System.getProperty()参数大全
3.java.version Java Runtime Environment version 4.java.vendor Java Runtime Environment vendor 5.java.vendor.url Java vendor URL 6.java.home Java installation directory 7.java.vm.specification.version Java Virtual Machine specification version 8.java.vm.specification.vendor Java Virtual Machine specification vendor 9.java.vm.specification.name Java Virtual Machine specification name 10.java.vm.version Java Virtual Machine implementation version 11.java.vm.vendor Java Virtual Machine implementation vendor 12.java.vm.name Java Virtual Machine implementation name 13.java.specification.version Java Runtime Environment specification version 14.java.specification.vendor Java Runtime Environment specification vendor 15.java.specification.name Java Runtime Environment specification name 16.java.class.version Java class format version number 17.java.class.path Java class path 18.java.library.path List of paths to search when loading libraries 19.java.io.tmpdir Default temp file path 20.java.compiler Name of JIT compiler to use 21.java.ext.dirs Path of extension directory or directories 22.os.name Operating system name 23.os.arch Operating system architecture 24.os.version Operating system version 25.file.separator File separator ("/" on UNIX) 26.path.separator Path separator (":" on UNIX) 27.line.separator Line separator ("\n" on UNIX) 28.user.name User's account name 29.user.home User's home directory 30.user.dir User's current working directory 使用方法很简单:System.getProperty("user.dir")
session 内置对象
什么是session?
实际开发中session对象最主要的用处就是完成用户的登录和注销等常见功能;每一个session都代表不同的用户;
session对象是javax.servlet.http.HttpSession接口的实例化对象,所以session只能在Http协议中使用;它的常用方法如下:
NO | 方法 | 类型 | 描述 |
1 | public String getId() | 普通 | 取得session id |
2 | public long getCreationTime() | 普通 | 取得session的创建时间 |
3 | public long getLastAccessedTime() | 普通 | 取得session的最后一次操作时间 |
4 | public boolean isNew() | 普通 | 判断是否是新的session(新用户) |
5 | public void invalidate() | 普通 | 让session失效 |
6 | public Enumeration getAttributeNames() | 普通 | 得到全部属性的名称 |