javacontextparam简明教程.docx

上传人:b****3 文档编号:5309357 上传时间:2022-12-15 格式:DOCX 页数:13 大小:540.85KB
下载 相关 举报
javacontextparam简明教程.docx_第1页
第1页 / 共13页
javacontextparam简明教程.docx_第2页
第2页 / 共13页
javacontextparam简明教程.docx_第3页
第3页 / 共13页
javacontextparam简明教程.docx_第4页
第4页 / 共13页
javacontextparam简明教程.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

javacontextparam简明教程.docx

《javacontextparam简明教程.docx》由会员分享,可在线阅读,更多相关《javacontextparam简明教程.docx(13页珍藏版)》请在冰豆网上搜索。

javacontextparam简明教程.docx

javacontextparam简明教程

java-context-param简明教程

1.加载顺序

分别对应方法:

contextInitialized(ServletContextEventsce)-》init(FilterConfigconfig)-》init()throwsServletException

都是在tomcat容器启动之前完成的

必须充分理解这一句话:

2.相关源码

SysListener.java

packagecom;

importjavax.servlet.ServletContextEvent;

importjavax.servlet.ServletContextListener;

publicclassSysListenerimplementsServletContextListener{

publicvoidcontextDestroyed(ServletContextEventsce){

//用于在容器关闭时,操作

System.out.println("SysListenercontextDestroyed");

}

//用于在容器开启时,操作

publicvoidcontextInitialized(ServletContextEventsce){

Stringrootpath=sce.getServletContext().getRealPath("/");

System.out.println("-------------rootPath:

"+rootpath);

if(rootpath!

=null){

rootpath=rootpath.replaceAll("\\\\","/");

}else{

rootpath="/";

}

if(!

rootpath.endsWith("/")){

rootpath=rootpath+"/";

}

System.out.println("ApplicationRunPath:

"+rootpath);

Stringurlrewrtie=sce.getServletContext().getInitParameter("urlrewrite");

booleanburlrewrtie=false;

if(urlrewrtie!

=null){

burlrewrtie=Boolean.parseBoolean(urlrewrtie);

}

System.out.println("Usecluster:

"+sce.getServletContext().getInitParameter("cluster"));

System.out.println("Useservletmapping:

"+sce.getServletContext().getInitParameter("servletmapping"));

System.out.println("Usepoststoragemode:

"+sce.getServletContext().getInitParameter("poststoragemode"));

System.out.println("UseUrlrewrite:

"+urlrewrtie);

}

}

Testcontextparam.java

packagecom;

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{

System.out.println("下面的两个参数param1是在servlet中存放的");

System.out.println(this.getInitParameter("param1"));

ServletConfigconfig=getServletConfig();

System.out.println("另外一种获取servletinit-param方法"+config.getInitParameter("param1"));

System.out.println("下面的参数是存放在servletcontext中的");

System.out.println(getServletContext().getInitParameter("urlrewrite"));

System.out.println("另外一种获取servletcontext方法"+config.getServletContext().getInitParameter("urlrewrite"));

}

@Override

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

System.out.println("Testcontextparamdoget...");

System.out.println("doGet中得到context-param"+getServletContext().getInitParameter("urlrewrite"));

doPost(req,resp);

}

@Override

protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

System.out.println("Testcontextparamdopost...");

}

}

login.jsp:

<%@pagecontentType="text/html;charset=GBK"%>

<%@pageimport="java.util.Enumeration"%>

test

sometestpage!

A请登录先,跳转到login.jsp

<%

out.println("
");

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);

out.println("
");

out.println("
");

ServletContextsc=getServletContext();

Enumerationenema1=sc.getInitParameterNames();

while(enema1.hasMoreElements()){

Stringname=(String)enema1.nextElement();

Stringvalue=sc.getInitParameter(name);

out.println("name="+name+"value="+value+"
");

}

%>

3.web.xml配置

Testcontextparam

com.Testcontextparam

param1

avalibleinservletinit()

0

Testcontextparam

/testcontextparam

urlrewrite

false

cluster

false

servletmapping

*.bbscs

poststoragemode

1

com.SysListener

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.相关源码:

Testcontextparam.java

是在加载webapp的时候初始化的,在容器完成启动前

如下图:

补充:

查看网上的

8.context-param的说明及作用

验证3、4、5的顺序

具体源码查看2.相关源码中的SysListener.java

在tomcat发布filter项目的时候,接着就调用了监听的contextInitialized方法了,而这个方法能获取到值,说明context-param的参数读取先以SysListener

9.参考

一个web项目web.xml的配置中配置作用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1