文章目录

  • ​​三大指令​​
  • ​​page指令​​
  • ​​include指令​​
  • ​​taglib指令(引入第三方标签库)​​
  • ​​七大动作​​
  • ​​jsp:include 动态包含(分别编译):​​
  • ​​jsp:useBean动作(jsp页面使用javaBean的第二种方式):​​
  • ​​jsp:getProperty动作(name为useBean动作中的id).​​
  • ​​jsp:setProperty动作(name为useBean动作中的id):​​
  • ​​jsp:param动作(传递参数)):​​
  • ​​jsp:forward动作:​​
  • ​​jsp:plugin动作:​​
  • ​​九大对象​​
  • ​​out​​
  • ​​request​​
  • ​​response​​
  • ​​session会话对象​​
  • ​​application对象​​
  • ​​page对象​​
  • ​​exception:代表运行时的异常.​​
  • ​​pageContext对象​​
  • ​​config​​

三大指令

page指令

  1. 指定页面编码
    例:​​​<%@ page language="java" contentType="text/html;charset=gbk" pageEncoding="gbk" %>​
  2. 导入包
    例:​​​<%@ page import="java.util.*,java.text.*" %>​

include指令

静态包含(统一编译):​​<%@ include file="被包含的jsp文件路径" %>​

taglib指令(引入第三方标签库)

例:​​<%@ taglib prefix="标签库别名" url="标签库的URL" %>​

ps:JSP中的静态包含与动态包含

动态include(​​<jsp: include page="included.jsp"/>​​​)
静态include(​​​<%@ include file="included.jsp"%>​​)

  1. 静态include的结果是把其他jsp引入当前jsp,两者合为一体,可以达到数据的共享即可以说是统一编译的,而
    动态include的结构是两者独立的,直到输出时才合并即为分别编译的.
  2. 动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都由自己创建,而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能 有变量同名的冲突.而页面设置也可以借用主文件的.
  3. 动态包含总是检查被包含页面的变化,静态包含不一定检查被包含页面的变化.
  4. 动态包含可带参数,静态包含不能带参数.如(​​<jsp: include page="included.jsp">放入参数</jsp:include>​​);

七大动作

jsp:include 动态包含(分别编译):

在页面被请求的时候引入一个文件
用jsp:include动作实现​​​<jsp: include page="included.jsp" flush="true" />​​ 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。flush属性: 用true ,表示页面可刷新。默认为false;

jsp:useBean动作(jsp页面使用javaBean的第二种方式):

寻找或者实例化一个 JavaBean

<jsp:useBean id="对象名" class="包名.类名" scope="作用范围(request/page/application/session)"/>

作用域默认为page(本页面有效).

jsp:getProperty动作(name为useBean动作中的id).

输出某个 JavaBean 的属性。
从对象中取出属性值:​​​<jsp:getProperty name="javaBean对象" property="javaBean对象属性名" />​

jsp:setProperty动作(name为useBean动作中的id):

为对象设置属性值:​​<jsp:setProperty name="javaBean对象" property="javaBean对象属性名" value=http://www.hake.cc/kf/201109/"值"/>​​​ 为对象设置属性值:​​<jsp:setProperty property="javaBean对象属性名" name="javaBean对象" param="username"/>​​ (​​param="username"​​ 相当于 ​​value=http://www.hake.cc/kf/201109/<%=request.getParameter("username")%>​​)

jsp:param动作(传递参数)):

到达跳转页面可以通过 request.getParameter(“参数名”)方式取出参数值
<jsp:include page="转向页面的url" >
<jsp:param name="参数名1" value=http://www.hake.cc/kf/201109/"参数值1">

<jsp:param name="参数名2" value=http://www.hake.cc/kf/201109/"参数值2">
...........
</jsp:include>

或:

<jsp:forward page="转向页面的url" >
<jsp:param name="参数名1" value=http://www.hake.cc/kf/201109/"参数值1">
<jsp:param name="参数名2" value=http://www.hake.cc/kf/201109/"参数值2">
...........
</jsp:forward>

jsp:forward动作:

把请求转到一个新的页面
跳转页面:<jsp:forward page=“login.jsp” />

jsp:plugin动作:jsp:plugin

用于指定在客户端运行的插件
根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记

九大对象

out

输出流对象
向客户端输出数据,字节流.如out.print(" dgaweyr");

request

接收客户端的http请求.
隐藏对象request代表客户端的请求。request包含客户端的信息以及请求的信息,如请求那个文件,附带的地址参数等。每次客户端的请求都会产生一个request实例。request对象的常用方法如下:

String getParameter(String name):得到表单参数名name的值.
String[] getParameterValues(String name):(得到String[]复选框时常用).
setAttribute(String name,Object obj):设置属性名为name,属性值为obj.
getAttribute(String name);得到属性值.

response

隐藏对象response代表客户端的响应。服务器端的任何输出都通过response对象发送到客户端浏览器。每次服务器端都会响应一个response实例。response对象的常用方法如下:

addCookie(Cookie cookie):添加Cookie
sendRedirect("/wel.jsp"):跳转到指定页面

session会话对象

session与cookie是记录客户访问信息的两种机制,session是用于服务器端保存用户信息,跟踪用户行为,当前打开的浏览器内,多个页面共享数据。cookie用于在客户端保存用户信息。Servlet中通过request.getSession()来获取session对象,而JSP中可以直接使用。如果JSP中配置了​​<%@page session=”false”%>​​,则隐藏对象session不可用。每个用户对应一个session对象。

session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止.它是HttpSession类的实例。session对象的常用方法如下:

setAttribute(String name,Object obj):设置属性名为name,属性值为obj.
getAttribute(String name):得到属性值.

application对象

实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问.服务器的启动和关闭决定了application对象的生命.它是ServletContext类的实例.

session,application,request的区别:
一个项目中session尽量少用,因为过多的session会影响程序的执行效率.它主要用于保存登录信息(用户信息,权限,资源)即频繁使用的信息.
application: 用于多个浏览器之间共享数据,多个用户共享该对象,可以做计数器.它的用法与session完全一样.
数据范围:
application(服务器关闭时失效)>session(浏览器关闭时失效)>request(只能用于两个跳转页面之间)

page对象

page对象代表jsp这个实体本身,即当前页面有效.相当于Java中的this.
数据范围:page<session<application

exception:代表运行时的异常.

在会发生异常的页面加入指令:​​<%@ page errorPage="处理错误的页面.jsp"%>​​​ 在处理异常的页面写入:​​<%@ page isErrorPage="true"%>​

pageContext对象

pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext.

config

ServletConfig封装了配置在web.xml中初始化JSP的参数。JSP中通过config获取这些参数。每个JSP文件中共有一个config对象。