① web.xml里设定的 <context-param> 是所有context都能看到的吧每个context自己的param能设定吗
每个Servlet都可以看到,而且可以自己定义条项,连名称带值都可以定义。
1.启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>
2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.
3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.
4.容器创建<listener></listener>中的类实例,即创建监听.
5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得
ServletContext = ServletContextEvent.getServletContext();
context-param的值 = ServletContext.getInitParameter("context-param的键");
6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.
换句话说,这个时候,你对<context-param>中的键值做的操作,将在你的WEB项目完全启动之前被执行.
7.举例.你可能想在项目启动之前就打开数据库.
那么这里就可以在<context-param>中设置数据库的连接方式,在监听类中初始化数据库的连接.
8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.
9.... 以上资料来自<<Head First Servlet&JSP>>
② JavaWeb中,上下文的概念是什么
作用域的问题。就是你里面的操作在某个范围内有效。
③ webservice接口的参数应该如何定义
publicstaticStringexcute(Stringurl,StringmethodName,String[]args)throwsException{
logger.info("WebServiceClientPARAMis[url:"+url+",methodName"+methodName+",Args"+Arrays.asList(args)+"]");
if(url.lastIndexOf("?WSDL")==-1){
url+="?WSDL";
}
try{
Clientclient=newClient(newURL(url));
Object[]results=client.invoke(methodName,args);
if(results.length>0){
return(String)results[0];
}else{
return"";
}
}catch(Exceptione){
e.printStackTrace();
logger.error("远程接口调用异常",e);
thrownewException("WEBSERVICE接口调用异常,请联系管理");
}
}
④ web应用程序的上下文路径指的是什么路径举出web配置例子,谢谢
1.在%CATALINA_HOME%\conf\context.xml这个文件中,编辑Context元素属性 例: <Context path="/MyPro" docBase="F:\MyProject\MyPro" reloadable="true"> </Context> path属性代表web应用程序的上下文根路径 docBase属性指定了web应用程序的文档基目录 reloadable属性,如果指定为true,Tomcat服务器在运行时,会监视WEB-INF/classes和WEB-INF/lib目录下的类的改变,如果发现有类被更新,Tomcat服务器将自动重新加载该web应用程序。 2..%CATALINA_HOME%\conf\[enginename]\[hostname]xxx.xml,enginename是在server.xml文件中设置的<Engine>元素的name属性的值,[hostname]是在server.xml文件中设置的<Host>元素的name属性的值 这个xxx.xml文件的文件名“xxx”被作为web应用程序的上下文根路径,而不管你在xxx.xml文件中的<Context>元素的path属性是什么
⑤ 解释下关于WebApplicationContextUtils
Spring 包中的一个公用类,一般用来获取,web上下文的信息
ctx = WebApplicationContextUtils.(ServletActionContext.getServletContext());
得到web应用的上下文信息,填入的参数,是由struts2,所提供的当前servlet上下文的信息。
⑥ JSP中站点中的WEB-INF下的web.xml文件有什么用呢一般写什么内容的
jsp站点中web-inf下的web.xml是配置服务器启动时加载的一些参数和初始化servlet的信息。
通常有以下配置信息:
1、命名与定制URL
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
url-pattern的意思是所有的.do文件都会经过TestServlet处理。
2、定制初始化参数
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
<init-param>
<param-name>userName</param-name>
<param-value>Tommy</param-value>
</init-param>
<init-param>
<param-name>E-mail</param-name>
<param-value>[email protected]</param-value>
</init-param>
</servlet>
经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。
//上下文参数:声明应用范围内的初始化参数。
<context-param>
<param-name>ContextParameter</para-name>
<param-value>test</param-value>
<description>It is a test parameter.</description>
</context-param>
//在servlet里面可以通过getServletContext().getInitParameter("context/param")
3、得到指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception<exception-type>
<location>/exception.jsp<location>
</error-page>
<error-page>
<exception-type>java.lang.NullException</exception-type>
<location>/error.jsp</location>
</error-page>
4、设置过滤器:比如设置一个编码过滤器,过滤所有资源
<filter>
<filter-name>XXXCharaSetFilter</filter-name>
<filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XXXCharaSetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5、设置监听器
web.xml中的<listener></listener>有什么用? 没别的用处!就是配置监听类的~,它能捕捉到服务器的启动和停止! 在启动和停止触发里面的方法做相应的操作! 它必须在web.xml 中配置才能使用! web.xml 中listener元素不是只能有一个,有多个时按顺序执行。
⑦ 如何修改 webservice里面的参数
在应用程序中添加配置文件(如Winform的一般是app.config,webform的一般是web.config),在<appSettings>目录下添加一个配置WebService引用地址的节点,如:<add key="webServiceAddr" value="http://192.168.1.105:800/TestWebService.asmx?wsdl"/>
.在应用程序中应用private void button1_Click(object sender, EventArgs e){string result = string.Empty;string serviceAddr = string.Empty;try{serviceAddr = System.Configuration.ConfigurationManager.AppSettings["webServiceAddr"].ToString();//此处调用的是我们自己定义的构造函数,参数为WebService引用的地址ServiceCenter.TestWebService webService = new WebServiceApp.ServiceCenter.TestWebService(serviceAddr);result = webService.Test();}catch (Exception ex){result = ex.Message;}MessageBox.Show(serviceAddr + "++++" + result);}
在Winform应用程序中,app.config等应用程序配置文件在生成的时候自动生成到了bin目录下面的应用程序名.exe.config文件,修改里面的webServiceAddr节点即可。需要注意的一点就是,如果生成的时候把app.config文件也生成到了bin目录下,此时修改app.config里面的配置是无效,还必须得修改(应用程序名.exe.config)这个文件。如果是把webservice引用地址放在自定义的的xml文件中,则生成到bin目录下,响应bin目录下的xml文件即可。
4
//Web服务对象
WebReference.Service1SoapClient objService = new WebReference.Service1SoapClient("Service1Soap","你要修改的URL例如:http://www.xxxx/webservices.asmx");
我们只要动态配置一下URL就行了,存储在数据库、XML或者。别的地方都是可以的。
⑧ 当web应用程序被关闭时,servlet会调用servlet context的哪个方法
ServletContext是上下文参数,容器关闭时怎么会调用上下文参数呢?
有个ServletContextLisenner。里面有个contextDestroyed方法,实在监听者中的
servlet中有个destroy方法,是容器关闭时用于销毁servlet实例
⑨ javaweb中上下文对象,谁可以给我解释清楚呢,好乱
上下文说白了就是这个对象里装有各种数据对象和相关的各种信息,但是只在一定范围内有效。比如application,系统一启动就存在的,你可以将某些不变的系统信息存在这个对象里面,要用的时候就拿出来用。再比如request对象,每个请求来之后,request里有你的请求参数和数据,以及客户端信息,像ip之类的。
上下文只是字面上感觉不好理解,也没太多意思。