使用JSP开发Web应用程序

 

第1章 动态网站开发基础

1.         动态网页是指服务器端运行的程序或者网页,它们会随不同客户,不同时间,返回不同的内容。

 

2.         随着Internet技术的兴起,B/S结构是对C/S结构的一种变化或者改进的结构。在这种结构下,程序完全放在应用服务器上,并通过应用服务器同数据库服务器进行通信。

 

3.         开发JSP动态网站的步骤如下:

a)         创建一个Web项目

b)        设计Web项目的目录结构

c)        编写Web项目的代码

d)        部署Web项目

e)         运行Web项目

 

4.         做Web程序开发时,要避免如下错误:

a)         未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务。

b)        未部署Web应用,就试图运行Web程序

c)        运行时,URL输入错误。

d)        存放文件的目录无法对外引用,如文件放入了Web-INF、Mate-inf等文件夹中。

 

 

第2章 用集合存储对象

1.         集合框架

由于数组在存放元素时必须要确定初始元素的个数。所以引入使用集合存储。

 

2.         Java集合框架包含的内容

java集合框架 提供了一套性能优良、使用方便的接口和类。完整的Java集合框架位于java.uril包中,包含众多的接口和类。

a)         接口

Collection是最基本的集合接口,一个Collection代表一组元素。

List接口继承自Collection接口。List是有序集合,允许有相同的元素。

Map提供key(键)到value(值)的映射。一个Map中不能包含 相同的key,每个key只能映射一个value。

b)        具体类

实现List接口的常用的类有ArrayList和LinkedList。它们都可以容纳所有类型的对象,包括null。

ArrayList实现了可变大小的数组。它的优点在于遍历元素和随机访问元素的效率比较高。

LinkedList可以在其首部或尾部进行插入或者删除操作。

HashMap是Map接口的实现类,实现了一个键到值的映射的哈希表。

 

3.         List接口和ArrayList类

 

List接口中定义的各种常用方法

返回类型

方  法

说  明

boolean

add(Object o)

在列表的末尾顺序添加元素,起始 索引位置从0开始

int

size()

返回列表中的元素个数

Object

get(int index)

返回指定索引位置处的元素

注意:取出的元素是Object类型,使用前需要进行强制类型转换

void

add(int index; Object o)

在指定的索引位置添加元素

注意:索引位置必须介于0和列表中元素个数之间

boolean

contains(Object o)

判断列表中是否存在指定元素

boolean

remove(Object o)

从列表中删除元素

 

4.         List接口和LinkedList类

LinkedList的一些特殊方法

返回类型

方  法

说   明

void

addFirst(Object o )

在列表的首部添加元素

void

addList(Object o)

在列表的末尾添加元素

Object

getFirst()

返回列表中的第一个元素

Object

getLast()

返回列表中的最后一个元素

Object

removeFirst()

删除并返回列表中的第一个元素

Object

removeLast()

删除并返回列表中的最后一个元素

 

5.         Map接口和HashMap类

HashMap的常用方法

返回类型

方  法

说  明

Object

put(Object key,Object value)

以“键-值对”的方式进行存储

注意:键必须是唯一的,值可以重复。如果试图添加重复的键,那么最后加入的键-值对将替换掉原先的键-值对

Set

keySet()

返回键的集合

Collection

values()

返回值的集合

boolean

containsKey(Object key)

如果存在由指定的键映射的“键-值对”,返回true

Object

get(Object key)

根据检返回相关联的值,如果不存在指定的键,返回null

Object

remove(Object key)

删除由指定的键映射的“键-值对”

 


第3章 访问数据库

1.         JDBC API

JDBC API可做三件事:与数据库建立连接、发送SQL语句、处理结果。

JDBC API工作的4个环节:

(1)DriverManager类:依据数据库的不同,管理JDBC驱动。

(2)Connection接口:负责连接数据库并担任传送数据的任务。

(3)Statement接口:由Connection产生,负责执行SQL语句

