第一节_基础知识
JSP概念
JSP(Java Server Page)是一种动态网页技术标准,在HTML中嵌入Java程序片段(Scriptlet)和JSP标签(tag)所构成。Tomact服务器目录
Tomact目录 | 用途 |
---|---|
/bin | 存放启动和关闭Tomact的命令文件 |
/lib | 存放所有应用程序都可以访问的JAR包 |
/conf | 存放Tomact的配置文件,如server.xml,web.xml等 |
/logs | 存放Tomact日志文件 |
/temp | 存放临时文件 |
/webapps | 存放应用程序的工程文件 |
/work | 存放JSP生成的Servlet文件和字节码文件 |
Web项目中目录
的WEB-INF目录:web.xml文件,配置文件;classes目录:存编译后的Java文件;lib目录:存Jar包。JSP程序运行机制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15服务端收到客户端的请求
if(请求HTML/XML页面){
直接将页面相应代码发给客户端
}
else if(请求JSP页面){
if(页面第一次被请求 || 页面被修改过){
1.JSP文件(.jsp)转换成servlet文件(.java)
2.编译生成字节码文件(.class)
3.执行字节码文件,并将执行结果以HTML的形式返回给客户端。
}
else{
//页面之前已执行过且未被修改
直接执行已生成的字节码文件(.class),并将执行结果以HTML的形式返回给客户端。
}
}JSP基本元素
1、声明:<%! int a; %>
,声明页面全局变量
2、表达式:<%=...%>
,将结果转成字符串形式输出到页面中
3、代码片段(Scriptlet):<% ... %>
,java代码片段
4、JSP指令(静态):<%@ xxx %>
格式<%@ page 属性1="xx" 属性2="xx"%>
,设置页面属性<%@ include file="文件名"%>
,将文件插入到当前页面中(静态插入)
5、JSP动作(动态):<jsp:xxx />
格式<jsp:include page="文件名"/>
,将文件的执行结果插入到当前页面(动态插入)<jsp:forward page="文件名"/>
,停止当前页面,转向指定HTML/JSP文件的页面(地址栏不变)<jsp:param name="变量名" value="变量值"/>
,传递参数,作为include/forward的子标签使用,在其他页面中通过request.getParameter(“变量名”)接收参数。
第二节_JSP内置对象
基本概念
JSP内置对象
JSP内置对象无需创建就可以直接使用,具体有以下几种:
1、输出输入对象:request对象、response对象、out对象
2、通信控制对象:pageContext对象、session对象、application对象
3、Servlet对象:page对象、config对象
4、错误处理对象:exception对象JSP内置对象作用域
作用域 | 说明 |
---|---|
page | 只能在当前页面中访问 |
request | 整个请求周期,从发起请求到返回响应。(期间可能forward跳转了多个页面) |
session | 整个当前会话,从打开浏览器开始,到关闭浏览器都算一个session |
application | 整个应用期,从服务器启动应用,到应用结束(对象可被所有用户共享) |
request对象
当客户端通过HTTP请求JSP页面时,服务器会自动创建request对象,并将请求信息封装进去。处理完请求后,request对象即自动销毁。
常用方法:(注意区分参数和属性)
String getParameter(String name)
:获取客户端传送给服务器的参数值(如form表单中的内容)void setAttribute(String name,Object obj)
:服务端自己设置request属性值(便于在页面间传数据)Object getAttribute(String name)
:获取相应属性值(返回Obj类型,要进行强转)传参数(parameter)的方式:客户端通过form表单(可设置get/post形式)、服务端通过include/forward动作(get形式)。但一般服务端页面间通过属性(Attribute)传信息较常用。
request还可获得客户端的IP地址、协议等信息。
response对象
服务器向客户端发数据时,自动创建response对象。response只负责设置响应的头部信息,响应体信息由其他对象设置。
重定向网页:
response.sendRedirect("xxx")
,与forward的区别:forward仅能站内跳转,重定向可跳转到任何网站;forward带request信息跳转,重定向不带request跳转。页面定时刷新/跳转:
response.setHeader("refresh","5")
,每隔5s页面自动刷新一次。response.setHeader("refresh","5;url=www.baidu,com")
,5s后自动跳转到百度页面。
session对象
会话(session)的含义:从用户第一次进入网站,到浏览器关闭期间,称为一次会话。用户第一次进入网站,服务器会生成session id标识不同用户,并将相关信息存储在浏览器,因此第二次访问(不关浏览器)还可识别出是同一用户。
session对象可用来传递信息、获取会话属性。
application对象
每个Web程序一个application,只要不关闭服务器,application对象即一直存在。用于保存应用程序中的公有数据(所有的用户共享)。可用来记录访问网站的总人数。
Post Date: 2018-02-13
版权声明: 本文为原创文章,转载请注明出处