JSP(Java Server pages)是指:在HTML中嵌入Java脚本语言,由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令,然后将生成的整个页面信息返回给客户端
JSP页面的元素包括:
静态内容:HTML静态文本
指令:以<%@ %> 例:<%@ page include file="filename"%>
表达式:<%= JAVA表达式 %>
小脚本:<% java代码 %>
声明:<%! 方法 % >
标准动作:以“<jsp:动作名>”开始,以</jsp:动作名>结束 例:<jsp:include page="filename"/>
注释: <%-- 客户端不能查看到 --%><!-- 客户端可以看到 -->
在配置文件web.Xml中设置web应用的默认访问页面:
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
JSP的执行过程
Web容器处理JSP文件请求需要经过3个阶段:
翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java源码
编译阶段:Java源码会被编译成可执行的字节码
执行阶段:容器接受了客户端的请求后,执行编译成字节码的JSP文件;处理完请求后,容器把生成的页面反馈给客户端进行显示
第一次请求之后,Web容器可以重用已经编译好的字节码文件
注意:如果对JSP文件进行了修改,Web容器会重新对JSP文件进行翻译和编译
JSP运行环境
Web容器(如:Tomcat)提供JSP引擎,负责JSP文件的执行,提供JSP的运行时环境
在Eclipse中部署Web应用,等同于在Web容器中部署Web应用
JSP页面的访问控制
什么是会话?
一个会话就是浏览器与服务器之间的一次通话,它包含浏览器与服务器之间的多次请求、响应过程。
JSP内置对象session
Session是JSP的内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息。
Session对象用来存储有关用户会话的所有信息。
Session对象常用方法:
Void setAttribute (String key , Object value):以键/值的方式,将一个对象的值存放在session中 例:session.setAttribute(“name” , “admin”);
Object getAttribute(String key) : 根据名称去获取session中存放对象的值 String name= (String) session.getAttribute(“name”);
Inculde指令
先创建登录验证文件checklogin.jsp
<%@ page import=”s2jsp.sg.cho7.User”%>
<%
User user=(User)session.getAttribute(“logined_user”);
If(user==null)response.sendRedirect(“login.html”);
%>
在后台首页面index.jsp中使用include指令引用登录验证文件
<%@ include file=”checklogin.jsp”%>
JSP内置对象application
Application类似于系统的“全局变量”,用于实现用户之间的数据共享
Application对象的常用方法
Void setAttribute(String key, Object value) :以键/值的方式,将一个对象的值存放在application中 application。SetAttribute(“LOGINED_USER”,new ArrayList());
Object getAttribute(String key): 根据键去获取application中存放的对象的值
If(application.getAttribute(“LOGINED_USER”)!=null)
{ List loginedUsers = (List)application.getAttribute(“LOGINED_USER”); }
JSP指令和脚本元素
什么是Page指令
page指令
通过设置内部的多个属性来定义整个页面的属性
语法:<%@ page 属性1="属性值" 属性2="属性值1,属性值2"… 属性n="属性值n"%>
page指令常用属性
属性
描述
默认值
language
指定JSP页面使用的脚本语言
java
import
通过该属性来引用脚本语言中使用到的类文件
无
contentType
用来指定JSP页面所采用的编码方式
text/html,
ISO-8859-1
JSP脚本元素
JSP 脚本元素是用来嵌入Java代码的,主要用来实现页面的动态请求
JSP 脚本元素包括:
1.小脚本 2.表达式 3.声明
1.小脚本就是在JSP页面里嵌入一段Java代码
语法:<%java代码%>
什么是表达式
表达式
表达式是对数据的表示,系统将其作为一个值进行计算和显示
语法:<% = Java表达
动态网页开发基础
1、创建一个Web项目
1. 在菜单栏选择:文件 à 新建 à 项目
2. 在弹出的窗口中选择:MyEclipse à J2EE Projects à Web Project
3. 输入Web项目名称(设置为news),以及其余相关信息
2、设计Web项目的目录结构
u src文件夹:存放Java源文件
u WebRoot:Web应用的根目录
u META-INF:系统自动生成,存放系统描述信息
u WEB-INF:该目录中内容不能对外发布
u lib文件夹:存放以jar/zip形式表现的库文件
u web.xml:Web应用的初始化配置文件
3、编写Web项目的代码
1. 右键点击WebRoot à 新建 à HTML :创建一个新的HTML文件
2. 在弹出的窗口中,选择文件路径、输入文件名称
3. 填充HTML文件内容
4、部署Web项目
1. 窗口 à 首选项 à MyEclipse à Application Server à Tomcat 5:配置Tomcat
2. 点击部署图标 à 为Web项目添加web服务器 à 选择Tomcat 5 à 部署完成
5、运行Web项目
1. 点击运行图标 à 运行 Tomcat 5
2. Tomcat 5 启动服务,在控制台输出启动信息
3. 开启IE窗口à 输入正确的URLà观看运行结果
什么是URL
URL:Uniform Resource Locator
即统一资源定位系统,就是我们通常所说的网址
URL是惟一能够识别Internet上具体的计算机、目录或文件位置的命名约定
URL的组成:协议+主机IP地址+主机资源的具体地址
Web程序的调试与排错
1. 未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务
2. 未部署Web应用,就试图运行Web程序
3. 运行时,URL输入错误
4. 存放文件的目录无法对外引用,如:文件放入了WEB-INF、META-INF等文件夹
访问数据库
JDBC程序的工作原理
JDBC API:完成与数据库建立连接,执行SQL语句、处理结果
提供者:sun公司
内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
DriverManager类:依据数据库的不同,管理JDBC驱动
Connection接口:负责连接数据库并担任传送数据的任务
Statement接口:由Connection产生。负责执行SQL语句
ResultSet接口:负责保存由Statement执行后所产生的查询结果
DriverManager
提供者:sun公司
作用:载入各种不同的JDBC驱动
JDBC 驱动
提供者:数据库厂商
作用:负责连接各种不同的数据库
JDBC驱动
JDBC驱动由数据库厂商提供
1. 在个人开发与测试中,可以使用JDBC-ODBC桥连方式
2. 在生产型开发中,推荐使用纯Java驱动方式
桥连
1. 将对JDBC API的调用,转换为对另一组数据库连接API的调用
2. 优点:可以访问所有ODBC可以访问的数据库
3. 缺点:执行效率低、功能不够强大
使用JDBC-ODBC进行桥连
1、在控制面板àODBC数据源à系统DSN中配置数据源
2、编程,通过桥连方式与数据库建立连接
纯Java驱动
1. 由JDBC驱动直接访问数据库
2. 优点:100% Java,快又可跨平台
3. 缺点:访问不同的数据库需要下载专用的JDBC驱动
使用纯Java驱动方式进行直连
1、下载数据库厂商提供的驱动程序包
2、将驱动程序包引入工程中
3、编程,通过纯Java驱动方式与数据库建立连接
使用JSP处理客户端请求
Method中get和post提交方式的区别:
1、 get方式:将表单内容经过编码后,通过URL发送,使用get方式发送时有255个字符的限制。在地址栏可以看到表单提交的信息
2、 post方式:将表单的内容通过http发送,post没有字符长度的限制。在地址栏看不到表单的提交信息
表单处理的编程模式
1、 用户通过表单控件输入并提交信息
2、 JSP获得表单数据,进行逻辑处理
3、 JSP根据处理结果,转向不同的结果页面
什么是JSP内置对象
1、 JSP内置对象是Web容器创建的一组对象
2、 JSP内置对象是可以直接在JSP页面中使用的对象,无需使用“new”获取实例
3、 JSP内置对象的名称是JSP的保留字
常用内置对象有:out、request、response、session、application
Out对象用于向客户端输出数据,常用方法:out.Print();
Request对象主要用于处理客户端请求,
request对象常用方法:
方法名称
说明
String getParameter(String name)
根据页面表单组件名称获取页面提交数据
String[] getParameterValues (String name)
获取一个页面表单组件对应多个值时的用户的请求数据
void setCharacterEncoding (String charset)
指定每个请求的编码
在调用request.getParameter()之前进行设定,可以解决中文乱码问题
request.getRequestDispatcher(String path)
返回一个javax.servlet.RequestDispatcher对象,该对象的forward方法用于转发请求
式/变量 %>