JSP 基础编程( 1 )
HTTP 基础 HTTP 是简单的无状态的协议。 通常:一个客户开一个浏览器,上一个网站, 在该站上进行一些活动,向服务端发出请 求,服务端根据客户请求回应。
Client 发出一个请求 : 包括 HTTP 命令和一些 附加信息如 C 端用的是什么软件和什么类型 的内容. 服务器响应 : 版本号 + 状态码 (200,404) 和服 务器的附加信息. 例子 : 见下页
GET /intro.html HTTP/1.0 User-Agent: Mozilla/4.0 (compatible; MSIE 4.0; Windows 95) Accept: image/gif, image/jpeg, text/*, */* HTTP/ OK Date: Saturday, 23-May-00 03:25:12 GMT Server: Tomcat Web Server/3.2 MIME-version: 1.0 Content-type: text/html Content-length: 1029 Last-modified: Thursday, 7-May-00 12:15:35 GMT
可以传送的内容是多媒体的:如文字,图 片,图像,声音等等。 我们给了一个比较全的 mime type 的列表。 当然我们用的是常用的,比如 text/html , image/bmp, image/jpeg 等等。 详细的 http 内容请参考我们补充的文章。
与服务器交互的方法 把客户端连接服务器并发送的 http 请求叫作 方法. 最常见的是 Post 和 Get 方法,POST 是张贴, 而 GET 是读
Jsp 服务器的搭建 Web 服务器 +servlet 容器 + 数据库 大多数应用程序服务器和若干独立 servlet 容 器都内置了 web 服务. 我们的 Tomcat 是 Web 服务器 +servlet 容器
Apache+tomcat+ sql server 2K 安装 j2sdk 安装 tomcat(4.x-5.0.x) Sql server 2K SQL server 2K 的 JDBC - ODBC driver 我们的工作是在实验课程上安装 tomcat, 非 常简单的工作。
“ 一切都是对象 ” Java 是纯的面向对象程序设计语言. Jsp 继承了 java 的语法和特性. JSP 从这个层次上面可以理解为 : 用 java 的方 法来解决 http 协议需求. 想学好 jsp 和 servlet, 关键还是学 java. 所以 要回头复习 java 语言的。
来看第一个 jsp 例子
Hello.jsp Hello! The time is now
幕后的运行机制
Jsp 和 servlet 的关系:所有的 jsp 都会被 tomcat 编译成一个相对应的 servlet. 经 tomcat 编译过的 hello.jsp 文件 hello_jsp.class 注意观察它们的关系。要求看源代码理解。
Jsp 中的隐含对象 Jsp 的设计开发人员造出了 9 个内置对象, 用 于 Http 协议的需求. 这些对象,大家先看一下,下堂课我们会一 一提到它们。
Request Response PageContext Session Application Out Config Page Exception
JSP 语法 Expressions and Declarations Saying "Hello" Using a JSP Declaration – hello2.jsp 全局变量和局部变量的关系.
Jsp 语法 Directives 主要有下面三种:
contentType – 说明了产生的页面的内容类型 For example: – – 默认的 content type 是 text/html; charset=8859_1. import – 说明要 import 的一系列的类和包,它们服务于 scriptlet 中的代码。 你自己写的 javabean 也要 import. –For example: – – 默认的 include 表有 java.lang.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.js p.* page 指令
buffer – 说明了 response 的 buffer 的最小 size. 值是用 kb 为单位。 (none/8kb/ 任意 数字) –none 表示页面生成的内容将不放入缓存,直接放到 Response 的 PrintWriter ,依据具体的把它回送给客户。 – 如果有数值,就可以是下面的样子 –For example: The default is 8kb. autoFlush – 在有缓存的时候才用到。表示当缓存满时,到客户端的输出将自动刷新, 若该属性为 false, 则当缓存满时,将会出现缓存溢出异常。 –For example: – The default is true. session – 表示该页是否要参与一个 http 的会话,默认是参加。 A true puts the session variable in scope. A false disables access to the session variable. –For example: – The default is true.
errorPage – 如果在本页中抛出异常,说明了该错误页将被调用。 –For example: – – 路径是和环境相对的, 目标可以是一个 jsp 或者是 servlet. 抛出的异常可 以从 request 中取出来处理。 request attribute javax.servlet.jsp.jspException. isErrorPage – 表明页面是一个错误处理页面。 可以在 request 中取 exception language – 说明本页中用的脚本语言,一般就是 java.
page 指令的例子
include 指令 请看下面的例子. 在程序目录里面。
head.jsp content
脚本元素 脚本元素是 JSP 代码中使用最频繁的元素, 它是用 Java 写的脚本代码。所有的脚本元 素均是以 结束, 可以代表 “ 声明 ” , “ 表达式 ” , 和 “ 小 java 脚 本 ” ( scriptlet )
表达式的例子 Hello! The time is now
声明的例子 用 比如 声明了一个变量 i, 你也可以象下面这样声明一个 方法。 <%! String getDate() { String str; str = new java.util.Date().toString(); return str; } %>
Java小的脚本的例子(scriptlet) <% System.out.println( "Evaluating date now" ); java.util.Date date = new java.util.Date(); %> Hello! The time is now
JavaBean 是利用 OO 的技术,在 JSP 中来调 用 Java 程序写的类的对象。 用 标签可以将 javaBeans 直 接嵌入到 jsp 页面中或作为一个可供 jsp 调用 的操作. JSP 和 JavaBean
调用 javabean 例子
和 bean 的交互
Bean 本身就是一个 java 对象 要求符合一定规范,对于所有用到的 <jsp:setProperty name=“beanName” property=“propertyName”/> 例子 <jsp:setProperty name=“student” property=“stuName”/> 那么在 student 的类中就要有 setstuName(String n) 的方法。
看一些例子 一个小的教学管理系统, school_mini_sys 一个小的聊天系统, chattingroom
看看我们做的小例子。