Jsp背记文档
Jsp工程目录结构
- \src 源代码目录:放置所有java源文件
- \webroot 目录:网页根目录放置
- \WEB-INF目录:放置一些配置信息
- \WEB-INF\classess 目录:放java文件编译后的class文件
- \WEB-INF\lib 目录:放需要使用的jar文件
JSP 页面元素
Jsp常见指令
Page指令
<%@ page pageEncoding=”gbk” %> |
<%@ page import=”java.sql.*” %> |
<%@ page contentType=”text/html; chareset=gbk”%> |
<%@ page errorPage=”error.jsp” %> //可能会出错的页面 <%@ page isErrorPage=”true” %> //显示错误的error.jsp页面 exception.getMessage() //得到错误的主要信息 |
<%@ page contentType=”application/msword; charset=gbk” %>//设置页面类型为doc类型 <% response.setHeader(“content-Disposition”,”attachement; filename=mldn.doc”);%> |
Include指令------>静态包含(编译的时候就包含了)
主要用于设置导航与页脚这种每个网页都具有的内容,
include指令可以设置在页面的任何位置
文件可以是JSP网页,Html网页,文本或是java程序
<%@ include file=”top.jsp” %> //top.jsp是嵌入的网页 |
<jsp:forward>指令
实现网页跳转
- 无参跳转
<jsp:forward page=”a.jsp”/> |
- 带参跳转
<jsp:forward page=”b.jsp”> <jsp:param name=”p1” value=”001”/> <jsp:param name=”p2” value=”002”/> </jsp:forward>
String v1=request.getParameter(“p1”); String v2=request.getParameter(“p2”); Out.println(v1+”<br>”+v2); |
Taglib指令
taglib指令其作用是让用户在网页中使用自定义的新标签
其属性有两个:
-
-
- uri 指定要使用的自定义标签存放的位置
- prefix 为该标签声明别名,用于使用和区分
-
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> |
JSP元素-动作
常用的JSP标准动作根据功能分为两类
用于操作JavaBean
- <jsp:useBean>---->相当于java中的创建对象
- <jsp:setProperty>------>相当于java中的set方法
- <jsp:getProperty>-------->相当于java中的get方法
<!-- useBean:首先会从作用域中取对象,如果取不到,会自己创建一个对象,同时放到作用域中 --> <jsp:useBean id="stu1" scope="session" class="po.Student" ></jsp:useBean> <!-- 设置属性的值 表单中的name属性和javaBean中的属性名一致--> <jsp:setProperty name="stu1" property="id" value="1" /> <jsp:setProperty name="stu1" property="uname" value="aaaa"/> <jsp:setProperty name="stu1" property="upwd" value="123"/> <!-- 获取属性值 --> ID: <jsp:getProperty name="stu1" property="id"/><br> uname: <jsp:getProperty name="stu1" property="uname"/><br> upwd: <jsp:getProperty name="stu1" property="upwd"/><br> |
用于页面显示
- <jsp:include> --->动态包含(运行时)可以传参数
类似include指令,不同之处在于资源的url可以是静态表示也可以为通过计算获得的动态url;
<jsp:include>的属性:
page指定一个要包含资源的相对url
flush设置是否自动清空缓冲区,默认为false
- <jsp:forward> -->用于页面转发
用于页面转发,需要注意的是该元素的转发效果是即时生效的,意味标签之后的程序将不会被执行
<jsp:forward>的属性:
page指定转发的目标资源所在的url
- <jsp:param> 包含在前两个标签中-->用于传递参数
<jsp:param>包含在<jsp:include>与<jsp:forward>标签主体中,用于传递参数给资源
name设置参数名称
value设置参数值
<jsp:include page="footer.jsp"> <jsp:param name="id" value="123"/> <jsp:param name="name" value="laoa"/> </jsp:include>
${param.id }${param.name } |
Jsp常见内置对象
Jsp共有以下9种基本内置对象
一般JSP程序员习惯性将request,session,application和pageContext归为作用域对象
四个对象都拥有setAttribute()与getAttribute()方法,用于存放和获取对象中的数据
- Request -->用户端请求,此请求包含来自GET/POST请求的参数
- Response -->网页传回用户端的回应
- Out -->用来传送回应的输出
- Session -->与请求有关的会话期
- Application -->servlet正在执行的内容
- pageContext -->网页的属性是在这里管理
- Page -->jsp网页本身
- Config -->servlet的构架部件
- Exeption -->针对错误网页,会记录相关的错误的信息
- exception对象和Java的Exception对象是一样的
- 只有page指令的isErrorPage属性被设置为true才可以使用exception对象
隐式对象与Servlet中的对象作对比
- rquest作用相当于javax.servlet.http.HttpServletRquest
- response作用相当于javax.servlet.http.HttpServletResponse
- out作用相当于Servlet中response.getWriter()后的PrintWriter
- session作用相当于javax.servlet.http.HttpSession
- application作用相当于javax.servlet.ServletContext
- pageContext比较特殊,本质是javax.servlet.jsp.PageContext,除可以在当前页面保存数据外,事实上所有的隐式对象都可以通过pageContext获取
- page作用相当于尚未指定具体类型的java.lang.Object
- config作用相当于javax.servlet.ServletConfig
- exception作用相当于java.lang.Exception
Expression Language=EL表达式
语法:${表达式} ,相当于jsp1.2表达式语言<%= 表达式 %>
表达式:任何常量、变量、运算表达式
EL变量搜索顺序
搜索顺序:pageContext-request-session-application
EL表达式运算符