JSP知识点总结

JSP(java server pages):

1.jsp页面与jsp标记

一个jsp页面可由5中元素组合而成:

  • 普通的HTML标记。
  • jsp标记,如指令标记,动作标记。
  • 变量和方法声明。
  • java程序片。
  • java表达式。

    当服务器上的一个jsp页面第一次请求执行时,服务器的jsp引擎首先将jsp文件转换成一个java文件,然后再将这个java文件编译生成字节码文件,然后通过执行字节码文件响应客户的请求,其执行原理是:
    1).把jsp页面的普通HTML标记交给用户的浏览器执行显示。
    2).jsp 标记,数据和方法声明,java程序片由服务器负责执行,将需要显示的结果发送给用户的浏览器。
    3).java表达式由服务器负责计算,并将结果转换为字符串,然后交给用户的浏览器负责显示。

    1.1.0声明变量:
    在“<%! %>”标记符之间声明变量,可以在这个标记之间放置java变量的声明语句,包括java的允许的任何数据类型,在“<%! %>”之间声明的变量称为jsp页面的成员变量。如:
    <%!
    int x,y=10;
    String name=”tom”;
    Date date;
    %>
    1.1.1声明方法:
    在“<%! %>”标记符之间还可以声明方法,该方法在整个jsp页面有效,与这个标记符放置的位置无关。

    2.1 java程序片
    1)操作jsp页面的成员变量:
    java程序片中操作的成员变量都是各个线程共享的变量,任何一个线程对该变量的修改的结果都会影响其他线程。
    2)调用jsp页面的方法
    java程序片中可以出现方法调用语句,该方法必须是jsp页面的方法(在“<%! %>”之间声明的方法)。
    3)声明操作局部变量
    当一个线程享用CPU资源时,jsp引擎会让该线程执行java程序片,这是java程序片中的局部变量就会被分配空间,当轮到下一个线程享用CPU资源的时候,jsp引擎会再次为该变量分配内存空间,也就是说,java程序片中的局部变量不被其他线程共享,对该变量的修改不会影响其他线程。

    2.2表达式
    可以在“<%= %>”之间插入一个表达式,例如“<%= x+y %>”,但是不可以在这个标记之间插入语句,这是错误的,例如:“<%= x5; %>”,特别需要注意的时”<”和“=”之间没有空格。

    2.3jsp中的注释
    在标记符”<%–”和“–%>”之间加入注释内容。

    2.4 jsp指令标记
    page指令
    page指令用来定义整个jsp页面的一些属性和这些属性的值,page指令标记可以指定如下属性的值:
    contentType,import,language,session,buffer,autoFlush,isThreadSafe,pageEncoding
    以常用的contentType,import为例:
    <% page contentType=”text/html;charset=UTF-8” %>
    <% page import=”java.util.*” %>
    contentType属性值确定jsp页面响应的MIME类型和jsp页面的字符的编码,import属性值作用是引入该jsp页面要使用的类包。

    2.5include指令标记

    如果需要在jsp页面插入一个整体文件,可以使用下面的语法:
    <% @ include file=”文件URL”%>

    2.6 jsp动作标记
    1)include动作标记
    语法格式:
    “< jsp: include page=”文件的URL”/>”

    “< jsp: include page=”文件的URL”>
    param 字标记
    < / jsp:include>”
    2)param动作标记
    param标记以“名字-值”对的形式为其他标记语言提供附加信息,这个标记与jsp:include、jsp:forward、jsp:plugin标记一起使用,不能单独使用。
    param动作标记:
    < jsp :param name=”属性名字” value=”属性的值” / >
    2).forward动作标记
    语法格式:
    < jsp : forward page=”要转向的页面” />
    该指令的作用是:当jsp程序执行到此处的时候会转向该指令指向的页面,但是浏览器不会显示转向页面的地址,还是之间的URL

2.JSP内置对象
1)request对象
HTTP协议是用户与服务器之间一种请求与响应(request/response)的通信协议在jsp页面中,内置对象request封装了用户请求页面的信息,那么该对象调用相应的方法可以获取封装的信息。
2)response对象
与request对象对应的,response对象封装了服务器对客户的响应数据。
response的HTTP文件头:
response对象可以使用方法addHeader(String head,String value)或方法setHeader(String head,String value)来动态添加和响应头和头信息的值。
response重定向:可以使用response对象的sendRedirect(URL url)方法来实现用户的重定向。
3)session对象
当用户首次访问一个web服务器的时候,jsp引擎会为其产生一个session对象,该对象中存在一个String类型的ID号,会返回给用户浏览器中的Cookie中,这样session对象就和用户建立了一一对应的关系。直到关闭该服务器这个对象达到了最大生存时间才会被销毁。
4)session对象与URL重写
当浏览器不支持cookie时可以通过URL重写实现各个页面之间信息的传递,使用response对象的encodeURL()或者encodeRedirectURL()方法来实现URL重写,比如:String str=response.encodeURL(“1.jsp”);然后直接将连接目标写成<%=str%>即可。
5)out对象是一个输出流,用来向用户输出数据
6)application对象:与session对象不同,该对象在启动服务器之后用户使用的都是同一个application对象,直到服务器关闭,该对象才会被销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值