1、page标签:设置jsp转译时的一些配置信息。
2、局部代码块:
声明方式:<% java代码 %>
特点:使用局部代码块声明的java代码会被原样转译到_jspServlet方法 中。是局部代码。
3、全局代码块:
声明方式:<%! 全局java代码%>
特点:全局代码块中声明的java代码,在被转译时,会转译成jsp对应的 java文件中的全局代码。
作用:声明方法和全局变量等。
注意:使用全局代码块声明方法,使用局部代码块调用方法。
4、java脚本段、表达式
声明方式: <%= 变量名或者方法名()%>
作用:将java代码的运算结果或者其他数据响应给浏览器
注意:不能使用分号结尾。
5、注释:
HTML注释:会被转译也会响应给浏览器,但是浏览器不会执行。
CSS注释:会被转译也会响应给浏览器,但是浏览器不会执行。
JS注释:会被转译也会响应给浏览器,但是浏览器不会执行。
java注释:会被转译,但不会被执行。
jsp注释:不会被转译也不会被执行。
6、jsp之间的资源转发:forward
问题:
不同的jsp在处理请求时,有可能会将当前的请求转发给另外的jsp 进行处理。
解决:
使用forward动作指令
使用:
<jsp:forward page="要转发的jsp相对路径"></jsp:forward>
特点:
从当前jsp跳转到另外一个jsp页面
注意:
forward标签中除了<jsp:param value="" name=""/>字标签
不能出现其他内容,否则报错。
7、jsp的内置对象的学习
内置对象:jsp在转译成其对应的java文件(也就是servlet)时,会默认在_jspService方法中声明创建几个对象。
特点:可以在jsp页面中声明java局部代码块,在代码块中直接使用内置对象。
对象:
pageContext:页面上下文对象,此对象封存了另外8个对象。
注意:一个jsp页面一个pageContext对象。pageContext对象每次请求都会重新创建。
作用域:当前jsp页面。
request:封存了请求相关数据,由服务器创建。
session:解决了同一个对象不同请求之间的数据共享问题。
application:是ServletContext对象,解决了不同用户之间的数据共享问题。
out:相应数据对象,较于response对象,out对象底层使用了缓冲区。out对象的效率高于response。
response:响应对象,设置编码格式。
page:代表当前被执行的jsp转译的java文件的对象。
config:ServletConfig对象,使用此对象完成资源的初始化。
exception:jsp页面的异常对象,封存了异常信息。
注意:对象的名字必须是转译好的java文件中声明的对象名。
8、请求转发和重定向的绝对路径
请求转发:第一个/ 表示项目根目录。req.getRequestDispatcher(“/user/main.jsp”).forward(req,resp);
重定向:第一个 / 表示服务器根目录。resp.sendRedirect(“/jsp/user/main.jsp”);
9、jsp中的绝对路径
<a href=”/虚拟项目名/资源路径”>
注意:在MyEclipse中创建的jsp页面会自动生成路径处理代码basePath,
而basePath的值为当前项目根目录,并且在head标签中使用了<base href=”<%=basePath%>”>,相当于将当前页面的资源全部默认定位为从项目根目录开始查找,就不需要写项目根目录了。
basePath方式和添加/方式只能二选一。