servlet笔记
开发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说明:
- getWriter() 用于向客户机回送字符数据
- 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笔记的更多相关文章
- servlet 笔记
Servlet的作用是接收浏览器传给服务端的请求(request),并将服务端处理完的响应(response)返回给用户的浏览器,浏览器和服务端之间通过http协议进行沟通,其过程是浏览器根据用户的选 ...
- servlet笔记,配置与 http相关
tomcat配置环境变量: JAVA_HOME= 指向你的jdk的主目录(bin目录的上一层) server.xml: <Context path="/myweb2&qu ...
- Servlet 笔记-Session 跟踪
HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录. 但是仍然有以下三种方式来维持 ...
- Servlet 笔记-Cookie 处理
Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息. 识别返回用户包括三个步骤: 服务器脚本向浏览器发送一组 Cookie.例如:姓名.年龄或识别号码等. 浏览器将这些信息存储在本地 ...
- Servlet 笔记-异常处理
当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置. 必须在 web.xml 中使用 error-pa ...
- Servlet 笔记-过滤器
Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...
- Servlet 笔记-读取表单数据
Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值. get ...
- Servlet 笔记-servlet实例
Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类.Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.h ...
- Servlet 笔记-生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程.以下是 Servlet 遵循的过程: Servlet 通过调用 init () 方法进行初始化. Servlet 调用 service() ...
随机推荐
- [置顶] Vector ArrayList区别剖析
Java中Vector与ArrayList的区别?这是一个很常见的面试题目:) Vector与ArrayList其实是非常相似的,不信,你可以看看源码,如果说真的有什么区别的话,大概有以下三点: 1: ...
- linux sar 命令详解(转载)
linux sar 命令详解 2013-04-01 11:05 [小 大] 来源: 开源中国社区 评论: 0 分享至: 百度权重查询 词库网 网站监控 服务器监控 SEO监控 手机游戏 iPhone游 ...
- 介绍一款基于jquery好用的编辑框htmlbox.full.js
1. 可选择背景颜色,自主选择工具,感觉挺好用的,不过需要注意,添加引用后找不到工具图标的图片,找到脚本修改idir:属性改成自己的图片文件夹存放路径即可. asp.net mvc3提交内容报错提示含 ...
- NET开发面向对象2
面向对象 (2) 继续上一篇<ASP.NET开发,从二层至三层,至面向对象>http://www.cnblogs.com/insus/p/3822624.html .我们了解到怎样把自己的 ...
- SpringMVC数据绑定
SpringMVC学习系列(5) 之 数据绑定-2 在系列(4)中我们介绍了如何用@RequestParam来绑定数据,下面我们来看一下其它几个数据绑定注解的使用方法. 1.@PathVariab ...
- Effective C++(13) 用对象管理资源
问题聚焦: 从这条准则开始,都是关于资源管理的. 资源,一旦用了它,将来必须还给系统. 本条准则,基于对象的资源管理办法,建立在C++的构造函数,析构函数和拷贝函数(拷贝构造函数和重载赋值操作符)的基 ...
- DIP And DI
依赖倒置(DIP)与依赖注入(DI) 依赖倒置原则(Dependency Inversion Principle)为我们提供了降低模块间耦合度的一种思路,依赖注入(Dependency Injec ...
- 工作经常使用的SQL整理
工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战 ...
- 几个 jQuery 小提示和技巧
几个 jQuery 小提示和技巧 今天,我们将分享一些很有用的技巧和窍门给 jQuery 开发人员.jQuery 是最好的 JavaScript 库之一,用于简化动画,事件处理,支持 Ajax 和 H ...
- 【IOS开发】搜索和排序(好友列表,通讯录的实现,searchbar)
一.效果图: 二.概述 实现一个好友列表,可以分为男女两个选项,并且实现搜索和排序功能.我的数据是放在plist文件中. 三.代码简述 代码结构如图,首先自定义一个Cell. cell.h #impo ...