1 response.setContentType("text/html");
这个方法设置发送到客户端的响应的内容类型,此时响应还没有提交。给出的内容类型可以包括字符编码说明,例如:text/html;charset=UTF-8.如果该方法在getWriter()方法被调用之前调用,那么响应的字符编码将仅从给出的内容类型中设置。该方法如果在getWriter()方法被调用之后或者在被提交之后调用,将不会设置响应的字符编码,在使用http协议的情况中,该方法设置Content-type实体报头。
一般在Servlet中,习惯性的会首先设置请求以及响应的内容类型以及编码方式:
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
2 servlet的三种转发方式
21.response.sendRedirect("url");
22.request.getRequestDispatcher("url").include(request,response);
23.request.getRequestDispatcher("url").forward(request,response);
第一种方法称之为“重定向”,是通过response对象发送给浏览器一个url地址,从sendRedirect的英文意思就能看出。浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。
第二种方法和第三种方法是通过request对象,Dispatch有调度的意思,我将之理解为资源的调度,是通过request对象调度适用的资源来处理业务,并没有使用response对象给浏览器任何应答,所以处理仍然在当前的页面进行,地址栏的地址不会改变。而两种方法的具体区别在于,include和forward。
include意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中来,并用当前servlet的request和respose来执行url中的内容处理业务.所以不会发生页面的跳转,地址栏地址不会发生改变。
forward意为转发,即将业务交给指定的url执行,但使用的是当前servlet的request和response对象.并没有表示页面的跳转,所以地址栏的地址不会发生改变。
3 session
1、如果你是在同一个服务器(容器)里做的转向工作。那么可以这样
把
request.setAttribute("cha", cha);
改成
request.getSession().setAttribute("cha", cha);
然后
<%Object a = (Object)request.getSession().getAttribute("cha");%>
其他不变。
2、你在Servlet里面这样写:
把
response.sendRedirect(“a.jsp”);
改成
response.sendRedirect("a.jsp?a=cha");
那么在a.jsp页面上直接
<%=request.getParameter("a")%>
就可以了,不用写<%Object a = (Object)request.getAttribute("cha");%>.
当然用Forward也可以实现。
分享到:
相关推荐
理解和掌握Servlet的工作机制、生命周期以及配置细节,对于开发高质量的Web应用至关重要。随着技术的发展,虽然出现了Spring MVC、JAX-RS等更高级的框架,但Servlet依然是学习Java Web开发不可或缺的一部分。
本文将从Servlet的基本概念入手,逐步深入到其生命周期的具体细节,并结合实际示例进行解析。 #### 二、Servlet基本概念 Servlet是一种Java类,用于扩展服务器的功能。它是基于Java Servlet API(通常作为Java EE...
Servlet API是Java Web开发中的核心组件,主要用于处理HTTP请求并响应客户端。...这个压缩包中的docs目录下的index.html文档,将帮助你更深入地了解Servlet API的细节,成为掌握Web开发技术的专家。
### Servlet容器工作原理 #### 一、概述 Servlet容器,如Tomcat,是Java Web应用的基础组成部分之一。...此外,深入研究`javax.servlet.Servlet`接口以及其实现细节,对于构建高效可靠的Web应用也是必不可少的。
总结一下,C#调用Servlet发送XML涉及到以下关键技术点: 1. 使用HttpClient或WebClient类构造HTTP请求。 2. 构造带有XML数据的POST请求体。 3. Servlet端配置接收POST请求并解析XML数据。 在实际应用中,可能还需要...
1. **继承HttpServlet**:Servlet的核心基类是javax.servlet.GenericServlet,但通常我们选择继承 javax.servlet.http.HttpServlet,因为这个类已经为我们处理了HTTP协议的细节。HttpServlet提供了doGet()和doPost()...
总结来说,Servlet生命周期包括初始化、处理请求和终止三个关键步骤,每个步骤都有其特定的目的。在开发Servlet时,理解这些阶段和工作原理可以帮助我们更好地设计和实现高效、健壮的Web应用程序。对于初学者来说,...
总结来说,Servlet3.1规范中文版为Java开发者提供了一个遵循Java EE 7或更高版本平台标准的Servlet API实现指南。通过规范的学习,开发者可以掌握如何创建高效、安全的Web应用,并确保其产品和服务的兼容性和可扩展...
- **导入源码**:为了更好地理解和调试Servlet程序,开发者通常需要导入Servlet相关的源码库,以便查看具体实现细节。 - **多路径映射**:一个Servlet可以通过在`web.xml`文件中配置多个`<url-pattern>`元素来映射到...
5. **Servlet的源码分析**:查看Servlet的源码可以帮助理解其实现细节,包括如何处理请求和响应,以及如何与其他组件(如JSP、DAO、Session等)交互。通过源码,我们可以了解Servlet的内部工作原理,优化性能或解决...
关于压缩包中的文件,可能是课程中的示例代码(如`javaEE笔记-servlet代码.docx`)和屏幕截图(如`.png`文件),它们有助于理解Servlet的实现细节和运行时的界面展示。例如,截图可能展示了Servlet配置、调试过程或...
- **技术细节:** - 使用Java标准库中的`java.awt.Graphics`和`javax.servlet.http.HttpServlet`来处理HTTP请求并生成图像。 - 通过`Graphics`对象绘制直线和实心矩形来表示任务的时间段。 - 使用`Graphics....
总结,Servlet结合JDBC提供了实现用户登录和注册功能的强大工具。在实际开发中,还需要考虑更多细节,如错误处理、用户体验优化、安全性强化等。理解这些概念,并结合具体的代码实践,能帮助开发者构建出健壮的Web...
#### 过滤器实现细节 接下来详细介绍过滤器的具体实现过程。 ```java import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletRequest; import javax.servlet....
2. **Servlet 引擎开发者**:他们需要了解API的核心概念和技术细节,以便于开发或改进Servlet容器(即服务器)。 #### 三、Java Servlet API 2.1 的特点 Java Servlet API 2.1版本相比之前的版本有了显著的进步和...
在实际开发中,还需要考虑更多的细节,比如错误处理、事务管理、安全性等。此外,随着技术的发展,现在更多地会采用Spring MVC等框架来替代传统的Servlet实现,但了解Servlet的基础仍然是非常重要的。
总结,Android通过Servlet和HTTP与Web服务器进行通信,实现数据的交换。这个过程中涉及Android客户端的HTTP请求构建、服务器端Servlet的处理逻辑以及数据的序列化和反序列化。在实际开发中,理解这些概念和技术是至...
本文将深入探讨ActionServlet的工作原理、配置细节及其在Struts框架中的作用机制。 #### 二、ActionServlet的继承关系 ActionServlet是基于Java Servlet技术构建的,其继承自`javax.servlet.http.HttpServlet`。...
总结来说,Structs2和Servlet各有优劣。Servlet提供基础的HTTP服务,灵活性高,但需要更多的代码来实现MVC模式;而Structs2作为框架,简化了开发流程,提高了开发效率,更符合MVC的设计原则。在实际项目中,开发者应...
总结来说,"servlet上传下载文件"是一个使用Java Servlet实现的Web应用程序,允许用户上传文件至服务器,并能够从服务器下载这些文件。这个系统的核心在于Servlet的`doPost`或`doGet`方法,它们处理HTTP请求,读取或...