什么是JSP
JSP (Java Server Pages)是指:
**在HTML中嵌入Java脚本代码,由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本代码,
然后将生成的整个页面信息返回给客户端。**
JSP由静态部分和动态部分组成。
动态部分:
- 小脚本
<% %>
- 表达式
<%= %>
- 声明
<%! %>
- 注释
<!-- 客户端注释 -->
<%-- 服务器端的注释 --%>
- 指令
<%@ %>
创建jsp工程步骤
- File->New->Dynamic Web Project
- 创建好工程后会有一个src目录,里面用来存放我们的.java文件,
- 另外一个是WebContent或者是WebRoot,我们所有的图片、音频、视频、html、css、js等(即除java代码外)都必须放到这个目录下
- 我们需要导入的外部包,需要放到WebContent|WebRoot->WEB-INF/lib文件夹中
JSP页面的执行流程
当第一次访问jsp页面的时候,先由服务器(jsp引擎)将jsp页面翻译成xxjsp.java,然后编译成.class文件,然后执行。当再访问时,会重用以前编译好的jsp.class文件,并且这些文件都存放在tomcat的work/Catalina/localhost/<项目名>/org/apache/jsp/目录下(tomcat为例),最后执行jsp.class文件,并将结果返回给客户端。当jsp页面发生修改时,会自动重新翻译、编译。
JSP内置对象
- out(输出流):服务器到客户端。
- session(会话):浏览器成功连接到服务器到离开服务器。
- application:服务器启动到服务器关闭。(如:统计在线人数)
- request(请求):浏览器向服务器发送的信息。
- response(响应):服务器会送浏览器给的信息。
request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。
Response对象:对客户的请求做出动态的响应,向客户端发送数据。
Session对象:
- Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
- 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
- 当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。
Application对象:负责提供应用程序在服务器中运行时的一些全局信息。
服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都时同一个,直到服务器关闭。但是与Session对象不同的时,所有客户的Application对象都时同一个,即所有客户共享这个内置的Application对象。
注:Web服务器不记录用户的状态。应答模式,不能一直在线,一连接就断
重定向与内部转发
重定向
- 会发送两次请求
- 地址栏会发生变化
- 可以访问服务器以外的资源
- 不可以访问WB-INF下的资源
- 不能获取上一次请求的信息
客户端请求服务器的一个资源1并响应,客户端请求另一个资源2,资源2响应给客户端 地址栏显示为资源2的url
内部转发
- 只会发送一次请求
- 地址栏不会变化
- 访问在同一个服务器的资源,不能访问服务器以外的资源
- 可以访问WEB-INF下的资源
- 能获取上一次的请求的信息
客户端请求服务器的一个资源1,资源1找到资源2,响应给客户端,地址栏为资源1的url
其他知识
Tomcat的主要目录
- bin:存放二进制文件或可执行文件
- conf:有关tomcat的一些配置文件
- lib:支撑包或依赖包
- logs:日志文件目录
- temp:临时文件目录
- webapps(web applications):web应用程序目录
- work:存放一些转译、编译过来的文件
**注意:修改配置文件后,一定要记得重启服务器。
修改默认访问的资源页面可以在conf->web.xml中最下面的中修改
修改端口号在conf->server.xml中的 Connector的port属性的值**
URL(Uniform Resource Locator):统一资源定位符
由三部分组成:
- 协议。常用的有http:// https:// ftp:// file:///
- 主机IP和端口号,如果端口号是80则可用省略。IP地址是用来查找主机的,而端口号是用来找应用程序的。
- 为资源地址,默认访问的是index.XX。如:index.html index.jsp index.htm