1. ActionContext - com.opensymphony.xwork2.ActionContext 它本身就是一个Map,这个Map中存放是Action执行时的上下文,这些上下文也是一些Map组成的,它的大体结构可能就是Action(Map(session(Map(……)),application(Map(……)),locale(Map(……))……));
xwork框架的ActionContext是Action执行时的上下文,存放Action执行时需要用到的对象。在使用webwork时,其中放有Parameter、Session、ServletContext、Locale等信息。这样,webwork负责将Servlet相关数据转换为与ServletAPI无关的Map对象(即ActionContext),使得xwork的Action实现与web层、逻辑层与表现层的解耦。
ServletActionContext extends ActionContext
2. ServletActionContext - org.apache.struts2.ServletActionContext
提供直接与Servlet容器交互的途径。通过它,可以取得HttpServletRequest、HttpServletResponse 、ServletConfig、ServletContext、PageContext 对象。但是,使用ServletActionContext意味着Action与ServletAPI的紧密耦合。
3. ServletContext - javax.servlet.ServletContext可以通过取得:getRealPath(), getInitParameter(), getInitParameterNames(), getAttribute(), getAttributeNames()等等。可以理解为在web中管理参数,页面间数据传递等方面的数据。
ServletContext接口表示一个web应用的上下文。可以想象成一个web一个能用的共享数据区域,该区域保存整个web共享数据。当一个web应用启动的时候,就会创建该ServletContext接口的实现类。我们可以在根据需求,读写ServletContext这个web共享区的数据,那么如何获得ServletContext这个实例呢?下面提供了两种方法
方法1:可以通过ServletConfig接口的getServletContext()方法获得
方法2:通过GenericServlet抽象类的getServletContext()方法获得,不过这个方法其实也是调用了ServletConfig的getServletContext()方法
4. RequestDispatcher - javax.servlet. RequestDispatcher
RequestDispatcher是一个Web资源的包装器,可以用来把当前request传递到该资源,或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法:include/forward
HttpServletResponse.sendRedirect()方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如response.sendRedirect("http://java.sun.com")也可以使用相对的URL。如果location以“/”开头,则容器认为相对于当前Web应用的根,否则,容器将解析为相对于当前请求的URL。这种重定向的方法,将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置HTTP响应头信息的实现。
RequestDispatcher.forward()方法将当前的request和response重定向到该RequestDispacher指定的资源。这在实际项目中大量使用,因为完成一个业务操作往往需要跨越多个步骤,每一步骤完成相应的处理后,转向到下一个步骤。比如,通常业务处理在Servlet中处理,处理的结果转向到一个JSP页面进行显示。这样看起来类似于Servlet链的功能,但是还有一些区别。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一个Servlet。 include()方法将把Request Dispatcher资源的输出包含到当前输出中。
如果需要从servlet向下一页面(jsp、servlet……)传递request中的值时,使用页面转发RequestDispatcher,使用方法如下:
RequestDispatcher rd = this.getServletConfig().getServletContext().getRequestDispatcher("your URL");
d.forward(request.response);
5. ActionInvocation - com.opensymphony.xwork2.ActionInvocation 将Web页面中的输入元素封装为一个(请求)数据对象
ActionInvocation是Xwork中 Action 的调度的核心。 而对 Interceptor 的调度,也是有 ActionInvocation 负责。ActionInvocation 是一个接口,而DefaultActionInvocation 则是Webwork 对ActionInvocation的默认实现。
6. PageContext - javax.servlet.jsp.PageContext extends JspContext 对象提供存取所有在此网页中可被利用的隐含对象,并且可以管理它们的属性。 是隐含对象对应于javax.servlet.jsp.PageContext型态之对象它的主要功能在提供一个单一个接口,以管理各种的公开对象(像是HttpSession、ServletContext、ServletConfig、ServletRequest、ServletResponse等等),提供一个单一的API来管理属性作用范围等等。也可以是隐含对象都自动的被加入至pageContext中,您可以藉由它来取得与JSP相关的隐含对象对应之Servlet对象,像是getRequest()可以取得ServletRequest,getServletConfig()可以取得ServletConfig,getSession()可以取得HttpSession等等。
7. Jsp 中特殊字符的处理
单引号 ' 改为 \'
双引号 " 改为 \"
斜线 \ 改为 \\
起始标签 <% 改为 <%
结束标签 %> 改为 %\>
8. Jsp page 指令的使用
language ="scriptingLanguage" 主要指定JSP Container要用什么语言来编译JSP 网页。
JSP 2.0 规范中指出,目前只可以使用Java语言,不过未来不排除增加其他语言,如C、C++、Perl 等等。默认值为Java
extends = "className" 主要定义此JSP 网页产生的Servlet 是继承哪个父类
import = "importList" 主要定义此JSP 网页可以使用哪些Java API
session = "true | false" 决定此JSP 网页是否可以使用session 对象。默认值为true
buffer = "none | size inkb" 决定输出流 (output stream)是否有缓冲区。默认值为
8KB 的缓冲区
autoFlush = "true |false" 决定输出流的缓冲区是否要自动清除,缓冲区满了会产生异常 (Exception)。默认值为 true
isThreadSafe = "true |false 主要是告诉JSP Container,此JSP 网页能处理超过一个false" 以上的请求。默认值为 true,如果此值设为 false,SingleThreadModel 将会被使用。SingleThreadModel 在Servlet 2.4 中已经声明不赞成使用(deprecate)
info = "text" 主要表示此JSP 网页的相关信息
errorPage = "error_url" 表示如果发生异常错误时,网页会被重新指向那一个URL
isErrorPage = "true |false" 表示此JSP Page 是否为处理异常错误的网页
contentType = "ctinfo" 表示MIME 类型和JSP 网页的编码方式
pageEncoding = "ctinfo" 表示JSP 网页的编码方式
isELIgnored = "true |false" 表示是否在此JSP 网页中执行或忽略EL 表达式。如果为true 时,JSP Container将
9. EL 隐含对象
PageContext javax.servlet.ServletContext 表示此JSP 的PageContext
PageScope java.util.Map 取得Page范围的属性名称所对应的值
RequestScope java.util.Map 取得Request 范围的属性名称所对应的值
sessionScope java.util.Map 取得Session 范围的属性名称所对应的值
applicationScope java.util.Map 取得Application 范围的属性名称所对应的值
param java.util.Map 如同ServletRequest.getParameter(String name)。回传String 类型的值
分享到:
相关推荐
### Servlet常用类与接口 #### 一、Servlet接口 Servlet接口是Servlet规范中的核心部分,它定义了Servlet组件的行为和生命周期方法。一个典型的Servlet需要实现以下方法: 1. **init(ServletConfig config)**:...
本实例"Servlet常用语法Demo"旨在帮助初学者理解并掌握Servlet的基本用法和常见应用场景。 1. **Servlet生命周期** Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或第一次接收到对Servlet...
以下是对这些常用Servlet接口的详细讲解: 1. **Servlet接口** Servlet接口是所有Servlet类的基础,它定义了Servlet的核心方法。主要包括: - `init(ServletConfig config)`: 初始化Servlet实例,服务器在部署...
在这个主题中,我们将深入探讨Servlet接口及其常用方法,结合给定的"Servlet常用接口"标题和描述,我们可以提取以下几个关键知识点: 1. **Servlet接口**: Servlet接口是所有Servlet的基础,它定义了Servlet的...
Servlet是一种Java类,它扩展了服务器的功能,尤其是Web服务器。它们被用来动态生成网页内容,处理来自客户端(如浏览器)的HTTP请求,并向客户端发送响应。 2. **Servlet生命周期**: Servlet经历三个主要阶段:...
这个包包含了Servlet API接口和类,使得开发者能够创建动态响应的Web应用程序。在描述中提到了`tomcat`,这是一款广泛应用的Java Web服务器,它内建了对Servlet的支持。`spring`框架同样与Servlet紧密相关,因为...
Servlet Request的常用方法,及基本语句
#### 常用几个类的介绍 ##### 1、`ServletContext`对象 `ServletContext`是代表Web应用程序上下文的对象,它可以被多个Servlet共享。 ##### 2、`HttpServlet`对象介绍(接口) `HttpServlet`是抽象类,继承自`...
该工具类的目标是将Servlet的常用功能进行高度集成,以提高代码复用性和开发效率。以下是一些可能包含在这个工具类中的关键知识点: 1. **过滤器(Filter)**:在Servlet中,过滤器用于拦截请求和响应,执行预处理...
Tomcat作为最常用的Servlet容器,具有轻量级、高效和易于配置的特点。配置Servlet在Tomcat中通常涉及到修改`web.xml`部署描述符文件,定义Servlet类、URL映射以及初始化参数。 Servlet的使用涵盖了以下几个方面: 1...
Servlet是一个Java类,它扩展了`javax.servlet.Servlet`接口或实现了`javax.servlet.http.HttpServlet`类,用于处理来自客户端的请求并返回响应。 9. **Servlet工作原理** 当客户端发起请求时,Web服务器会加载并...
Servlet API 提供了丰富的接口和类,例如 Servlet、GenericServlet、HttpServlet、ServletRequest、ServletResponse 等,用于开发 Web 组件。 2. Servlet 的定义: Servlet 可以从不同的角度进行描述: - 技术层面...
在Servlet模拟器中,反射机制用于根据配置文件中的类名创建Servlet实例,这样我们就不需要在代码中硬编码具体的Servlet类。 总结来说,Servlet模拟器是通过解析`web.xml`文件,匹配请求URI,利用反射机制执行对应的...
Servlet 是一个实现了特殊接口的 Java 类,用于支持 Servlet 的 Web 服务器调用和运行,只能运行于具有 Servlet 引擎的 Web 服务器端。创建一个 Servlet 程序需要继承 javax.servlet.Servlet 接口,并实现其方法。 ...
这个源码包包含了用于构建动态Web应用程序的接口和类,是Java Servlet规范的一部分。本文将深入探讨Servlet-API中的关键概念、主要类和接口,以及它们在实际开发中的应用。 1. **Servlet接口** Servlet接口是所有...
Java Servlet API提供了多种接口和类,其中`javax.servlet.Servlet`是所有Servlet的基类,而`javax.servlet.http.HttpServlet`则是最常用的HTTP Servlet,用于处理HTTP协议的请求。 当一个Web应用部署到Web服务器...
**Apache Tomcat** 是一个开源的Servlet容器,也是学习Servlet技术时最常用的容器之一。 - **安装步骤**: 1. 下载Tomcat并解压。 2. 在Eclipse中配置Tomcat服务器:通过Window > Preferences > Server > Runtime...