JSP小知识
JSP小知识
一、基础知识
1、简介
JSP(Java Server Pages),JSP运行先转换为Servlet文件(.java)编译class文件,JSP相当于一个Servlet
2、page指令
(1)pageEncoding ---- 指定页面编码格式
(2)contentType --- 文档类型
- HTML 格式 ----- text/html
- 纯文本格式 ----- text/plain
- JPG图像 ----- image/jpeg
- GIF图像 ----- image/gif
- Word文档 ----- application/msword
(3)errorPage : 指定错误页面
(4)isErrorPage: 是否为错误页面,错误页面JSP内置Exception对象的exception
(5)language: 解析该jsp文件采用的语言
(6)session: JSP内内置Session对象,默认true
3、pageContext作用范围
(1)PageContext.PAGE_SCOPE:表示页面范围
(2)PageContext.REQUEST_SCOPE:表示请求范围
(3)PageContext.SESSION_SCOPE:表示会话范围
(4)PageContext.APPLICATION_SCOPE:表示Web应用程序范围
4、基本组件
(1)request----用户端请求,包含GET/POST请求的参数
(2)response ---- 网页传回用户端的回应
(3)pageContext ---- 网页的属性
(4)session ---- 与请求有关的会话期
(5)application ---- servlet正在执行的内容,一个web项目共享
(6)page ---- JSP网页本身
5、语法
(1)隐藏注释: <%-- --%>
(2)声明: <%! declaration;[declaration;]+…%>
(3)表达式: <%= expression%>
6、标签
(1)<jsp:forward>
:重定向
(2)<jsp:include>
:包含文件
(3)<jsp:useBean>
:创建一个Bean实例并指定名字和作用范围
(4)<jsp:setProperty>
:设置Bean中的属性值
(5)<jsp:getProperty>
:获取Bean中的属性值
7、JavaBean
(1)JavaBean是描述Java的软件组件模型
(2)表现形式:Java程序
(3)可实现代码的重复利用
二、常用方法
1、Parameter
(1)Enumberation getParameterNames(): 返回form中对象名称的枚举
(2)String getParameter(String name):返回指定名称的对象值
(3)String[ ] getParameterValues(String name) :返回指定名称的对象值数组
(4)Map getParameterMap()
2、Attribute
(1)void setAttribute(String name,Object value) :设置属性
(2)Oject getAttribute(String name) :返回属性值
(3)void removeAttribute(String name)
(4)Enumberation getAttributeNames():返回属性名称
3、URL
(1)String getContextPath()
(2)String getServletPath()
(3)String getPathInfo()
4、State
(1)Cooie[ ] getCookies():取得Cookie数组;
(2)HttpSession getSession()
(3)HttpSession getSession(Boolean create)
5、response(HttpServletResponse)
(1)PrintWriter getWriter()
(2)void addCookie(Cookie c)
(3)String encodeURL(String URL)
(4)void sendRedirect(String URL)
(5)void sendError(int errorCode)
6、session(HttpSession)
(1)void setAttribute(String name,Object value) :设置属性
(2)Oject getAttribute(String name) :返回属性值
(3)void removeAttribute(String name)
(4)Enumberation getAttributeNames():返回属性名称
(5)void seMaxInactiveInterval(int seconds) (6)void Invalidate()
7、pageContext(PageContext)
(1)void setAttribute(String name,Object value) :设置属性
(2)Oject getAttribute(String name) :返回属性值;
(3)void removeAttribute(String name)
(4)Enumberation getAttributeNames():返回属性名称
(5)Object findAttribute(String name)
(6)HttpServletRequest getRequest()
(7)HttpSession getSession()
(8)ServletContext getServletContext()
(9)JspWriter getOut()
8、application(ServletContext)
(1)void setAttribute(String name,Object value) :设置属性
(2)Oject getAttribute(String name) :返回属性值;
(3)void removeAttribute(String name)
(4)Enumberation getAttributeNames():返回属性名称
(5)RequestDispather getRequstDispather(String URL)
(6)String getInitParameter(String name)
(7)getServletInfo() 获得Servlet的信息
9、out
(1)JSPWriter的一个实例, 用于发送响应给客户端
(2)方法:
print(String)/println(String) 用于向页面输出
print(int)/println(int)
flush() 刷新out对象的缓存
10、exception
(1) 用于异常对象的异常实例;
(2) 异常页面在page指令中存在属性 isErrorPage=“true”;
(3) 方法:
getMessage() / printStackTrace() / toString()
三、相关知识
1、EL函数属性范围
Page --------- pageScope
Request-----------requestScope
Session --------- sessionScope
Application --------- applicationScope
2、EL的隐含对象
(1)PageContext ------javax.servlet.ServletContext ------表示此JSP的PageContext
(2)PageScope ----- java.util.Map -----取得Page范围的属性名称所对应的值
(3)RequestScope ----- java.util.Map ------ 取得Request范围的属性名称所对应的值
(4)sessionScope ------ java.util.Map ----- 取得Session范围的属性名称所对应的值
(5)applicationScope ------- java.util.Map ----- 取得Application范围的属称所对应的值
(6)param ----- java.util.Map -----ServletRequest.getParameter()
(7)paramValues ----- java.util.Map -----ServletRequest.getParameterValues
(8)header ---- java.util.Map -----ServletRequest.getHeader(String name)
(9)headerValues ---- java.util.Map -----ServletRequest.getHeaders(String name)
(10)cookie ---- java.util.Map -----HttpServletRequest.getCookies( )
(11)initParam ----- java.util.Map ----ServletContext.getInitParameter()
3、cookie对象
(1)文本文件
(2)存在于浏览器的暂存区
4、pageContext对象
${pageContext.request} ----- 取得请求对象
${pageContext.session} ----- 取得session对象
${pageContext.request.queryString}-----取得请求的参数字符串
${pageContext.request.requestURL}-----取得请求的URL,但不包括请求之参数字符串
${pageContext.request.contextPath}-----服务的web application的名称
${pageContext.request.method} ----- 取得HTTP的方法(GET、POST)
${pageContext.request.protocol} ----- 取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} ----- 取得用户名称
${pageContext.request.remoteAddr } ----- 取得用户的IP地址
${pageContext.session.new} ------ 判断session是否为新的,所谓新的session,表示刚由 server产生而client尚未使用
${pageContext.session.id} -----取得session的ID
${pageContext.servletContext.serverInfo}-----取得主机端的服务信息