javaEE之------Servlet通过web.xml传参数(生命周期)
2015-11-13 16:05
627 查看
当用到这个方法的时候,我们必须要知道,Servlet的生命周期
Servlet的生命周期:
init方法。
只会被初始化一次。由容器初始化。初始化成功后将缓存与容器中。
它的初始时间分为两种:
用户第一次访问时。
服务器启动时。-需要配置。
service方法
每次请求都会访问此方法。
每次请求都会创建新的Request和Response对像。
destory方法
当服务器关闭时由容器调用并销毁。
图演示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201511/07c6b0677dd2fff085d07cfa21410cc4)
能看到,每次想服务器请求都会先解析web.xml文件,然后下一步进行下一步操作
参数的传递:如我们需要指定字符编码等:就可以写在web.xml文件中
xml文件中写入参数代码:
<servlet>
<servlet-name>ParamDemo</servlet-name>
<servlet-class>cn.hncu.TestXMLPara.ParamDemo</servlet-class>
<pre name="code" class="html" style="font-size:18px;"> <!-- 在web.xml中参数配置--单个配置 指定参数,然后从后台去获取--> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param>
<init-param> <param-name>charset2</param-name> <param-value>gbk</param-value> </init-param> <init-param> <param-name>name</param-name> <param-value>ROSE</param-value> </init-param> <init-param> <param-name>age</param-name> <param-value>20</param-value> </init-param></servlet>
在xml文件中一般都是key---value 的形式。类似map的存储方式。所以我们去获取就用方法了
几种常用的方式-------拿出参数
获取web.xml中参数几种方法
* 1,通过ServletConfig对象获取
* 2,/直接利用当前servlet对象
* 3,通过ServletConfig对象获取所有配置的Servlet初始化参数,然后遍历
方法一:通过ServletConfig对象获取
//法一:因为在web.xml中都是ServletConfig对象里面的。通过ServletConfig对象获取
ServletConfig<span style="color:#ff0000;"> con =this.getServletConfig()</span>;
String charset=<span style="color:#ff0000;">con.getInitParameter("charset");//拿出相应的参数</span>
String charset1=con.getInitParameter("charset2");
String name=con.getInitParameter("name");
String age=con.getInitParameter("age");
System.out.println("这是法1获取参数:"+charset+","+charset1+","+name+","+age);
方法二: 直接利用servlet调用
方法三:通过ServletConfig对象获取所有配置的Servlet初始化参数,然后遍历------类似于key------value
上面的都只是相对于单个,不能应用于整个项目,不然需要一个个去单独配。很麻烦,所以采用sevletcontext可以指定整个
在web.xml中添加
<span style="font-size:24px;"> <context-param>
<param-name>charset123</param-name>
<param-value>utf-86</param-value>
</context-param></span>
这样就可以了指定整个项目的参数,如字符编码,整个项目采用同一个字符编码,单个特殊的可以采用上面的方式单独配。
在Servlet中取也是不一样,需要采用Servletcontext方式
//获取全局变量的方式----写在ServletContext中,所以需要通过ServletContext()来获取
String aa=getServletContext().getInitParameter("charset123");//但是这个参数必须要一样
System.out.println("这是全局的参数"+aa);
效果:可以获取参数:
Servlet的生命周期:
init方法。
只会被初始化一次。由容器初始化。初始化成功后将缓存与容器中。
它的初始时间分为两种:
用户第一次访问时。
服务器启动时。-需要配置。
service方法
每次请求都会访问此方法。
每次请求都会创建新的Request和Response对像。
destory方法
当服务器关闭时由容器调用并销毁。
图演示:
能看到,每次想服务器请求都会先解析web.xml文件,然后下一步进行下一步操作
参数的传递:如我们需要指定字符编码等:就可以写在web.xml文件中
xml文件中写入参数代码:
<servlet>
<servlet-name>ParamDemo</servlet-name>
<servlet-class>cn.hncu.TestXMLPara.ParamDemo</servlet-class>
<pre name="code" class="html" style="font-size:18px;"> <!-- 在web.xml中参数配置--单个配置 指定参数,然后从后台去获取--> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param>
<init-param> <param-name>charset2</param-name> <param-value>gbk</param-value> </init-param> <init-param> <param-name>name</param-name> <param-value>ROSE</param-value> </init-param> <init-param> <param-name>age</param-name> <param-value>20</param-value> </init-param></servlet>
在xml文件中一般都是key---value 的形式。类似map的存储方式。所以我们去获取就用方法了
几种常用的方式-------拿出参数
获取web.xml中参数几种方法
* 1,通过ServletConfig对象获取
* 2,/直接利用当前servlet对象
* 3,通过ServletConfig对象获取所有配置的Servlet初始化参数,然后遍历
方法一:通过ServletConfig对象获取
//法一:因为在web.xml中都是ServletConfig对象里面的。通过ServletConfig对象获取
ServletConfig<span style="color:#ff0000;"> con =this.getServletConfig()</span>;
String charset=<span style="color:#ff0000;">con.getInitParameter("charset");//拿出相应的参数</span>
String charset1=con.getInitParameter("charset2");
String name=con.getInitParameter("name");
String age=con.getInitParameter("age");
System.out.println("这是法1获取参数:"+charset+","+charset1+","+name+","+age);
方法二: 直接利用servlet调用
//法二 直接利用servlet调用 String charset2 =<span style="color:#ff0000;"> this.getInitParameter("charset");</span> String charset3 = this.getInitParameter("charset2"); String name1=this.getInitParameter("name"); String age1=this.getInitParameter("age"); System.out.println("这是法2获取参数:"+charset2+","+charset3+","+name1+","+age1);
方法三:通过ServletConfig对象获取所有配置的Servlet初始化参数,然后遍历------类似于key------value
//法三 通过ServletConfig对象获取所有配置的Servlet初始化参数,然后遍历 ServletConfig con1 =this.getServletConfig(); String str=""; Enumeration<String> en=con1.getInitParameterNames();//获得所有的参数 while(en.hasMoreElements()){ String key =en.nextElement(); String value=con1.getInitParameter(key); str = str +","+ value; } System.out.println("这是法3获取参数:"+str);
上面的都只是相对于单个,不能应用于整个项目,不然需要一个个去单独配。很麻烦,所以采用sevletcontext可以指定整个
在web.xml中添加
<span style="font-size:24px;"> <context-param>
<param-name>charset123</param-name>
<param-value>utf-86</param-value>
</context-param></span>
这样就可以了指定整个项目的参数,如字符编码,整个项目采用同一个字符编码,单个特殊的可以采用上面的方式单独配。
在Servlet中取也是不一样,需要采用Servletcontext方式
//获取全局变量的方式----写在ServletContext中,所以需要通过ServletContext()来获取
String aa=getServletContext().getInitParameter("charset123");//但是这个参数必须要一样
System.out.println("这是全局的参数"+aa);
<span style="white-space:pre"> </span>request.setCharacterEncoding(aa);//这样就设置了采用指定的编码去接收从前台传过来的数据了
效果:可以获取参数:
相关文章推荐
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- C#针对xml基本操作及保存配置文件应用实例
- Ruby程序中创建和解析XML文件的方法
- asp下查询xml的实现代码
- ASP编码必备的8条原则
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法
- C#中的Linq to Xml详解
- C#操作XML文件实例汇总
- SQL Server中的XML数据进行insert、update、delete
- XML指南——XML编码
- SQL Server中的XML数据进行insert、update、delete操作实现代码
- 关于SQLServer2005的学习笔记 XML的处理
- C#中字符串编码处理