servlet重要的知识点
Java Servlet知识点归纳
Servlet生命周期
1.servlet容器完成加载Servlet类加载和实例化:
当servlet容器启动时,或者servlet容器检测到需要这个servlet服务的第一个请求时, servlet容器会加载这个servlet,并生成servlet实例。也可以在两者之间的任何时候执行(配置为load on start up的 servlet是在容器启动时被加载的)。
2.serlet初始化
当servlet实例化后,容器将调用这个对象的init()方法进行初始化,初始化的目的是在这个实例为请求提供服务前完成初始化工作,如建立配置连接,获取配置信息等。servlet实例可以使用容器为其提供的ServletConfig对象,从web应用程序的配置信息中(即web.xml文件),获取初始化的参数信息
3.服务
Servlet容器调用servlet实例的service()方法来对请求进行处理。在service()方法中,servlet实例通过ServletRequest对象,来获取客户端的相关信息和请求信息;处理完成后,servlet实例通过ServletResponse对象来设置相应信息。
4.销毁
当容器检测到某个servlet实例需要在服务中移除时,则容器将调用servlet实例的destroy()方法,以便释放实例所使用的资源,并将数据存储到持久存储设备中。当调用destroy()方法后,容器将释放此servlet实例,该实例随后将由垃圾回收器进行垃圾回收处理。如果再有对此实例的服务请求时,容器将重新创建一个新的servlet实例。
如何获得请求参数?
1. request。getParameter(“name”);
2. 如果一个请求参数有多个值,需要返回一个数组!
String []size=request.getParameter(“name”);
For(int i=0;i
out.print(size[0]);}
除了参数,还可以获得其他
1与请求相关的cookie Cookie [] cookies=request.getCookies();
2与会话相关的session Session session=request.getSession();
3请求的HTTP方法 String methed=request.getMethed();
Request对象的主要方法:
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
getHeader(String name):获得HTTP协议定义的文件头信息
getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例
getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(String name):获得客户端传送给服务器端的有name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getParametervalues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Boolean create]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性
RequestDispacherciew=request getRequestDispacher(“result.jsp”);
view.forword(request, response); 请求派发向客户端输出的方法:
Response.setContentType(“application/jar”); 设置返回浏览器内容类型!
response.getOutputStream(); 初始化一个输出流对象。
response.getWrite();
response.secdredirect(); 重定向
response.setHead(”foo”,”bar”);
response.addHead(”foo”,”bar”);
用于在Web应用范围内存取共享数据的方法。
注:web应用范围具有以下两层含义:
(1) 表示有web应用的生命周期构成的时间段.
(2) 表示在web应用的生命周期内所有web组件的集合。
Ø setAttribute(String name,java.lang.Object object):把一个java对象和一个属性名绑定,并存放到ServletContext中,参数name指定属性名,参数Object表示共享数据。 Ø
getAttribute(String name):根据参数给定的属性名,返回一个Object类型的对象。
Ø getAttributeNames():返回一个Enumeration对象,该对象包含了所有存放在ServletContext中的属性名。
Ø removeAttribute(String name):根据参数指定的属性名,从servletContext对象中删除匹配的属性。
访问当前Web应用的资源
Ø getContextpath():返回当前web应用的URL入口。
Ø getInitParameter(String name):返回web应用方位内的匹配的初始化参数值。在web.xml中元素中元素表示应用范围内的初始化参数。 Ø
getInitParameterNames():返回一个Enumeration对象。
Ø getServletContextName():返回web应用的名字。即元素中元素的值。
Ø getRequestDispatcher(String path):返回一个用于向其他web组件转发请求的RequestDispatcher对象。
web.xml文件
web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等
5、get 和post 比较
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
6.response.setContentType(“Application/jar”); 说明要返回给客户一个jar文件。
7.用servelt向客户端输出
1.以字符形式输出
PrintWrite pw=response.getWrite();
pw.println(“acvbbb”);
2.以流的形式输出
ServletOutStream out=response.getOutputSt();
out.write(“sssssss”);
8.监听器:Listener
它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是: 做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。
看了“servlet重要的知识点”的还看了:
1.java web基础知识
2.jsp基础知识
3.java实习日记范文3篇
4.java实习报告范文3篇