`
scenery_86
  • 浏览: 47674 次
社区版块
存档分类
最新评论

Servlet与JSP隐含对象的对应关系

    博客分类:
  • Jsp
阅读更多
在JSP中可以使用 request、response、session 等等的隱含物件,這些隱含物件在轉換為Servlet之後,會對應於Servlet中的一些型態,這在之前談論隱含物件時曾經說明過,如果您會使用隱含物件,並瞭解如何撰寫Java程式,那麽您對於在Servlet中如何使用相對應的物件並不困難,在這邊則只看看如何在Servlet中取得這些對應的物件,然後您可以回顧一下之前介紹過的JSP隱含物件,瞭解這些物件可以如何應用。

request對應於HttpServletRequest,而response對應於HttpServletResponse,如果您繼承 HttpServlet,在Container呼叫Servlet的service()方法,或是接下來的doXXX()等方法,都會以這兩個物件作為參數傳入:

 service(HttpServletRequest req, HttpServletResponse res) 
 doGet(HttpServletRequest req, HttpServletResponse res) 
 doPost(HttpServletRequest req, HttpServletResponse res) 
 .... 

 

application 對應于 ServletContext,在繼承GenericServlet或其子類別,您可以使用getServletContext()方法取得其實例。

config 對應于 ServletConfig,在繼承GenericServlet或其子類別,您可以使用getServletConfig()方法取得其實例。

session 對應於 HttpSession,在Servlet中要取得HttpSession物件,您可以由HttpServletRequest物件取得,例如:


 public void doGet(HttpServletRequest req, 
                   HttpServletResponse res) 
                      throws ServletException, IOException { 
    HttpSession session = req.getSession(); 

    // .... 
}

  
req.getSession()其實是req.getSession(true)在Servlet 2.1之後提供的方便用法,當getSession()中設定的是true時,表示目前如果有有效的HttpSession物件,則傳回該物件,如果沒有有效的HttpSession物件,則建立一個新的HttpSession物件,如果getSession()中的參數設定為false,則在沒有有效 HttpSession物件的情況下,不建立新的HttpSession物件,直接傳回null。

另外,在JSP中可以方便的使用<jsp:forward>或<jsp:include>來轉發或包含另一個資源,以達成 request與response的控制權轉移,在Servlet中,這則是透過實作RequestDispatcher介面的物件來達成,例如,若您要轉發(或包括)一個請求與回應則必須這麽作:

public void doGet(HttpServletRequest req, 
                   HttpServletResponse res) 
                      throws ServletException, IOException { 
    // .... 
    RequestDispatcher dispatcher = 
                 req.getRequestDispatcher("other.jsp"); 
    dispatcher.forward();   
    // dispatcher.include();  如果要 include 的話用這個
    // .... 
} 

 
forward與sendRedirect()的作用有些類似,主要的差別在於forward的動作完全在伺服器內完成,它是將request與 response的控制權轉移給另一個資源,由該資源直接回應用戶端,在轉發之前您可以對request作一些前置處理,然後再由另一個資源作 response,而sendRedirect()則必須與用戶端溝通,告知其重新要求指定的資源。
分享到:
评论
1 楼 wanglei_oklove 2007-05-02  
恩,可以  拿走了一些,谢谢

相关推荐

    JSP隐含对象.ppt

    JSP 隐含对象 JSP 隐含对象是 Web 容器加载的一组类,它们不像一般的 Java 对象那样用” new” 去获取实例,而是可以直接在 JSP 页面使用的对象。这些隐式对象的名称是 JSP 的保留字,JSP 使用 Java 定义的隐式对象...

    JSP的九个隐含对象

    通过`page`对象,开发者可以访问和调用由JSP对应的Servlet类中定义的所有方法,这为在JSP页面内部进行逻辑处理提供了便利。例如,如果在Servlet类中定义了一个名为`doSomething()`的方法,那么在JSP页面中就可以通过...

    java中JSP和el表达式的隐含对象

    它是一个隐式对象,代表当前JSP页面对应的Servlet。通过这个对象可以访问到页面的属性、方法等。 #### config对象 `config`对象用于表示Servlet的配置信息。它实现了`javax.servlet.ServletConfig`接口,提供了以下...

    jsp/servlet帮助文档

    **JSP隐含对象** 在JSP页面中,有一些预定义的对象可以直接使用,例如request、response、session、application等,它们对应于Servlet API中的特定对象,方便开发者直接操作请求、响应、会话和全局应用程序数据。 *...

    JSP九大内置对象

    在Java Server Pages (JSP)技术中,为了简化Web开发,JSP提供了九个预定义的对象,也被称为内置对象或隐含对象。这些对象自动存在于JSP页面的上下文中,无需显式声明或实例化,它们在处理请求和响应时扮演着关键角色...

    JSP的内置对象详细讲解

    6.1 JSP 隐含对象概述 JSP的内置对象包括`out`、`request`、`response`、`session`、`application`、`exception`和`pageContext`。它们在JSP转换成Servlet时自动创建并注入。 6.2 `out` 对象 `out`对象用于向客户端...

    JSPServlet

    5. **隐含对象**:例如`pageContext`、`request`、`response`等,它们提供了访问Servlet API的便捷途径。 6. **Action元素**:如`&lt;jsp:plugin&gt;`、`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`等,用于引入外部资源或控制流程。...

    用JSP、Servlet和JavaBean开发的一个简单的留言系统

    在本系统中,JSP主要用于展示用户界面,接收用户输入,并通过隐含对象如`request`、`response`来传递数据到Servlet进行处理。 其次,**Servlet**是Java平台上的一个标准接口,用于扩展服务器的功能,处理来自客户端...

    JSP内容ppt大学教程

    了解这些基本的JSP隐含对象和`out`对象的使用,对于初学者来说是非常重要的,因为它们构成了JSP开发的基础。随着学习的深入,你将学会如何利用这些工具来创建交互式的动态Web应用程序。同时,还会接触到其他如`...

    jsp_api.rar帮助文档

    这个文件提供了详细的JSP中文帮助,包括JSP的生命周期、页面组件(如隐含对象)、自定义标签的开发以及与Servlet的交互等。JSP生命周期分为三个阶段:翻译、初始化和响应。在这个过程中,JSP会被编译成Servlet,...

    JSP学习资料

    JSP隐含对象** JSP提供了九个隐含对象,无需声明即可直接使用: - `request`:代表HTTP请求对象,用于获取请求参数。 - `response`:代表HTTP响应对象,用于设置响应头和输出到客户端。 - `session`:用于管理用户...

    JSP-ppt.rar

    ### JSP与Servlet的关系 JSP的本质是一个Servlet,当JSP被请求时,Web容器会将其转换为对应的Servlet类,然后编译成字节码执行。JSP的动态部分在服务器端执行,生成HTML后发送给客户端。 ### JSP与JavaBean ...

    jsp四种会话跟踪技术

    JSP隐含对象是预定义的Java对象,可以直接在JSP页面中使用: 1. **request**:代表客户端的请求信息,用于接收客户端通过HTTP协议传递的数据,是`javax.servlet.ServletRequest`的实例。 2. **response**:用于向...

    JSP语法简明入门教程大全PDF,有JSP的安装、启动及简单示例

    Servlet编写较为复杂,而JSP更专注于视图展示,但可以通过JSP隐含对象访问请求、响应、会话等信息,实现与Servlet类似的功能。 ### EL(Expression Language)与JSTL(JavaServer Pages Standard Tag Library) EL...

    jsp学习资料

    - **JSP与Servlet的关系**:JSP最终会被Web容器转换成Servlet,然后由Servlet处理HTTP请求并生成响应。JSP提供了一种更直观的方式来编写视图部分,而Servlet则更适合编写控制逻辑。 - **如何写一个JSP文件**:JSP...

    凯信 高端培训JSP PPT课件

    通过使用JSP隐含对象如`request`、`response`、`session`、`application`,我们可以方便地处理HTTP请求,设置响应头,管理会话状态和全局应用程序数据。 JSP标准标签库(JSTL)是JSP开发中常用的一组标签,它提供了...

    servletapi_html.rar

    JSP内部隐含的对象,如`request`, `response`, `session`, `application`等,其实质就是Servlet API中的类的实例。例如,`request`对象对应HttpServletRequest,`response`对象对应HttpServletResponse。 通过阅读...

    tomcat+jsp内幕详解

    JSP提供了九个隐含对象,可以直接在页面中使用,如`request`、`response`、`session`等,它们对应于Servlet API中的特定对象,方便开发者操作请求数据、响应数据和会话信息。 **JSP文档** JSP文档(JSPD)允许...

Global site tag (gtag.js) - Google Analytics