(4)ResultSet接口:负责保存Statement执行后所产生的查询结果。

 

2.         JDBC程序的代码模块

1)        把JDBC驱动类装载入Java虚拟机中。

Class.forName(“JDBC驱动类的名称”)

2)        加载驱动,并与数据库建立 连接。

Connection con = DriverManager.getConnection(数据连接字符串,数据库用户名,密码)

3)        发送SQL语句,并得到结果集

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(“select a,b,c from table1”);

4)        处理结果

while(rs.next()){

       int x = rs.getInt(“a”);

       String s = rs.getString(“b”);

       float f = rs.getFloat(“c”);

}

3.         Statement语句

Statement接口中执行SQL命令的三个方法:

a)         ResulSet executeQuery(String sql):可以执行SQL查询并获取到ResultSet对象。

b)        int executeUpdate(String sql):可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数。

c)        boolean execute(String sql ):这是一个最为一般的执行方法,可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet。

 

4.         PreparedStatement语句

PreparedStatement接口继承自Statement接口,PreparedStatement比普通的Statement对象使用起来更加灵活、更有效率。

 

PreparedStatement实例包含已编译的SQL语句,SQL语句可具有一个或多个输入参数。这些输入参数的值在SQL语句创建时未被指定,而是为每个输入参数保留一个问号(“?”)作为占位符。

PreparedStatement pstmt = con.prepareStatement(“update table set a= ? where b = ? ” );

 

在执行时:pstmt.setLong(1.123456789);    pstmt.setInt(2,10);

PreparedStatement对象的executeUpdate()方法 可以执行对数据的增、删、改的操作。返回一个int类型的值。

executeQuery()方法 可以执行对数据的查询。返回一个结果集。

 

 

第4章 JSP简介

1.         JSP的页面组成

JSP是通过在HTML中嵌入Java脚本语言来响应页面动态请求。

JSP页面由静态内容、指令、表达式、小脚本、声明、标准动作、注释等元素构成。

 

a)         指令

JSP指令一般也“<%@”开始,以“%>”结束。

例:

<%@ page language=”java” import=”java.util.*,java.text.*” contextType=”text/html; charset = GBK”%>

 

b)        小脚本

小脚本可以包含任意的Java片段,编写方法就是将Java程序片断插入到<% %>标记中。

 

例:

<%

       //使用预定格式将日期转换为字符串

       SimpleDateFormat formater = new SimpleDateFormat(“yyyy年MM月dd日”);

       String strCurrentTime = formatter.format(new Date());

%>

c)        表达式

当需要在页面中获取一个Java变量或者表达式值时,可以使用表达式。基本语法是:<%=Java表达式%>

例:

<%=strCurrentTime%>

d)        注释

<%--这是JSP注释(客户端不可以看到源代码)--%>

<%  /* 多行注释 */  %>

<%

       //使用预定格式将日期转换为字符串

%>


 

2.         Web容器处理JSP文件请求需要经过三个阶段

l         翻译(translation)阶段。JSP文件会被Web容器中的JSP引擎转换成Java源码。

l         编译(compilation)阶段。Java源码会被编译成可执行的字节码。

l         执行阶段。容器接受了客户端的请求后,执行编译成字节码的JSP文件。处理完请求后,容器把生成德页面反馈个给客户端进行显示。

 

第5章 JSP指令和脚本元素

 

1.         page指令  就是通过设置内部的多个属性来定义JSP文件中的全局特性。page指令只能对当前自身页面进行设置。即每个页面都有自身的page指令。

page指令常用属性

属   性

描   述

language

指令JSP页面使用的脚本语言,默认为Java

import

通过该属性来引用脚本语言中使用到的类文件

contentType

用来指定JSP页面所采用的编码方式,默认为text/html

1)        language属性

page指令中的language属性用来指定当前JSP页面所采用的脚本语言。

例:<%@page language=”java”%>

2)        import属性

