3.JSP相关知识
3.1 jsp有哪些内置对象,作用分别是什么,分别有什么方法?
? request :用户端请求,此请求会包含来自get/post请求的参数
● object getAttribute(String name) 返回指定属性的属性值
● Enumeration getAttributeNames() 返回所有可用属性名的枚举
● String getCharacterEncoding() 返回字符编码方式
● int getContentLength() 返回请求体的长度(以字节数)
● String getContentType() 得到请求体的MIME类型
● ServletInputStream getInputStream() 得到请求体中一行的二进制流
● String getParameter(String name) 返回name指定参数的参数值
● Enumeration getParameterNames() 返回可用参数名的枚举
● String[] getParameterValues(String name) 返回包含参数name的所有值的数组
● String getProtocol() 返回请求用的协议类型及版本号
● String getScheme() 返回请求用的计划名,如:http.https及ftp等
● String getServerName() 返回接受请求的服务器主机名
● int getServerPort() 返回服务器接受此请求所用的端口号
● BufferedReader getReader() 返回解码过了的请求体
● String getRemoteAddr() 返回发送此请求的客户端IP地址
● String getRemoteHost() 返回发送此请求的客户端主机名
● void setAttribute(String key,Object obj) 设置属性的属性值
● String getRealPath(String path) 返回一虚拟路径的真实路径
? response:网页传回用户端的回应
● String getCharacterEncoding() 返回响应用的是何种字符编码
● ServletOutputStream getOutputStream() 返回响应的一个二进制输出流
● PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
● void setContentLength(int len) 设置响应头长度
● void setContentType(String type) 设置响应的MIME类型
● sendRedirect(java.lang.String location) 重新定向客户端的请求
? pagecontext:网页的属性是在这里管理,用于方便存取各个范围的名字空间、servlet相关的对象的API。
● JspWriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
● HttpSession getSession() 返回当前页中的HttpSession对象(session)
● Object getPage() 返回当前页的Object对象(page)
● ServletRequest getRequest() 返回当前页的ServletRequest对象(request)
● ServletResponse getResponse() 返回当前页的ServletResponse对象(response)
● Exception getException() 返回当前页的Exception对象(exception)
● ServletConfig getServletConfig() 返回当前页的ServletConfig对象(config)
● ServletContext getServletContext() 返回当前页的ServletContext对象(application)
● void setAttribute(String name,Object attribute) 设置属性及属性值
● void setAttribute(String name,Object obj,int scope) 在指定范围内设置属性及属性值
● public Object getAttribute(String name) 取属性的值
● Object getAttribute(String name,int scope) 在指定范围内取属性的值
● public Object findAttribute(String name) 寻找一属性,返回起属性值或NULL
● void removeAttribute(String name) 删除某属性
● void removeAttribute(String name,int scope) 在指定范围删除某属性
● int getAttributeScope(String name) 返回某属性的作用范围
● Enumeration getAttributeNamesInScope(int scope) 返回指定范围内可用的属性名枚举
● void release() 释放pageContext所占用的资源
● void forward(String relativeUrlPath) 使当前页面重导到另一页面
● void include(String relativeUrlPath) 在当前位置包含另一文件
? session:与请求有关的会话期,用于存储用户的状态信息。
● long getCreationTime() 返回SESSION创建时间
● public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号
● long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间
● int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms)
● String[] getValueNames() 返回一个包含此SESSION中所有可用属性的数组
● void invalidate() 取消SESSION,使SESSION不可用
● boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入
● void removeValue(String name) 删除SESSION中指定的属性
● void setMaxInactiveInterval() 设置两次请求间隔多长时间此SESSION被取消(ms)
? application:正在执行的内容,有助于查找有关servlet引擎和环境的信息。
● Object getAttribute(String name) 返回给定名的属性值
● Enumeration getAttributeNames() 返回所有可用属性名的枚举
● void setAttribute(String name,Object obj) 设定属性的属性值
● void removeAttribute(String name) 删除一属性及其属性值
● String getServerInfo() 返回JSP(SERVLET)引擎名及版本号
● String getRealPath(String path) 返回一虚拟路径的真实路径
● ServletContext getContext(String uripath) 返回指定WebApplication的application对象
● int getMajorVersion() 返回服务器支持的Servlet API的最大版本号
● int getMinorVersion() 返回服务器支持的Servlet API的最大版本号
● String getMimeType(String file) 返回指定文件的MIME类型
● URL getResource(String path) 返回指定资源(文件及目录)的URL路径
● InputStream getResourceAsStream(String path) 返回指定资源的输入流
● RequestDispatcher getRequestDispatcher(String uripath) 返回指定资源的RequestDispatcher对象
● Servlet getServlet(String name) 返回指定名的Servlet
● Enumeration getServlets() 返回所有Servlet的枚举
● Enumeration getServletNames() 返回所有Servlet名的枚举
● void log(String msg) 把指定消息写入Servlet的日志文件
● void log(Exception exception,String msg) 把指定异常的栈轨迹及错误消息写入Servlet的日志文件
● void log(String msg,Throwable throwable) 把栈轨迹及给出的Throwable异常的说明信息 写入Servlet的日志文件
? out:用来传送回应的输出。
● void clear() 清除缓冲区的内容
● void clearBuffer() 清除缓冲区的当前内容
● void flush() 清空流
● int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0
● int getRemaining() 返回缓冲区还剩余多少可用
● boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
● void close() 关闭输出流
? config:用于存取servlet实例的的初始化参数。
● ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象
● String getInitParameter(String name) 返回初始化参数的值
● Enumeration getInitParameterNames() 返回Servlet初始化所需所有参数的枚举
? page:网页本身,表示从该页面产生的一个servlet实例。
● class getClass 返回此Object的类
● int hashCode() 返回此Object的hash码
● boolean equals(Object obj) 判断此Object是否与指定的Object对象相等
● void copy(Object obj) 把此Object拷贝到指定的Object对象中
● Object clone() 克隆此Object对象
● String toString() 把此Object对象转换成String类的对象
● void notify() 唤醒一个等待的线程
● void notifyAll() 唤醒所有等待的线程
● void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒
● void wait() 使一个线程处于等待直到被唤醒
● void enterMonitor() 对Object加锁
● void exitMonitor() 对Object开锁
? exception:针对错误网页。
● String getMessage() 返回描述异常的消息
● String toString() 返回关于异常的简短描述消息
● void printStackTrace() 显示异常及其栈轨迹
● Throwable FillInStackTrace() 重写异常的执行栈轨迹
3.2 jsp有哪些动作,作用分别是什么
? include:在页面被请求的时候引入一个文件。
? useBean:寻找或者实例化一个JavaBean。
? setProperty:设置JavaBean的属性。
? getProperty:输出某个JavaBean的属性。
? forward:把请求转到一个新的页面。
? plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
3.3 jsp的常用指令
编译指令(3个):page、include、taglib(一个标签库以及其自定义标签的前缀)。
动作指令(7个):forward、param、include、plugin、usebean、setproperty、getproperty。
其中动态include的和静态include区别是:
编译指令:<%@ include file="..." %>,针对静态文件。
动作指令:<jsp:include page="..." flush="true" />,针对动态文件。
3.4 页面间对象传递的方法:page,request,session,application。
3.5 jsp和servlet有哪些相同点和不同点,他们之间的联系是什么?
相同点:JSP和Servlet和本质上都是java类。
不同点:(1)Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而JSP 的情况是 Java和 HTML 可以组合成一个扩展名为.jsp 的文件。
(2)JSP 侧重于视图,Servlet 主要用于控制逻辑。
(3)Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
联系:JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。
?
原文:https://www.cnblogs.com/Tibbers/p/12912312.html