servlet-servletContext简述

servletContext是servlet中的一个接口,但是更像一个容器。

servletContext的作用:

1.共享servlet数据:

通过this.getServletContext().setAttribute("名字",变量名)    /*传值进去*/

通过this.getServletContext().getAttribute("名字")  /*取值出来*/

这样能在项目中的所用servlet中共享数据。

2.servlet转发:

通过RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/1.jsp");

rd.forward(request, response);

在servlet中并不适合做输出,这时候可以通过转发用jsp输出。

3.在配置文件中用<context-param>初始化参数,在加载web应用的时候,能自动封装到ServletContext中,在所有servlet中都可以直接取

4.读取web应用中的资源文件:

InputStream in = this.getServletContext().getResourceAsStream("/db.properties");
Properties pros = new Properties();
pros.load(in);
String url = pros.getProperty("url");

很多时候可以用来读取连接数据库信息

5.普通java程序读取web中的资源文件

如果读取资源文件的程序不是servlet的话,就只能通过类装载器去读了(类加载器(用来把Java 类动态的加载到 Java 虚拟机中。)

String path = UserDao.class.getClassLoader().getResource("test.properties").getPath();
FileInputStream in = new FileInputStream(path);
Properties dbconfig = new Properties();
dbconfig.load(in);
String url = dbconfig.getProperty("url");

类装载器只会装载一次,服务器发现里面有内存里有有装载文件就不会在装载了。
通过类加载的方式得到资源文件的位置,在通过传统方式读取资源文件的数据,这样可以读到更新后的数据。

时间: 2024-10-25 06:07:05

servlet-servletContext简述的相关文章

Spring boot ---- java.lang.NoClassDefFoundError: javax/servlet/ServletContext

场景描述 项目中用到spring boot进行带页面的开发,从github上的simples中下载了对应的spring-boot-sample-web-jsp项目,经简单修改之后死活启动不起来,各种异常.spring-boot以简单容易上手为核心宗旨,可为什么在引入jar时就会出现这么多问题呢? 异常信息 异常一: 2016-06-17 11:04:14.216 ERROR 4684 --- [ main] o.s.boot.SpringApplication : Application sta

java.lang.NoClassDefFoundError: javax/servlet/ServletContext

方法1:把SpringBoot中main方法所在的class不再继承org.springframework.boot.context.web.SpringBootServletInitializer即可 因为继承org.springframework.boot.context.web.SpringBootServletInitializer,并重写里面的configure方法,即可将这个项目打成war,并部署到tomcat或其它jee容器中. protected SpringApplicatio

【原】tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig的解决

现象: tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig 解决: 把tomcat目录下的lib/servlet-api.jar文件拷贝到$JAVA_HOME/jre/lib/ext目录下,再启动tomcat问题解决

报错org.apache.catalina.LifecycleException caused by java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader

今天将tomcat6更换成了tomcat7,报错的内容 严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/webandr

Cannot find the class file for javax.servlet.ServletContext.

当eclipse中新导入的Java Project的时候,往往会碰到各种各样的问题,下面是个典型的问题: 如何解决该问题: 方案1. Project--->Properties-->Libraries 中添加 Tomcat中的 serverlet-api.jar 方案2. 添加配置tomcat服务器到Java Project中 Cannot find the class file for javax.servlet.ServletContext.

tomcat7 启动项目报错 java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()

JDK版本:jdk1.8.0_77 Tomcat 版本:apache-tomcat-7.0.47 异常重现步骤: 1.完成项目部署 2.启动Tomcat 异常头部信息:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig() 解决方案: 把apache-tomcat-7.0.47/lib/servlet-api.jar 拷贝到$JAVA_HOME/jre/lib/ext目录下去 参考博文:

如果遇到java.lang.NoClassDefFoundError: javax/servlet/ServletContext问题具体代码和解决方案如下面所示

出现的问题: java.lang.NoClassDefFoundError: javax/servlet/ServletContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at org.spring

java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;

在实验室上电脑搭建服务器端时,已有tomcat6.0版,不支持servlet3.0,于是重新搭建tomcat7.0版出现下面信息 java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader; 查找网上信息,低版本有叫改web.xml的,servlet3.0根本不需要修改. 后查stackoverflow也晕菜.搜索网上,解决方法如下: 修改jre/lib\ext里

Servlet——ServletContext

一.ServletConfig:javax.servlet.ServletContext包: //对应jsp中的application //其中定义了很多方法使得Servlet可以和tomcat进行数据交互和罗基交换: //ServletContext在当前web程序和jvm中唯一,允许在多个Servlet之间数据的共享; 二.获取ServletContext对象: (1)通过GenericServlet提供的 getServletContext(): //this.getServletCont

Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.linewell.wechat.WechatApplication]; nested exception is java.lang.IllegalStateException: Failed to introspect annotated methods on class org.spri