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说明:

  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  则销毁.

时间: 2024-10-11 19:55:08

servlet笔记的相关文章

Servlet 笔记

1,精确配置 表单提交地址 action="<%=request.getContextPath()%>/AddNewsServlet" <%=request.getContextPath()%> -->获取页面上下文环境 <url-pattern>配置内容: <url-pattern>/AddNewsServlet</url-pattern>2,Servlet 和 Filter 初始化顺序 ①Filter 在web服务器

servlet笔记整理

一.简介 servlet是一段服务器程序,它是客户端和服务端的 中间层.可以通过servlet往页面动态展示当前时间,可以从客户端接受数据存到数据库,或者从数据库取数据到页面展示给客户. 二.应用程序的体系结构 1.C/S(Client/Server) 特点:1必须安装特定软件:   2维护升级麻烦: 2.B/S(Browser/Server) 特点:1不需要安装特定软件   2维护升级相对简单   3使用的是http协议,方便和internet整合 三. (1)实现servlet接口  必须实

Servlet笔记9--转发与重定向

关于Web中资源跳转的问题: 转发和重定向基本代码: 1 package com.bjpowernode.javaweb; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.h

Servlet笔记6--Servlet程序改进

第一步改进,GenericServlet: 我们目前所有放入Servlet类直接实现了javax.servlet.Servlet接口,但是这个接口中有很多方法是目前不需要的,我们可能只需要编写service.直接实现Servlet接口代码丑陋,有必要在中间添加一个适配器,以后所有的Servlet类不再直接实现Servlet接口,应该去继承适配器类. 适配器除了可以让代码优雅之外,我们还可以在适配器中提供大量的方法,子类继承之后,可以在子类中直接使用,方便编程. 自己使用缺省适配器设计模式实现的G

Servlet笔记8--乱码解决方案

乱码解决方案: 代码详解: 1 package com.bjpowernode.javaweb.servlet; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.H

新手学习JSP+Servlet笔记一

作为一个新手,初次接触jsp,servlet,习惯了后台的开发,前台的知识一窍不通,利用闲暇时间,给自己补补,从MyEclipse开始. 安装好MyEclipse之后,没有安装程序的可以下载 http://yunpan.cn/cAXWu3zjE5Ssj  提取码 7aaa 新建一个Web Project,MyEclipse很多都是定义好的模板,新建一个Servlet,简单的工程就建好了 Web.xml中 <?xml version="1.0" encoding="UTF

Servlet笔记10--Session

Web编程中的Session: 代码示例: 1 package com.bjpowernode.javaweb.servlet; 2 3 import java.io.IOException; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servle

Servlet笔记11--补充

Servlet线程安全问题: 代码示例: 1 package com.bjpowernode.javaweb.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletR

Servlet 笔记-Session 跟踪

HTTP 是一种"无状态"协议,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录. 但是仍然有以下三种方式来维持 Web 客户端和 Web 服务器之间的 session 会话: Cookies 一个 Web 服务器可以分配一个唯一的 session 会话 ID 作为每个 Web 客户端的 cookie,对于客户端的后续请求可以使用接收到的 cookie 来识别. 这可能不是一个有效的方法,因为很多浏览器不支持 cook