jsp学习笔记一

阅读更多

JSP脚本表达式(expression)
语法:<%= 变量或表达式 %> 表达式后面不能有分号(;)。
Jsp声明中的java代码被翻译到_jspService方法的外面。
<%!
java代码
%>
JSP注释的格式:
<%-- 注释信息 --%>
JSP隐式对象的作用范围仅限于Servlet的_jspService方法


JSP指令
page指令
Include指令
taglib指令
<%@ 指令 属性名="值" %>
例如:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date"%>
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ] 导包
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ] 隐式对象out的大小
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ] 是不继承singleThreadModel
[ info="text" ]
[ errorPage="relative_url" ] 必须使用相对路径 可以在web.xml文件中使用元素为整个WEB应用程序设置错误 处理页面,其中的 子元素指定异常类的完全限定名,元素指定以“/”开头的错误处理页面的路径。
[ isErrorPage="true | false" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ pageEncoding="characterSet | ISO-8859-1" ]
[ isELIgnored="true | false" ] 是不支持el表达示
%>
使用page指令解决JSP中文乱码
page指令的pageEncoding属性说明JSP源文件的字符集编码
include指令 静态引入 被引入的文件的扩展名 .jspf(JSP fragments)
<%@ include file="relativeURL"%>
九大隐式对象
request
response
config
application
exception
Session
page
out
pageContext


用JSP实现文件下载
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="java.io.File"%><%@page import="java.io.FileInputStream"%><%@page import="java.net.URLEncoder"%><%
String path = application.getRealPath("/download/1.txt");
File file = new File(path);

response.setContentType("application/octet-stream");
response.setHeader("content-disposition","attachment;filename=" + URLEncoder.encode(file.getName(),"UTF-8"));

FileInputStream in = new FileInputStream(file);
byte buffer[] = new byte[1024];
int len = 0;
while((len=in.read(buffer))>0){
response.getOutputStream().write(buffer,0,len);
}

%>


pageContext 封装了对其它8大隐式对象的引用
pageContext对象中还封装了访问其它域的方法
request.setAttribute("name","request");
name = (String)pageContext.getAttribute("name",PageContext.REQUEST_SCOPE);
findAttribute方法 查找顺序 pageContext request session application


pageContext(称之为page域) jsp执行时创建,jsp结束时销毁
request(称之为request域) 请求时创建,请求结束后销毁
session(称之为session域) servlet getSession 服务器创建, 可以设置session的失效时间,服务器销毁
servletContext(称之为application域) web应用启动时创建.web停止就销毁




PageContext类中定义了一个forward方法和两个include方法来分别简化和替代RequestDispatcher.forward方法和include方法

你可能感兴趣的:(jsp)