通过import属性可以在JSP文件的脚本片段中引用外在的类文件。如果一个import属性引入多个类文件时,需要在多个类文件之间用逗号隔开。

例:

<%@ page import=”java.util.*,java.text.*” %>

 

2.         JSP脚本元素

在JSP页面中可以包含静态内容、指令、表达式、小脚本、声明、标准动作以及注释。

其中,表达式(expression)、小脚本(scriptlet)、声明(declaration)统称为Java脚本元素。用来嵌入Java代码,实现页面动态请求。

 

3.         JSP九个内置对象

1)        out

2)        page

3)        pageContent

4)        request

5)        response

6)        session

7)        application

8)        Exception

9)        config

 

第6章 使用JSP处理客户端请求

 

一、HTML表单

表单的标记是

,它的两个重要参数:action和method。

action表示表单要提交到的地点    method表示表单发送的方法。一般用post

 

二、JSP内置对象

1.         request对象

例:

<%

request.setCharacterEncoding(“GBK”);

String titleName=request.getParameter(“titlename”);

%>

request对象的几个常用的方法

方法名称

说   明

String getParameter(String name)

根据页面表单组件名称获取页面提交数据

String[] getParameterValues(String name)

获取一个页面表单组件对应多个值时的用户的请求数据

void setCharacterEncoding(String charset)

指定每个请求的编码,在调用request.getParameter()方法之前进行设定,可以用于解决中文乱码问题

request.getRequestDispatcher(String path)

返回一个javax.servlet.RequestDispatcher对象,该对象的formard方法用于转发请求

 

2.         out对象

例:

<%

out.print(“hello ACCP”);

%>

 

3.         response对象

response对象的常用方法void sendRedirect(String location),这个方法用来将请求重定向到一个不同的URL。

例:

String name = request.getParameter(“userName”);

String pwd = request.getParameter(“pwd”);

if(name.equal(“sa”) && pwd.equals(“sa”)){

       response.sendRedirect(“welcome.jsp”);

}

      

       当需要类型转换时用Integer.parseInt(“获取到的东西”);

       例:int parentTitleId = Integer.parseInt(request.getParameter(“parenttitle”));


 

第7章JSP页面的访问控制

一、JSP内置对象session

session对象用来存储有关用户会话的所有信息

session对象的常用方法:

a)         void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到session中去。例如:session.setAttribute(“name”,”admin”); 含义是把字符串admin存放到session中去,它对应的键时name。

b)        Object getAttribute(String key):根据键去获取session中存放的对象的值。

例: String name = (String) session.getAttribute(“name”);  通过名称name的键获取session中存放的对象的值。

 

每个session对象都与浏览器一一对应,也就是说,重新开启一个浏览器窗口。相当于重新创建一个session对象。

 

二、include指令

include指令可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件,从而缓解代码的冗余问题。

例:

<%@ include file=”checklogin.jsp”%>

 

三、内置对象application

application对象的常用方法:

1.              void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到application中。

2.              Object getAttribute(String key):根据键去获取application中存放对象的值。

例:

if(rs.next()){

       User logineduser = new User(name,pass);

       session.setAttribute(“Logined_user”,logineduser);

 

List loginedUsers = new ArrayList();   //访问者列表

//全局范围内取出原有的访问者列表

if(application.getAttribute(“Logined_user”) !=null){

       loginedUsers = (List)application.getAttribute(“Logined_user”);

}

//把新登录用户的信息存入访问者列表中

loginedUsers.add(logineduser);

//在全局范围内存入访问者列表

application.setAttribute(“Logined_user”,loginedUsers);

}

 

JSP的几个常用的内置对象

内置对象名称

说   明

out对象

用于向客户输出数据

request对象

主要用于客户端的请求处理

response对象

用于响应客户请求并向客户端输出信息

session对象

用来存储有关用户会话的所有信息

application对象

类似于系统的全局变量,用于实现用户之间的数据共享

page

 

Exception

 

pageContent

 

config

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(使用JSP开发Web应用程序)