javacontextparam简明教程Word下载.docx
- 文档编号:18291214
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:13
- 大小:540.85KB
javacontextparam简明教程Word下载.docx
《javacontextparam简明教程Word下载.docx》由会员分享,可在线阅读,更多相关《javacontextparam简明教程Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
//用于在容器开启时,操作
publicvoidcontextInitialized(ServletContextEventsce){
Stringrootpath=sce.getServletContext().getRealPath("
/"
-------------rootPath:
"
+rootpath);
if(rootpath!
=null){
rootpath=rootpath.replaceAll("
\\\\"
"
}else{
rootpath="
;
}
if(!
rootpath.endsWith("
)){
rootpath=rootpath+"
ApplicationRunPath:
Stringurlrewrtie=sce.getServletContext().getInitParameter("
urlrewrite"
booleanburlrewrtie=false;
if(urlrewrtie!
burlrewrtie=Boolean.parseBoolean(urlrewrtie);
Usecluster:
+sce.getServletContext().getInitParameter("
cluster"
));
Useservletmapping:
servletmapping"
Usepoststoragemode:
poststoragemode"
UseUrlrewrite:
+urlrewrtie);
Testcontextparam.java
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.ServletConfig;
importjava.io.IOException;
/**
*Createdbyliuswkon2015/8/19.
*/
publicclassTestcontextparamextendsHttpServlet{
publicvoidinit()throwsServletException{
下面的两个参数param1是在servlet中存放的"
System.out.println(this.getInitParameter("
param1"
ServletConfigconfig=getServletConfig();
另外一种获取servletinit-param方法"
+config.getInitParameter("
下面的参数是存放在servletcontext中的"
System.out.println(getServletContext().getInitParameter("
另外一种获取servletcontext方法"
+config.getServletContext().getInitParameter("
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,IOException{
Testcontextparamdoget..."
doGet中得到context-param"
+getServletContext().getInitParameter("
doPost(req,resp);
}
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
Testcontextparamdopost..."
login.jsp:
<
%@pagecontentType="
text/html;
charset=GBK"
%>
%@pageimport="
java.util.Enumeration"
%>
html>
head>
<
title>
test<
/title>
/head>
body>
sometestpage!
A请登录先,跳转到login.jsp
%
out.println("
br>
Enumerationenema=application.getInitParameterNames();
while(enema.hasMoreElements()){
Stringname=(String)enema.nextElement();
Stringvalue=application.getInitParameter(name);
out.println("
name="
+name+"
value="
+value+"
//Stringaa="
//for(inti=10;
i<
1000;
i++){
//aa+="
user"
+i+"
"
//}
//out.println(aa);
ServletContextsc=getServletContext();
Enumerationenema1=sc.getInitParameterNames();
while(enema1.hasMoreElements()){
Stringname=(String)enema1.nextElement();
Stringvalue=sc.getInitParameter(name);
/body>
/html>
3.web.xml配置
servlet>
servlet-name>
Testcontextparam<
/servlet-name>
servlet-class>
com.Testcontextparam<
/servlet-class>
init-param>
param-name>
param1<
/param-name>
param-value>
avalibleinservletinit()<
/param-value>
/init-param>
load-on-startup>
0<
/load-on-startup>
/servlet>
servlet-mapping>
url-pattern>
/testcontextparam<
/url-pattern>
/servlet-mapping>
context-param>
urlrewrite<
false<
/context-param>
cluster<
servletmapping<
*.bbscs<
poststoragemode<
1<
listener>
listener-class>
com.SysListener<
/listener-class>
/listener>
4.在监听中使用context-prarm
在监听中得到context-param参数,首先实现ServletContextListener接口,这个接口有2个方法
源码在2.相关源码中,可以看到SysListener
在启动web应用的过程中就执行初始方法了,如下
5.在jsp中使用context-prarm
具体见2相关源码中的login.jsp
源码中使用了jsp内置对象application或者getServletContext
都ok
得到结果:
6.在servlet中使用context-param
见2相关源码:
Testcontextparam.java
分别取得servlet中的init-param
和context-param中的参数
7.servlet的init方法加载时间
具体源码查看2.相关源码:
是在加载webapp的时候初始化的,在容器完成启动前
如下图:
补充:
查看网上的
8.context-param的说明及作用
验证3、4、5的顺序
具体源码查看2.相关源码中的SysListener.java
在tomcat发布filter项目的时候,接着就调用了监听的contextInitialized方法了,而这个方法能获取到值,说明context-param的参数读取先以SysListener
9.参考
一个web项目web.xml的配置中<
配置作用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javacontextparam 简明 教程