[关闭]
@Ablechen 2019-07-07T02:35:41.000000Z 字数 4523 阅读 727

JSP基础知识


  1. jsp: java server pages
    在HTML中嵌套Java代码,和jsp标签实现动态网页
  2. 主要用于用户的界面显示
  3. 将servlet中的显示和逻辑分离开
  4. jsp页面的生命周期

语法知识

  1. 注释
    客户端注释<!-- -->
    这种注释是可以在客户端通过检查源码看到的,是HTML注释
    服务器端注释
    <%-- jsp页面注释-->
  2. JSP的声明
    <%! 声明代码 %>
    <%! int a = 100, b = 200; %>
  3. JSP的代码段
    <% %>代码段全部都写在这个标签内部
    和Java的要求几乎一摸一样,其中也可以在代码块中进行变量的声明,具有<%! %>的功能
  4. JSP的表达式
    <%= 表达式或者变量%>


    30*1254=<%= 30*1254 %>
    <%! int a = 5; %>
    i的值为<%= i%>

JSP编译指令

编译指令主要用来设定JSP程序的属性
9. page指令
针对当前页面,设置其相关的属性和功能

<%@page attribute1="value1" attribute2="value2" %>

这里需要注意的是在设置属性的值的时候,两个属性之间是空格

进行多个包的导入的时候,要分别导入,分别对import属性进行赋值
也可以将所有的包放在一个import的后面,但是不好看,推荐使用第一种

jsp的七种标准动作标签

jsp的九大内置对象

对象是在<% %>代码块中进行使用的

out对象

out是一个javax.servlet.jsp.JspWriter对象,是一个带有缓冲的流,主要的作用是从服务器端向客户端发送字符串。其中的缓冲的大小可以通过page指令中的buffer进行设定。
主要使用的方法
1. println()
2. print()和java中的作用一样
3. getBufferSize()返回缓冲区的大小(使用buffer进行设置缓冲的大小的时候格式 buffer="mkb"

request对象

用于获取客户端对象的信息和传递的参数,是javax.servlet.HttpServletRequst接口的实现类,在完成一次请求之后,request对象被销毁,即request只在一次请求中有效。

Rsponse对象

response对象是一个javax.servlet.HttpServletResponse接口的实现对象,用于封装对客户端的响应,向客户端发送信息。
经常用于设置HTTP标题,添加cookie,发送http重定向,编码URL
经常使用的几种重要方法

Session对象

为了在一次响应之后还能够继续保存该客户端的相关信息,所以产生了session对象
javax.servlet.http.HttpSession接口的实现类
默认情况下,一个浏览器会独占一个session对象
- getId():用于得到session的ID,每一个session都有一个独一无二的sessionID
- getMaxInactiveInterval():获得session的有效时间
- setMaxInactiveInterval(): 设置session的有效时间
- getServletContext(): 返回该JSP页面所对应的ServletContext对象实例

Application对象

此对象是javax.servlet.ServletContext接口的实现类,用于多个用户共享数据
作用范围是从服务器开始到服务器结束
主要使用到的一些方法
- getInitParameter(String name): 获得初始化中的指定属性的值
- getInitParameters(): 返回所有的初始化的值的集合(Enumeration对象)
- getRealPath(): 返回虚拟路径所对应的物理路径
- getContext(): 返回当前应用ServletContext的对象

Page对象

代表JSP本身,只有在JSP页面之内有效,很少使用

pageContext对象

用于获取其他的内置对象:request, response, session, application等

对于内置对象属性的读取和写入
- getAttribute(String name, int scope): 返回指定名称name, 范围是scope的属性对象
- getAttributeNamesInScope(int scope):返回所有属性范围为scope的属性名称
- setAttribute(String name, Object value, int scope): 指定属性的名称为name, 值为value, 范围为scope

```jsp
Enumeration enum = pageContext.getAttibuteNamesInScope(PageContext.APPLICATION)
while(enum.hasMoreElements())
    out.println(enum.nextElement());

config对象

作用获取服务器的配置信息,实现了javax.servlet.ServletConfig接口
一般使用pageContext的getServletConfig()来获取该对象

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注