开发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. Dynamics CRM 2013 体验

    CRM 2013终于可以下载了,赶紧下载安装. 在CRM 2011 的基础上,CRM 2013 在UI上有了很大的变化.从CRM 2011 RollUp 12开始,微软就放弃了按钮的立体效果,逐渐趋向 ...

  2. C++ string和c类型字符数组的比较

    在c++中string是很方便操作的字符串,支持多种算数运算和比较运算,操作起来非常灵活.string也具有一些容器的性质,可以通过迭代器对字符元素进行访问 c类型的字符数组有如下三种初始化方式: / ...

  3. C++ 顺序容器 vector list deque 之比较

    在C++标准库中定义了三种顺序容器类型:vector,list和deque.所谓顺序容器就是根据位置来存储和访问元素,元素的排列次序与元素的值无关,而是由元素添加到容器的次序决定的. vector的底 ...

  4. @Html.CheckBoxFor为何输出两种控件

    在MVC中当使用@Html.CheckBoxFor时表单上会产生两种控件checkbox和hidden,比如: @Html.CheckBoxFor(model => model.IsTop) 对 ...

  5. Python基础-类的探讨(class)

    Python基础-类的探讨(class) 我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法  Python ...

  6. jQuery图片切换插件jquery.cycle.js

    Cycle是一个很棒的jQuery图片切换插件,提供了非常好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <he ...

  7. 目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建

    目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建 通过上面的介绍我们知道利用HttpControllerSelector可以根据 ...

  8. 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 一

    1. Linux的档案权限与目录配置      一.基础知识:             a.分为三类,拥有者(owner).群组(group).其他人(other)             b.三个核 ...

  9. Morn简介及使用教程

    [Morn UI系列教程]Morn简介及使用教程 网页游戏开发的一大部分工作是在和UI制作上,一个好的工具及框架能使开发事半功倍,Adobe自带flash IDE和Flex各有不足. Morn UI学 ...

  10. json时间格式的互换

    c#代码 public class DateTimeUtil { /// <summary> /// 把json的时间格式还原-服务端 /// </summary> /// & ...