开发servlet有三种方法:

(1)    实现 Servlet接口

(2)    通过继承 GenericServlet

(3)    通过继承 HttpServlet

get提交和post提交的区别:

1.   从安全看 get<post 因为get 会把提交的信息显示到地址栏

2.   从提交内容看 get<post get 一般不要大于2k, post理论上无限制,但是在实际开发中,建议不要大于64k

3.   从速度看 get>post

4.   Get可以保留uri中的参数,利于收藏

HttpServletResponse说明:

  1. getWriter() 用于向客户机回送字符数据
  2. getOutputStream() 返回的对象,可以回送字符数据,也可以回送字节数据(二进制数据)

OutputStream os=response.getOutputStream();

os.write("hello,world".getBytes());

如果是回送字符数据,则使用  PrintWriter对象 ,效率高

如果我们是回送字节数据(binary date) ,则只能使用 OutputStream

这两个流不能同时使用;    原因:流会自动关闭,再次使用流已经无效

解决乱码问题:

乱码发生在三种情况:  form提交,超链接,sendRedirect().

1.form提交:

(1)  post:     在服务器端设置成浏览器端的编码方式     request.setCharacterEncoding("utf-8");

   (2)  get:   需要转码两次,因为接收到服务器需要转换成服务器默认语言iso-8859-1,然后在转换成浏览器端的编码.

2.超链接;  和get处理方法一样,因为超链接本质上就是get提交

3.sendRedirect():

返回浏览器乱码:   服务端是中文,浏览器也需要是中文显示,response.setContentType(“text/html;charset=utf-8”);

下载提示框中文乱码:    String temp=java.net.URLEncoder.encode("传奇.mp3","utf-8");

HttpServletRequest对象的详解:

getRequestURL   返回客户端发出请求时的完整URL。

getRequestURI    返回请求行中的资源名部分。

   getQueryString  返回请求行中的参数部分(参数名+值)

getRemoteAddr    返回发出请求的客户机的IP地址

getRemoteHost    返回发出请求的客户机的完整主机名. 如果没有在dns上注册,则只能返回ip地址.

getRemotePort     返回客户机所使用的网络端口号

  客户机的端口号是随机选择的,web服务器的端口号是一定的

getLocalPort         返回web服务器所使用的网络端口号

getLocalAddr        返回WEB服务器的IP地址。

getLocalName       返回WEB服务器的主机名

forward与sendRedirect:

Request中的Attribute在一次请求有效。一次请求:没有返回到浏览器,就为一次请求

区别: (1)发生的位置不同:   sendRedirect 发生 浏览器, forward 发生 web服务器

(2)用法不同:        sendRedirect地址需要带/web名称, forward不需要带/web名称

(3)范围不同:        sendRedirect可以访问到外部的url,  forward只能访问web内的资源

cookie:

cookie存放中文:

存放:  String val=java.net.URLEncoder.encode("顺平","utf-8");

Cookie cookie=new Cookie("name",val);

取出:  String val=java.net.URLDecoder.decode(cookie.getValue(), "utf-8");

out.println("name ="+val);

session:

session是存在服务器的内存中;    如果session属性名重复,则会覆盖.

servletContext:

  servletContext存在服务器,     服务器关闭或者web应用reload  则销毁.

servlet笔记的更多相关文章

  1. servlet 笔记

    Servlet的作用是接收浏览器传给服务端的请求(request),并将服务端处理完的响应(response)返回给用户的浏览器,浏览器和服务端之间通过http协议进行沟通,其过程是浏览器根据用户的选 ...

  2. servlet笔记,配置与 http相关

    tomcat配置环境变量:        JAVA_HOME= 指向你的jdk的主目录(bin目录的上一层) server.xml: <Context path="/myweb2&qu ...

  3. Servlet 笔记-Session 跟踪

    HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录. 但是仍然有以下三种方式来维持 ...

  4. Servlet 笔记-Cookie 处理

    Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息. 识别返回用户包括三个步骤: 服务器脚本向浏览器发送一组 Cookie.例如:姓名.年龄或识别号码等. 浏览器将这些信息存储在本地 ...

  5. Servlet 笔记-异常处理

    当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置. 必须在 web.xml 中使用 error-pa ...

  6. Servlet 笔记-过滤器

    Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...

  7. Servlet 笔记-读取表单数据

    Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值. get ...

  8. Servlet 笔记-servlet实例

    Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类.Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.h ...

  9. Servlet 笔记-生命周期

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程.以下是 Servlet 遵循的过程: Servlet 通过调用 init () 方法进行初始化. Servlet 调用 service()  ...

随机推荐

  1. QTP中DataTable操作大全

    序曲 假设现在有一个Excel文件:D:\data.xls,里面的具体内容如下:有两个Sheet,第一个叫Login,第二个叫InsertOrder: 当前QTP的Test中有两个Action:Log ...

  2. 【分享】LateX排版软件学习教程合集

    来源于:http://www.hejizhan.com/html/xueke/416/x416_13.html  LATEX2e科技排版指南.pdf 8.3 MB  An Example LaTeX ...

  3. 【值得收藏】数据分析和可视化软件IDL的学习资料汇编【可免费下载】

    IDL学习教程 IDL 是一种数据分析和图像化应用程序及编程语言,最初在七十年代后期用于帮助科学家分析火星探险卫星发回的数据.此后,IDL得到广泛运用,使用者日众.IDL能使用户可以迅速且方便地运用此 ...

  4. C#函数式程序设计之函数、委托和Lambda表达式

    C#函数式程序设计之函数.委托和Lambda表达式 C#函数式程序设计之函数.委托和Lambda表达式   相信很多人都听说过函数式编程,提到函数式程序设计,脑海里涌现出来更多的是Lisp.Haske ...

  5. GitHub 简易使用

    笔记内容 学习笔记-段玉磊 Github Github 命令 写这篇文章主要写一下如何运用终端命令,进行Git的配置以及使用,由于本人我不太习惯使用图形IDE,效率没有命令行高,我还是推荐使用命令行进 ...

  6. 7 MySQL存储过程和函数

    目录: 1. 存储过程和函数概述2. 准备工作3. 存储过程操作4. 创建带参存储过程5. 查看存储过程 1. 存储过程和函数概述 MySQL的存储过程(stored procedure)和函数(st ...

  7. .net中的emit

      .net中的emit .net中的emit命名空间是system.reflection.emit.可见,emit是作为反射的一个比较高级的功能. 反射允许我们在运行时获取对象的相关信息,并执行对象 ...

  8. SuperMap iClient

    SuperMap iClient 7C——网络客户端GIS开发平台 产品新特性   SuperMap iClient 7C是空间信息和服务的可视化交互开发平台,是SuperMap服务器系列产品的统一客 ...

  9. js闭包(转)

    一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...

  10. CentOS上搭建java WEB开发环境Tomcat+MySQL+JDK

    对于初学者来说,想在linux系统上搭建一个java web服务器,不知道什么方案可行, 这篇文章主要是告诉这些基础和概念相对薄弱的同学,这样搭建是可行的,大体上没问 题的,出问题也是细节问题.所以此 ...