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>

 
<jsp:forward>
重定向一个HTML文件,JSP文件,或者是一个程序段
JSP 语法
<jsp:forward page={"relativeURL" | "<%= expression %>"} />
or
<jsp:forward page={"relativeURL" | "<%= expression %>"} >
<jsp:param name="parameterName"
value="{parameterValue | <%= expression %>}" />+
</jsp:forward>
例子
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>
描述
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.
你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数.
如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.
属性
page="{relativeURL | <%= expression %>}"
这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL.这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件。
如果你想传递多个参数,你可以在一个JSP文件中使用多个<jsp:param>。name指定参数名,value指定参数值。
forward属于服务器端跳转。
 
基本数据类型8种: boolean byte short int long float double 这些都可以不用new
剩下的为引用数据类型,大多都是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() 普通 得到全部属性的名称

posted on 2013-02-28 10:00  阡陌行者  阅读(193)  评论(0编辑  收藏  举报

导航