7. RequestDispatcher.forward(req, resp); vs. HttpServletResponse.sendRedirect("url");
请求分发器 rd.forward(req, resp); 只能访问内部资源。浏览器地址不变。针对同一个请求。
可获取表单传递过来的信息req.getParameter("name");
应用内部数据共享的方式 req.getAttribute("name");
复位向 resp.sendRedirect("url"); 可以跨网站访问资源。浏览器地址会改变。变成另外的一个请求。
8. 相对路径 与 绝对路径
1)形式:
绝对路径:以/开头的路径
相对路径:不是以/开头的路径
2)绝对路径:
运行在客户端时:请求的参考点是站点(站台)本身;即是 http://localhost:8080/
如: <form action="/WebTest/login" ...> ...
路径等于 http://localhost:8080/WebTest/login
运行在服务器时:请求相对于应用的根 http://localhost:8080/工程/
web.xml, servlet, jsp... 这些都是运行在服务器端
如:RequestDispatcher rd = request.getRequestDispatcher(url); //相对路径,也可以绝对路径
RequestDispatcher rd = servletcontext.getRequestDispatcher(url); //只能绝对路径
3)相对路径:
运行在客户端时:请求的参考点是应用的当前路径;即是页面所在的目录 http://localhost:8080/工程/页面所在目录/
主要用在两处:
一是表单中的 action="..." 如: <form action="login" ...> ...
路径等于 http://localhost:8080/工程/页面当前目录/login
二是在复位向中用 resp.SendRedirect("logon/er.html");
路径等于 http://localhost:8080/工程/页面当前目录/logon/er.html
运行在服务器时:都是相对于应用的当前路径;可认为是直接在当前url后面加上相对路径
如: rd.forward("target");
9. 范围对象 context > session > request > config
对比HttpSession、HttpServletRequest、ServletContext、ServletConfig的作用范围
1)ServletConfig:在一个Servlet实例化后,就创建了一个ServletConfig对象。
主要用来读取web.xml中配置的Servlet初始信息,不能被其它Servlet共享。
作用范围:处于同一个Servlet中,均起作用。
2)HttpServletRequest:这是由Web容器对客户Http请求数据封装而成的对象,可通过它获得所有跟客户请求相关的信息。
比如Http请求方法(Get or Post)。 注意:request是可以跨Servlet的。
作用范围:只要处于同一个请求中,均起作用。
3)HttpSession: 当浏览器与Servlet容器建立一个Http会话时,容器就会通过此接口自动产生一个HttpSession对象。
作用范围:处于同一个会话中,均起作用。(用JsessionId标识同一个会话)
4)ServletContext:对同一个Web应用中的任何Servlet,在任何时候都有效,是一个全局的对象。
作用范围:处于同一个Web应用中,均起作用。(不同的session和请求都可用)
分享到:
相关推荐
Servlet 中的相对路径和绝对路径归纳 在 Servlet 编程中,路径是非常重要的一个概念。路径可以分为相对路径和绝对路径两种,在不同的场景下,选择合适的路径类型非常重要。本文将对 Servlet 中的相对路径和绝对路径...
Servlet路径问题在Web开发中是常见的,特别是在使用Java Servlet技术时。Servlet路径涉及到表单提交、请求转发、URL映射以及资源访问等多个方面。以下是对这些知识点的详细解释: 1. **表单提交路径**: - 在HTML...
### JavaWeb中的路径问题解析 在JavaWeb开发中,路径问题常常困扰着许多开发者,特别是对于初学者来说,理解各种路径及其应用场景尤为重要。本文将基于给出的信息,详细解析JavaWeb项目中涉及到的各种路径问题,...
本资料包"Servlet代码+说明文档"提供了一个从基础到深入的学习路径,旨在帮助初学者全面掌握Servlet技术。 首先,Servlet是Java Servlet API的实现,它定义了服务器端程序如何与Web客户端交互。在Java中,Servlet是...
这将创建一个名为`MyServlet`的Servlet,对应于URL路径`/myservlet`。 3. **Servlet类** 一个Servlet类需要继承`javax.servlet.http.HttpServlet`基类,并覆盖`doGet()`和`doPost()`等方法来处理HTTP请求。例如:...
5. **Servlet配置**:在web.xml文件中,可以通过`<servlet>`、`<servlet-mapping>`元素定义Servlet及其映射路径。例如,通过`<url-pattern>`指定Servlet处理哪些URL请求。 6. **注解驱动**:从Java EE 5开始,...
2. **Servlet配置**:在`web.xml`部署描述符文件中,我们通常会看到Servlet的配置信息,包括Servlet的类名、映射路径等。在本系统中,可能定义了处理特定请求的Servlet映射。 3. **HTTP请求与响应**:Servlet通过`...
在web.xml文件中,开发者可以配置Servlet的映射路径、初始化参数、加载顺序等。例如,通过`<servlet>`、`<servlet-mapping>`标签定义Servlet及其关联的URL模式。 五、过滤器(Filter) Servlet 2.4引入了过滤器...
9. **多线程模型**: Servlet容器默认为每个请求创建一个新的线程,因此Servlet需要处理线程安全问题。 10. **异步处理**: Servlet 3.0引入了异步处理,允许Servlet在处理请求时释放线程,提高服务器性能。 11. **...
在web.xml文件中,开发者可以配置Servlet,包括定义Servlet的类名、映射URL路径、设置初始化参数等。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</...
在Servlet中,可以使用RequestDispatcher的forward()方法将请求转发到另一个资源,或者使用Response.sendRedirect()方法进行重定向。转发在服务器端完成,而重定向则是在客户端完成。 六、Servlet过滤器 除了...
2. **Servlet配置**:通过`web.xml`部署描述符文件,可以配置Servlet的映射路径、初始化参数、加载顺序等。学员可能会学习如何编写和理解`<servlet>`和`<servlet-mapping>`元素。 3. **HTTP请求与响应**:Servlet...
然而,在命令行或者非IDE环境下,需要手动将Servlet JAR包添加到项目的类路径(ClassPath)中,这样编译器和Java虚拟机才能找到并使用Servlet相关的类。 下载Servlet JAR包后,可以按照以下步骤将其添加到项目中: ...
- 在`web.xml`部署描述符中配置Servlet,包括定义Servlet、映射URL路径等。 - `<servlet>`元素定义Servlet,`<servlet-name>`指定Servlet名称,`<servlet-class>`指定Servlet类全名。 - `<servlet-mapping>`元素...
- 在传统的web.xml文件中,可以通过`<servlet>`、`<servlet-mapping>`等元素定义Servlet及其映射路径。 - 使用Java编程方式(@WebServlet注解)来声明Servlet,更简洁且无需修改XML配置。 4. **多线程模型**: -...
7. **web.xml配置**:学习如何配置Servlet的映射路径、初始化参数、过滤器和监听器,理解这些配置对Servlet应用的影响。 8. **MVC模式的应用**:可能包括简单的模型-视图-控制器设计模式,演示如何将业务逻辑、数据...
在这里,你可以指定Servlet的类名、URL路径、初始化参数等。随着Java EE的发展,现在的应用更多地采用注解式配置,如@WebServlet,使得配置更为简洁。 文件名称列表中的“Servlet”可能包含以下内容: 1. Servlet...
2. **部署描述符**:在Servlet应用中,`web.xml`是部署描述符,定义了Servlet的配置信息,如Servlet的映射路径、初始化参数等。例如,你可以通过`<servlet>`和`<servlet-mapping>`元素来注册Servlet。 3. **Servlet...
- **`RequestDispatcher`**:用于在Servlet之间转发请求和响应,实现逻辑上的紧密耦合。 #### 九、Session管理 由于HTTP协议是无状态的,因此需要一种机制来维护用户的状态信息。Servlet API提供了一个名为`...
2. **Servlet配置**:在`web.xml`部署描述符文件中,我们定义Servlet的映射路径、类名以及初始化参数。例如: ```xml <servlet> <servlet-name>ShopServlet</servlet-name> <servlet-class>...