学习记录 jsp

来源:互联网 发布:上传文件夹到linux 编辑:程序博客网 时间:2024/03/29 15:37

Jsp

用来开发动态资源。可同时加载html代码和java代码,运行在服务器中。

 

Jsp执行过程:

1.浏览器访问jsp,服务器接收请求并将jsp文件翻译为java文件(tomcat存在work目录下)。

2.服务器将java文件编译为class字节码文件。

3.服务器构造该字节码文件对象。

4.服务器调用对象中方法,返回内容到浏览器。

 

Jspservlet

Jsp继承HttpJspBaseHttpJspBase又继承HttpServlet

Jsp能做servlet能做的和不能做的。

 

语法

<%=变量或表达式%>jsp表达式:向浏览器打印变量或表达式的值。原理out.print(“”)

<%java代码%> jsp脚本:执行java代码。原理是将java代码拷贝到_jspService中执行。当中需要穿插html代码时需要先结束jsp脚本。

<%! 变量或方法%> jsp声明:声明jsp变量或方法。

 

Jsp内置对象

Jsp页面加载时自动创建的对象,方便开发者调用对象方法。共有九种。



 

session为例

不需HttpSession session = request.getSession(true);创建sess对象。

只需session.getId();直接调用get方法。

 

out对象通过getWrite方法返回printWriter对象,会先写入缓存区直到缓存区已满或缓存区刷新或关闭或jsp页面执行完毕时缓存内容向外写出。

 

pageContext对象:PageContext

获取其他八个内置对象用以在页面之间数据传输。在el表达式和自定义标签中频繁使用。

JspWriter out=pageContext.getOut();

HttpSession session=pageContext.getSession();

本身也是域对象,可以保存和读取数据。

pageContext.setAttribute(“name”,”value”,PageContext.PAGE_SCOPE);(默认)

pageContext.setAttribute(“name”,”value”,PageContext.SESSION_SCOPE);

pageContext.setAttribute(“name”,”value”,PageContext.REQUEST_SCOPE);

pageContext.setAttribute(“name”,”value”,PageContext.APPLICATION_SCOPE);

 

pageContext.getAttribute(“name”,”value”,PageContext.PAGE_SCOPE);(默认)

pageContext.getAttribute(“name”,”value”,PageContext.SESSION_SCOPE);

pageContext.getAttribute(“name”,”value”,PageContext.REQUEST_SCOPE);

pageContext.getAttribute(“name”,”value”,PageContext.APPLICATION_SCOPE);

 

page域:只能在本页中使用。

request域:只能在一个请求中使用。

Session域:只能在同一个会话中使用。

Application域:只能在同一个应用中使用。

 

pageContext.findAttribute(“name”);自动在四个域中搜索数据。

优先级page>request>session>application

 

Jsp三指令

<% include file=”uri”%>

把被包含页面翻译到包含页面中,合并翻译成java源文件,在编译运行,又称静态包含。被包含页面不需要htmlheadbody等全局html标签。另外此处uri默认项目根目录。


<%@ page %>

<%@ page

Language=”java” 服务器翻译jsp的语言

Import=”java.util.*” 导包,多个包用,隔开

pageEncoding=”utf-8” 服务器翻译jsp的编码

contentType=”text/html;charset=utf-8” 服务器响应浏览器的数据类型和编发方式,不 写会参考pageEncoding编码方式

ErrorPage 指定当前jsp页面错误处理页面

isErrorPage true是错误处理页,可exception内置对象 false不是错误处理页,不可exception内置对

> 象。在web.xml中可配置全局错误处理页。

 

<%@ taglib uri=”uri” prefix=”prefixOfTag”>

 

EL表达式

可以替换掉jsp表达式,用以向浏览器输出域对象中的变量值和表达式的结果

语法:${变量或表达式}

可是从四个域(pageScope/requestScope/sessionScope/applicationScope)中获取${name}

也可以指定域${pageScope.name}

EL表达式

${1+2}

${1>2}

${1>2&&1<2}

${1>2||1<2}

${empty name} null或空字符串都可以判断

0 0
原创粉丝点击