JSP简介,9个隐藏对象

来源:互联网 发布:部落冲突详细数据 编辑:程序博客网 时间:2024/06/05 19:01

 JSPjava server page,java服务器端页面,是简化Servlet编写的一致技术,它将JAVA代码和HTML语句混合在同一文件中编写,

只对网页中要动态产生的内容采用JAVA代码来编写,而对固定不变的静态内容采用普通静态

HTML页面的方式编写。

    在JSP页面中编写的JAVA代码需要嵌套在<%%>内,嵌套在<%%>之间的JAVA代码

被称为脚本片段,没有嵌套在<%%>之间的内容被称为JSP的模板元素。

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    <% System.out.println("hello world");%>  </body></html>
在控制台输出:hello world

    JSP文件就像普通的html文件一样,它们可以放置在WEB应用程序中的除了WEB-INF

及其子目录外的其他任何目录中,JSP页面的访问路径与普通HTML页面的访问路径形式

是一样的。

    JSP本质上是一个Servlet.

运行原理:WEB容器(Servlet引擎)接收到以.jsp结尾的URL的访问请求时,它将该访问

请求交给JSP引擎去处理。

    每个JSP页面在被第一次访问时,JSP引擎将他翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet

的class类文件,然后再由web容器(Servlet引擎)像调用普通servlet程序一样的方式来装载和解释执行这个由j

sp页面翻译成的servlet程序。

    JSP规范没有明确要求JSP中的脚本程序代码必须采用JAVA语言,JSP中的脚本程序代码可以采用JAVA语言之外

的其他脚本语言来编写,但是,JSO页面最终必须转换成JAVA servlet程序。

   可以在WEB应用程序正式发布之前吗,将其中所有的JSP页面预先编译成SERVLET程序。

JSP隐藏对象:未声明就可以直接使用的对象

  ================================================================

原文地址:http://blog.csdn.net/unei66/article/details/10343717

1.out输出流对象(*)

隐藏对象out是javax.servlet.jsp.JspWriter类的实例。服务器向客户端输出的字符类内容可以通过out对象输出。可以直接把字符串打印到浏览器上。

  <body>             <% out.println("hello sasa");%>  </body>



2.request (HttpServletRequest)请求对象(*)

隐藏对象request是javax.servlet.ServletRequest类的实例。代表客户端的请求。request包含客户端的信息以及请求的信息,如请求哪个文件,附带的地址栏参数等。每次客户端请求都会产生一个request实例。


JSP页面:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    <% String name=request.getParameter("name");     System.out.println(name);%>  </body></html>

浏览器输入:http://localhost:8090/MyLab2/index.jsp?name=sasa

控制台输出:sasa


3.response (HttpServletReponse)响应对象

隐藏对象response是javax.servlet.ServletResponse类的实例,代表服务器端的响应。服务器端的任何输出都是通过response对象发送到客户端浏览器。每次服务器端都会产生一个response实例。


4.config 配置对象

隐藏对象config是javax.servlet.ServletConfig类的实例,ServletConfig封装了配置在web.xml中初始化JSP的参数。JSP中通过config获取这些参数。每个JSP文件都有一个config对象。若需要访问当前JSP配置的初始化参数,需要通过映射的地址才行。

在web.xml配置index.jsp

    <!-- 配置和映射servlet -->  <servlet>  <!-- servlet注册的名字 -->    <servlet-name>index</servlet-name>    <jsp-file>/index.jsp</jsp-file>    <init-param>          <!-- 参数名 -->      <param-name>test</param-name>      <!-- 参数值 -->      <param-value>testValue</param-value>    </init-param>  </servlet>    <servlet-mapping>  <!-- 需要和某一个servlet节点的servlet子节点的文本节点一致 -->    <servlet-name>index</servlet-name>    <!-- 映射具体 的访问路径: /  代表当前web应用的根目录 -->    <url-pattern>/index.jsp</url-pattern>  </servlet-mapping> 
尝试获取参数test的值:

  <body>             <% String value=config.getInitParameter("test");    System.out.println(value);%>  </body>
输出:testValue


5.session 会话对象(*)

隐藏对象session是javax.servlet.http.HttpSession类的实例。session与cookie是记录客户访问信息的两种机制,session用于服务器端保存用户信息,cookie用于客户端保存用户信息。Servlet通过request.getSession()获取session对象,而在JSP中可以直接使用。如果JSP中配置了<%@ page session="false" %>,则隐藏对象session不可用。每个用户对应一个session对象。


6.application 应用程序对象(*)

隐藏对象application是javax.servlet.ServletContext类的对象。application封装了JSP所在的Web应用程序的信息,例如web.xml中配置的全局的初始化信息。Servlet中application对象通过ServletConfig.getServletContext()来获取。整个Web应用程序对应一个application对象。

  <body>       <% String user=application.getInitParameter("user");     System.out.println(user);%>  </body>
输出结果:sasa

7.page 页面对象

隐藏对象page为javax.servlet.jsp.HttpJspPage类的实例,page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。page相当于普通java类中的关键字this。

  <body>             <% out.println(this);%>           <br>           <% out.println(page);%>  </body>


8.pageContext 页面上下文对象(*)

隐藏对象pageContext为javax.servlet.jsp.PageContext类的实例。pageContext对象代表当前JSP页面编译后的内容。通过pageContext能够获取到JSP中的资源,可以从中获取到其他8个隐藏对象。

  <body>    <%ServletRequest req=pageContext.getRequest();       System.out.println(req==request);%>  </body>
输出结果:true

9.exception 异常对象

隐藏对象exception为java.lang.Exception类的对象。exception封装了JSP中抛出的异常信息。要使用exception对象,需要设置<%@ page isErrorPage="true" %>。隐藏对象exception通常被用来处理错误页面。


============================================================================


原创粉丝点击