servlet总结1 下载本文

servlet总结

Servlet

C/S--->Client/Server(客户机/服务器) 优点:

1)运行效率较高

2)交互性强适合局域网, 缺点:升级维护困难

B/S-->Browser/Server(浏览器/服务器)

优点:无需关心客户端,升级维护,只需操作服务器即可.比较方便. 缺点:

1)交互性是请求/响应式,需要通过网络进行交互,效率相对c/s架构的软件来说较低. 2)要开发交互性较强的界面比较困难. CGI:最早开发b/s架构的一门技术 从CGI分出 1)微软的ASP--->ASP.NET 2)JAVA的Servlet--->jsp 开发技术: 静态网页技术: HTML,JS,CSS

动态网页技术:(动态说的是数据动态) CGI,ASP,ASP.net,servlet,php,jsp等 url:

http://192.168.1.250:8888/poll/login.jsp

协议://地址(ip-->域名):端口(如果是80,可以省略)/web应用名/资源名 web服务器: (微软的)IIS: (apache的)tomcat(开源的):等.. servlet:

1)属于j2ee的其中一个技术,是一个规范

2)servlet是一个web组件(包含servlet类和他的描述信息) 组件如java bean 可复用的

3)servlet运行的时候就是一个java对象(创建.调用.管理由web服务器(web容器)完成).web容器是web服务器的线程 tomcat的web容器是CATALINA web 容器调用servlet对象的方法 首先由web容器创建两个对象:

1.HttpServletRequest:

包含了客户端提交的所以信息,在servlet中 ,可以通过这个对象获得客户端传递过来的数据. 2.HttpServletResponse:

通过这个对象可以向客户端返回数据

public void service(ServletRequest req,ServletResponse res){ }

web应用的目录结构:

应用名:(web应用的根目录的名字) WEB-INF(必须):浏览器不能直接访问 classes(存放.class文件) lib(存放第三方的.jar文件)

web.xml(描述servlet,包括类名和访问标识) html/first.html js/my.js css/my.css jsp/first.jsp META-INF

tomcat服务器的目录结构:

bin:存放一些可执行文件:比如startup.sh,shutdown.sh

common:存放tomcat服务器和所以web应用都可以使用的类和jar包 conf:存放tomcat服务器使用的一些配置文件.比如 service.xml中可改端口号 logs:存放tomcat服务器和web应用输出的日志信息的文件

server:存放一些只能由tomcat服务器使用的类和jar包,以及tomcat自带的web应用 shared:存放一些只能由web应用使用的类和jar包 temp:存放一些临时文件 *webapps:用来部署web应用

work:存放jsp文件被翻译和编译以后的.java和.class文件. web工程(IDE):通过工程可创建web应用

web应用:(成品软件) javax.servlet.Servlet(接口)

javax.servlet.GenericServlet(抽象类)

javax.servlet.http.HttpServlet(抽象类)(建议使用)

Service-->doGet/doPost(根据客户端请求方式调用,不是非要同时调用)

tomcat由于已经启动无法启动 用命令 ps -ef|grep tomcat 在kill -9 进程号 form表单处理: 1.提供表单

a)提供一个html页面包含一个form表单

b)提供一个servlet返回一个form表单 form表单action属性指定的路径 a)相对路径 register b)绝对路径

/servlet/form/register 2.中文乱码问题 a)get方式提交

解决办法,在服务器中设置客户端提交请求的URI的编码类型 在server.xml中

在server中获得客户端提交的参数之前,调用req对象的setCharacterEncoding方法设定编码类型。 c)响应

在server中获得输出流之前,调用response对象的的setCharacterEncoding方法设定编码类型。

3.method=\和method=\表单的两种提交方式比较) get请求:

a)直接在浏览器地址栏输入请求的URL发起的请求: b)点击一个超连接发起的请求

c)提交一个form表单但form表单的method不指定或指定get的时候 特点:

提交的数据放在请求的头部,一般在查询数据的时候我们会选择get方法发起请求 post请求:

a)提交一个method属性指定为post的表单发起的请求. 特点:

提交的数据放在请求体部,在向客户端提交数据的时候我们会选择使用post方式发起请求. 4.request/response对象中的方法

request.getContextPath();返回web的应用的根路径 request.getMethod();返回请求方式,get或post

request.getParameterMap();获得客户端提交的所有参数,包括参数名字和值 request.getParameterNames();获得客户端参数名字

request.getQueryString();返回URI后面所跟着的参数 如果是post方式提交返回null request.setCharacterEncoding(\设定客户端提交的内容的编码类型 5.servlet的url-pattern的写法(补充) a)以\开始,后面跟着具体的内容 b)前通配(*) :如 *.do,*.action c)后通配 如: /form/*,/basic/*

Servlet的生命周期(四个阶段) 1)装载和实例化阶段 创建者:web容器 创建情况:

(1)第一次访问的时候创建

num(num默认为-1) 当num<0时,第一次访问时创建servlet实例 (2)web应用被安装的时候创建(启动服务器)

当num >=0时,servlet在web应用被安装的时候创建 创建顺序:

num=0,最晚被创建 num>0,值越小越早被创建 2)初始化阶段 调用者:web容器

public void init(ServletConfig config){}

在GenericServlet中已经对有参的init方法作了实现 public abstract class GenericServlet implement Servlet{ private ServletConfig config;

public void init(ServletConfig config){ this.config=config; this.init(); }

public void init(){