public void init() throws ServletException {
String driverClass = getInitParameter("driverClass"); //调用的是>
thisgetServletContext()getRealPath("") ;获取web站点在硬盘中的绝对路径
thisgetServletConfig()getInitParameter("action");获取webxml文件中名称为“action”的参数值
在servlet中应该是获取提交的文件流,而不是获取文件的路径然后通过路径获取流。你要搞清楚,你的JSP页面是面向客户端的。而你的servlet是在服务器上运行的,在服务端获取客户端文件的路径完全没有意义,也获取不到。
具体的使用方法你可以在google上搜索 “filter 过滤器”,FilterConfig可以获取部署描述符文件(webxml)中分配的过滤器初始化参数。
针对你的问题回答,结果就是说FilterConfig可以获得webxml中,以 filter 作为描述标签内的参数。
定义:
FilterConfig对象提供对servlet环境及webxml文件中指派的过滤器名的访问。
FilterConfig对象具有一个getInitParameter方法,它能够访问部署描述符文件(webxml)中分配的过滤器初始化参数。
实例:
将下面的代码加入到webxml中,试用FilterConfig就可以获得以 filter 作为描述标签内的参数。
<!-- The Cache Filter -->
<filter>
<!-- 设计过滤处理类,生成静态页面 -->
<filter-name>CacheFilter</filter-name>
<filter-class>comjspbookCacheFilter</filter-class>
<!-- 不需要缓存的URL -->
<init-param>
<param-name>/TimeMongerjsp</param-name>
<param-value>nocache</param-value>
</init-param>
<init-param>
<param-name>/TestCachejsp</param-name>
<param-value>nocache</param-value>
</init-param>
<!-- 缓存超时时间, 单位为秒 -->
<init-param>
<param-name>cacheTimeout</param-name>
<param-value>600</param-value>
</init-param>
<!-- 是否根据浏览器不同的地区设置进行缓存(生成的缓存文件为 testjspid=1_zh_CN 的格式) -->
<init-param>
<param-name>locale-sensitive</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>jsp</url-pattern>
</filter-mapping>
用法:
filterConfiggetInitParameter("locale-sensitive"); 得到的就是 ture
filterConfiggetInitParameter("cacheTimeout"); 得到的就是 600
filterConfiggetInitParameter(requestgetRequestURI()); 得到的就是param-name 对应的 param-value 值
过滤处理类:
public class CacheFilter implements Filter {
ServletContext sc;
FilterConfig fc;
long cacheTimeout = LongMAX_VALUE;
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
>
JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception
1、request对象:javaxservlet>
目前对JavaWeb的理解是:用一次提交过程来表示,当点击一个提交的标签<input>。会将url传到tomcat服务器,在tomcat的配置文件中找到管理javaweb项目的配置文件serverxml,在serverxml中配置管理web项目的路径。从当前web项目的路径中找到webxml文件(webxml文件是配置servlet的内容,把网络请求和响应的信息都是放在servlet中的service方法里处理)。在servlet中创建ServletRequest对象和ServletResponse对象,并调用service方法,在service方法中对浏览器做出响应 *** 作。
1:浏览器发出请求: > Servlet是一个实现了Servlet接口的类,一个与访问协议和平台无关的、运行在Servlet容器中的Java程序。 针对Servlet实现技术,SUN公司提供了一套标准的Java Servlet API以便于更快速、规范地开发Servlet程序。这套Servlet API中,最重要的两个软件包是:javaxservlet、javaxservlet> javaxservlet是一个与通信协议无关的通用软件包;javaxservlet> 在javaxservle中,包含着一套常用接口,负责承担指定的任务。下表中列出了常用的类和接口: 主要类结构图: javaxservlet软件包: javaxservlet包中定义了与通信协议无关的接口和类。 常用接口: RequestDispatcher、Servlet、ServletConfig、ServletContext、ServletRequest、ServletResponse。 常用类: GenericServlet、ServletInputStream、ServletOutputStream。 1、RequestDispatcher接口 public interface RequestDispatcher; 资源调度器接口,用于定义一个在服务器内部直接实现资源转发的对象。 RequestDispatcher对象由Servlet容器创建,用于封装并调度由一个特定的URL定义的服务器资源。 (1)请求传递方法 public void forward(ServletRequest request, ServletReponse response) throws ServletException,IOException 从一个Servlet向服务器上的另一个资源传递请求。 将请求转发给其他资源时,将由被调用的资源负责对请求作出响应,而原先Servlet的执行则终止。 public void include(ServletRequest request, ServletResponse response) throws ServletException,IOException 从一个Servlet向服务器上的另一个资源传递请求。 将请求转发给其他资源时,被调用的Servlet对该请求作出的响应将并入原先的响应对象中,原先的Servlet还可以继续输出响应消息。 2、Servlet接口 public interface Servlet; 开发一个Servlet需要实现的基础接口。 接口中定义了5个方法: init():Servlet初始化方法,通过init()方法可以获得容器创建的ServletConfig对象 service():请求处理方法 destroy():Servlet实例销毁方法 getServletConfig():获取ServletConfig配置对象方法 getServletInfo():获取Servlet相关信息方法 (1)初始化方法 public void init(ServletConfig config) throws ServletException Servlet容器会在Servlet实例化之后,调用init方法对Servlet对象进行初始化,该方法由Servlet容器顺序调用,无需Servlet自身考虑何时执行。 (2)服务方法 public void service(ServletRequest request, ServletResponse response) throws ServletException,IOException 当Servlet容器接收到客户请求时,调用service方法响应客户请求,service方法在Servlet实例化、初始化之后被调用,并且可以被多次调用。 (3)销毁方法 public void destroy() 当Servlet实例从服务器中移除或服务停止时,Servlet容器调用destroy方法销毁Servlet实例。 (4)获取Servlet配置对象方法 public ServletConfig getServletConfig() 获取一个由Servlet容器创建的ServletConfig配置对象,这个对象常常用在Servlet初始化方法中,将初始化参数封装在ServletConfig对象中,然后传递给Servlet。 (5)获取Servlet相关信息方法 public String getServletInfo() 获取关于Servlet的一些相关信息,返回的字符串是纯文本格式而不带有任何标记(例如:HTML、XML等)。 3、ServletConfig接口 public interface ServletConfig; Servlet配置信息接口,在Servlet初始化时,Servlet容器将Servlet初始化参数封装在ServletConfig对象中,并传递给Servlet,一个Servlet实例只有一个ServletConfig对象。 接口中,只定义了4个方法: getInitParameter():获取Servlet指定初始化参数的值 getInitParameterNames():获取Servlet所有初始化参数名称 getServletContext():获取Servlet容器为WEB应用创建的Servlet上下文环境对象ServletContext getServletName():获取Servlet名称 (1)获取初始化参数方法 public String getInitParameter(String name) 根据初始化参数名称,获取Servlet指定初始化参数的值,如果指定的参数不存在,返回空值null。 public Enumeration getInitParameterNames() 获取Servlet所有初始化参数名称,如果Servlet没有初始化参数,返回一个空列表。 (2)获取Servlet上下文环境方法 public ServletContext getServletContext() 获取Servlet容器为WEB应用创建的Servlet上下文环境对象ServletContext,WEB服务器启动的时候,在加载WEB应用时,为每个加载的WEB应用创建一个代表WEB应用Servlet上下文环境对象。 (3)获取Servlet名称方法 public String getServletName() 获取正在访问的这个Servlet的名称。 以上就是Servlet相关问题的解答,更多关于Java Web方面的问题可以看下这个详细的视频教程网页链接,希望我的回答能帮到你。
以上就是关于getInitParameter()全部的内容,包括:getInitParameter()、熟悉servlet中init()方法以及session的创建和获取的请进、this.getServletContext().getRealPath("") 和 this.getServletConfig().getInitParameter("action")等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)