|
第89次(JSP)
学习主题:JSP
学习目标:
1 掌握 JSP访问原理
2 掌握JSP引擎
3 掌握JSP指令
对应视频:
http://www.itbaizhan.cn/course/id/85.html
对应作业
JSP全名为Java Server Pages,中文名java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导,许多公司参加与一起建立的一种动态网页技术标准.
浏览器发起请求,请求JSP,请求被Tomcat服务器接收,执行JSPServlet将请求的JSP文件转义为对应的java文件(也是Servlet),然后执行转义好的java文件.
JspServlet:jsp引擎.
把要访问的jsp文件,编译成java文件.
Jsp中可以执行 java,HTML,scc,js多种语言,当编写java代码时会被原样输出,其他语言会通过JSPServlet引擎加工后在执行.

<%@page language=&#34;java&#34; %><%--声明转义的语言 --%>
<%@page session=&#34;true&#34; %><%--设置是否开启session对象 --%>
<%@page import=&#34;java.util.*,java.lang.*&#34; %><%--声明转译时导入的java包文件--%>
<%@page pageEncoding=&#39;utf-8&#39; %><%--设置jsp的数据保存的编码格式 --%>
<%@page contentType=&#34;text/html; charset=utf-8&#34; %><%--设置数据相应的编码格式 --%>
<%@page isErrorPage=&#34;false&#34; %><%--默认为false true表示开启Exception异常对象的使用--%>
<%@page errorPage=&#34;index.jsp&#34; %><%--页面发生错误时转向的页面--%>
Page指令的作用:设置jsp转译的时候的一些配置信息.
<%@page session=&#34;true&#34; %><%--设置是否开启session对象 --%>
设置是否开启session对象
<%!
全部代码
%>
<%
局部代码
%>
<%=add() %> 脚本段语句 这里输出add()的返回值
全局和局部以是否有!(感叹号)区分
局部代码声明是在_jspService方法中声明,所以不可以声明方法,而且声明的变量也只能在局部代码块中使用.
全局代码块.相当于在当前jsp对应的java文件中类中声明的,可以声明变量和方法,声明的变量为全局变量.方法必须在局部代码块中调用才能有作用.
第90次(JSP)
学习主题:JSP
学习目标:
1 掌握JSP注释
2掌握JSP引入
3 掌握JSP内置对象
4 掌握JSP四大作用域
5 掌握servlet和jsp中的路径问题
对应作业
HTML注释:会被转译也会被响应给浏览器,但不会被浏览器执行.
CSS注释: 会被转译也会被响应给浏览器,但不会被浏览器执行.
JS注释: 会被转译也会被响应给浏览器,但不会被浏览器执行.
Java注释:会被转译,但不会执行
- jsp的注释<%-- --%>的特点是什么
格式:<%-- 注释内容 --%> 内容不会被转移,更不会被执行.
<!-- 静态引入.-->
<%@include file=&#34;index.jsp&#34; %>
<%--动态引入 --%>
<jsp:include page=&#34;index.jsp&#34;></jsp:include>
静态引入:
- 会将两个jsp合拼成一个效率相对较高
- 因为会合拼成一个jsp,所以不要再两个jsp中声明同名的变量否则会报错
动态引入:
- 两个jsp各级会生成独立的java文件,不必担心变量名重复问题
- 效率可能会低于静态引入
作用:减少了代码的冗余.实现资源的共享
<jsp:forward page=&#34;text.jsp&#34;>
<jsp:param value=&#34;12321312&#34; name=&#34;uname&#34;/>
</jsp:forward>
作用:从一个jsp页面跳转到另一个jsp页面
特别注意:标签中除了<jsp:param>标签(用于传递数据),不允许出现任何内容,甚至空格.
<!-- 9个对象的使用 这9个对象为内置对象可以直接使用-->
<!-- pageContext:页面上下文对象,此对象封存了下面的8个对象.
注意:一个jsp页面一个pageContext对象,pageContext对象每次请求都会重新创建.
作用域:当前jsp页面
session:解决了同一个用户请求之间的数据共享问题.
application:ServletContext对象,解决了不同用户之间的数据共享问题
config:ServletConfig对象,使用此对象完成资源的初始化.
out:响应数据的对象,较于response对象,out对象底层使用了缓冲区,out对象的效率高于response
page:代表当前被执行的jsp专业的java文件的对象
request:封存了请求相关数据,由服务器创建
response:响应对象,设置编码格式.
PageContext 作用域最小, 当前jsp页面
Request 一次请求.
Session: 一个会话(一个用户)
Application:不同用户
Jsp:负责页面展示
Servlet:负责逻辑处理
- servlet请求转发和重定向jsp页面以及相对路径讲解
一定要搞清楚项目所存在的路径.
分清项目根目录和服务器更目录
当servlet的别名是一个目录时,相对路径就会发生错误.
在重定向中 第一个斜杠”/” ---服务器根目录(如下)
这里这是到达了 webapps 服务器根目录下

请求转发中第一个斜杠”/” ---项目根目录(这里用text项目举例)
这里到达了 text项目根目录下

这两句到达的位置一样.
//重定向转发
resp.sendRedirect(&#34;/text/index.jsp&#34;);
//请求转发
req.getRequestDispatcher(&#34;/index.jsp&#34;).forward(req, resp);
相对路径(当这里设置的为对个斜杠时,相对路径就会报错)

相对路径

第一个斜杠代表:服务器根目录
BasePath:当前项目的根目录.

basePath:存储的是当前项目下的根目录
<base href=”<%=basePath>”>:
相当于将当前页面的词源默认定位从项目根目录开始查找.我们就不需要在从服务器根目录开始写目录了(不用写”/”) |
|