您的位置:首页 > 其它

servlet的生命周期、解决乱码的方式和get方式提交与post方式提交的区别 学习笔记

2014-11-26 08:37 381 查看
servlet

# servlet的生命周期

@ servlet的生命周期,是由服务器的web容器来进行负责。当web容器加载servlet实例,调用

servlet中的init方法。直到servlet容器销毁,调用destory()方法,将servlet进行

销毁的动作。在这个两个方法调用的期间,会调用service()方法,来处理浏览器发送的过来的请求

@ 在servlet的一个生命周期中,它的init()与destory()方法只会执行一次。但是处理

请求的servcie(doGet/doPost)方法会执行多次,因为在一个servlet生命周期中,浏览器端

可以发送多个请求,也就说明了一个servlet实例可以处理多次请求

# servlet的getInfo方法

@ 这个方法基本上没用。这个方法的作用就是获取servlet的一些描述性的信息

# server的getServletConfig方法

@ 使用这个方法可以获取当前servlet的的ServletConfig对象(某一个Servlet实例的配置信息对象)。

通过这个对象可以获取Servlet配置的初始化参数,这些初始化参数配置在web.xml文件中

例如:

<servlet>

<servlet-name>别名</servlet-name>

<servlet-class>具体的Servlet的路径(包名.类名)</servlet-class>

<!--配置servlet的初始化参数-->

<init-param>

<param-name>参数的key值</param-name>

<param-value>参数的value值</param-value>

</init-param>

</servler>

@ 在一个Servlet的配置中,可以配置多个参数

# Servlet的加载的优先级

@ 在Servlet配置信息中,如果不对加载的优先级进行配置,那么Servlet会有一个默认的加载

优先级。默认的优先级为:当有请求,请求道这个Servlet的时候,这个Servlet才会被web容器

进行初始化并加载

@ 设置Servlet的加载优先级

* 在web.xml文件中的servlet标签节点中配置load-on-startup标签,在标签中

设置优先级别的值(int类型)

例如:

<servlet>

<servlet-name>别名</servlet-name>

<servlet-class>具体的Servlet的路径(包名.类名)</servlet-class>

<!--配置Servlet的加载的优先级-->

<load-on-startup>1</load-on-startup>

</servler>

设置了Servlet的加载优先级,那么在web容器初始化的时候,会初始化Servlet的实例,并且

加载的web容器中

# Servlet的线程安全问题(了解)

@ Servlet本身已经实现了多线程,当有具体的用户请求访问Servlet。都会新开启一个Thread。

@ 在Servlet中的成员变量,如果发生了并发,那么这个成员变量就要考虑线程的安全问题。要想

解决成员变量的线程安全问题,就要在使用的方法中使用同步代码块

例如:

synchronzied(this){

//使用Servlet中定义的成员变量

}

# get方式提交与post方式提交的区别?

@ 地址栏变化

* get方式提交地址栏会发生变化(浏览器有关)

* post放肆提交地址栏没有变化

# HttpServletRequest

@ 负责请求的对象,俗称为request对象。通过这个对象可以获取请求的一些参数

@ 主要的方法有:

* getParameter("key") ;
//获取一个参数

* getParameterValues("key") ; //获取一个参数的多个值

# 解决乱码的方式:

@ post方式解决乱码

* 通过request设置请求体中的编码方式,request.setCharacterEncoding(编码的格式) ;

@ get方式

* 在tomcat中的server.xml文件中的<connector>标签添加URIEncoding属性。进行设置get方式提交的编码

get/post方式可以通过使用重新构建字符串的形式进行转码,格式如下:

String str = new String("要转码的字符串".getBytes(获取编码的方式),需要转的编码格式) ;

例如:

String str = new String(str.getBytes("iso8859-1"),"UTF-8") ;

注:乱码的问题在以后的开发中经常出现。主要要保证编码所到之处编码格式一致

常见的编码格式有:

iso8859-1:一般情况下默认的编码格式

以下是支持中文的编码格式:

GBK

GB2312

GB18030

UTF-8

# http请求写协由三部分组成,如下:

@ 请求行:位于Http请求的第一行

@ 请求头:位于请求行下,请求体之上,但是与请求体具有一个空白行来区分请求头与请求体的区别

@ 请求体:只有post请求方式中才有请求体,get方式请求没有请求体

# 服务器端程序与浏览器之间的转向

@ 使用HttpServletResponse对象页面之间的转向。response对象调用sendredirect("html的url") ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: