怎么配置servlet

怎么配置servlet,第1张

一、servlet的配置

servlet有两种配置的方法

1在webxml文件中配置

<servlet>

<servlet-name>loginServlet</servlet-name>

<servlet-class>comhwuaservletLoginServlet</servlet-class></servlet><servlet-mapping>

<servlet-name>loginServlet</servlet-name>

<url-pattern>/login</url-pattern></servlet-mapping>

2在servlet中用Java注解的方式配置

使用注解配置Servlet的步骤:

1 在Servlet类上贴@WebServlet注解2 在webxml文件中进行如下的配置

metadata-complete="true":表示是否忽略Servlet上面的注解

metadata-complete="false"表示是否不忽略Servlet上面的注解,缺省值

二、servlet生命周期

public void init(ServletConfig config):初始化方法,在第一次请求时调用,只在最初的时候调用一次

public void service(ServletRequest req, ServletResponse res):服务方法

public void destroy():销毁方法

三、在webxml文件中设置/获取初始化参数

1作用域当前的servlet 写在servlet标签中

<init-param>

   <param-name>name</param-name>

   <param-value>admin</param-value></init-param>

过去参数 在init方法中

String name = configgetInitParameter("name");

2上下文参数 写在web-app标签中

<context-param>

   <param-name>driver</param-name>

   <param-value>oraclejdbcOracleDriver</param-value></context-param>

获取参数 在init方法中

   ServletContext servletContext = configgetServletContext();

   String initParameter = servletContextgetInitParameter("driver");

四、设置servlet启动的时间

默认情况下servlet是在第一次被请求时启动的

通过在webxml文件中设置

<load-on-startup>1</load-on-startup>

注意:

load-on-startup 的参数是大于等于0的 负数没有效果load-on-startup 必须在参数init-param标签的下面 否则init-param会失效

五、常用方法:

  String getContextPath():获取上下文路径,<Context path="上下文" />

  String getHeader(String headName):根据指定的请求头获取对应的请求头的值   String getRequestURI():返回当期请求的资源名称  上下文路径/资源名

  StringBuffer getRequestURL():返回浏览器地址栏的内容   String getRemoteAddr():返回请求服务器的客户端的IP

六、获取请求参数的方法:

String getParameter(String name):根据参数名称,获取对应参数的值String[] getParameterValues(String name):根据参数名称,获取该参数的多个值

Enumeration<String> getParameterNames():获取所有请求参数的名字Map<String,String[]> getParameterMap():返回请求参数组成的Map集合

   key:参数名称

   value:参数值,封装在String数组中

application对象

什么是application对象?

( )当Web服务器启动时 Web服务器会自动创建一个application对象 application对象一旦创建 它将一直存在 直到Web服务器关闭

一个Web服务器通常有多个Web服务目录(网站) 当Web服务器启动时 它自动为每个Web服务目录都创建一个application对象 这些application对象各自独立 而且和Web服务目录一一对应

访问同一个网站的客户都共享一个application对象 因此 application对象可以实现多客户间的数据共享

访问不同网站的客户 对应的application对象不同

( )application对象的生命周期 从Web服务器启动 直到Web服务器关闭

注意 一个Web应用程序启动后 将会自动创建一个application对象 而且在整个应用程序的运行过程中只有一个application对象 也即所有访问该网站的客户都共享一个application对象

( )application对象的作用范围 application对象是一个应用程序级的对象 它作用于当前Web应用程序 也即作用于当前网站 所有访问当前网站的客户都共享一个application对象

具体来说 不管哪个客户来访问网站A 也不管客户访问网站A下哪个页面文件 都可以对网站A的application对象进行 *** 作 因为 所有访问网站A的客户都共用一个application对象

因此 当在application对象中存储数据后 所有访问网站A的客户都能够对其进行访问 实现了多客户之间的数据共享

( )application对象的基类是 javax servlet ServletContext类

注意 有些Web服务器不直接支持使用application对象 必须用ServletContext类来声明application对象 再调用getServletContext()方法来获取当前页面的application对象

( )ServletContext类 用于表示应用程序的上下文

一个ServletContext类的对象表示一个Web应用程序的上下文

具体来说 在Web服务器中 提供了一个Web应用程序的运行时环境 专门负责Web应用程序的部署 编译 运行以及生命周期的管理 通过ServletContext类 可以获取Web应用程序的运行时环境信息

常识 JSP引擎 Servlet引擎 JSP容器和Servlet容器 都是指Web服务器 Web服务器用于管理所有Web应用程序

( )application对象的常用方法 如下所示

方法名 描述 StringgetAttribute(Stringname) 根据属性名称获取属性值 EnumerationgetAttributeNames() 获取所有的属性名称 voidsetAttribute(Stringname Objectobject) 设置属性 指定属性名称和属性值 voidremoveAttribute(Stringname) 根据属性名称删除对应的属性 ServletContextgetContext(Stringuripath) 获取指定URL的ServletContext对象 StringgetContextPath() 获取当前Web应用程序的根目录 StringgetInitParameter(Stringname) 根据初始化参数名称 获取初始化参数值 intgetMajorVersion() 获取ServletAPI的主版本号 intgetMinorVersion() 获取ServletAPI的次版本号 StringgetMimeType(Stringfile) 获取指定文件的MIME类型 StringgetServletInfo() 获取当前Web服务器的版本信息 StringgetServletContextName() 获取当前Web应用程序的名称 voidlog(Stringmessage) 将信息写入日志文件中

使用application对象存储数据

( )设置application对象的属性和获取application对象的属性

测试代码

TestApplication jsp

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<formname=&# ;form &# ;action=&# ; method=&# ;post&# ;>

用户名

<inputtype=&# ;text&# ;name=&# ;username&# ;value=&# ; >

<br>

密码

<inputtype=&# ;password&# ;name=&# ;pwd&# ;value=&# ; >

<br>

<inputtype=&# ;submit&# ;name=&# ;btSubmit&# ;value=&# ;提交&# ;>

</form>

<%

application setAttribute(&# ;username&# ; request getParameter(&# ;username&# ;));

application setAttribute(&# ;pwd&# ; request getParameter(&# ;pwd&# ;));

%>

</body>

</>

测试代码

TestCommon jsp

在TestCommon jsp页面中 通过application对象获取属性 注意TestApplication jsp和TestCommon jsp这两个页面之间没有任何关联 只要通过application对象设置了属性 那么就可以在任何页面 通过application对象获取属性或者删除属性

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

用户名 <%=application getAttribute(&# ;username&# ;)%><br>

密码 <%=application getAttribute(&# ;pwd&# ;)%><br>

</body>

</>

( )删除application对象的属性

测试代码

TestCommon jsp

在TestCommon jsp页面中 删除application对象的属性

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<%&# ;删除属性&# ;%>

<%

application removeAttribute(&# ;username&# ;);

application removeAttribute(&# ;pwd&# ;);

%>

用户名 <%=application getAttribute(&# ;username&# ;)%><br>

密码 <%=application getAttribute(&# ;pwd&# ;)%><br>

</body>

</>

使用application对象实现网站计数器

测试代码

TestApplication jsp

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%@pageimport=&# ;java util &# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<%!

ServletContextapplication;

synchronizedvoidcountPeople(){

application=getServletContext();

Integernumber=(Integer)application getAttribute(&# ;number&# ;);

if(number==null){

number=newInteger( );

application setAttribute(&# ;number&# ; number);

}else{

number=newInteger(number intValue()+ );

application setAttribute(&# ;number&# ; number);

}

}

%>

<%

if(session isNew()){

countPeople();

}

intpersonCount=((Integer)application getAttribute(&# ;number&# ;)) intValue();

%>

<p>欢迎访问本网站 您是第<%=personCount%>个访问用户!

</body>

</>

使用application对象获取初始化参数

( )一般来说 在web xml文件中 设置初始化参数有如下两种方式

n设置系统范围内的初始化参数

n针对单个Servlet文件或JSP文件设置初始化参数

对于系统范围内的初始化参数 可通过ServletContext接口的getInitParameter(Stringname)方法 根据指定的参数名 获取对应的参数值

对于针对单个Servlet文件或JSP文件设置初始化参数 可通过ServletConfig接口的getInitParameter(Stringname)方法 根据指定的参数名 获取对应的参数值 ( )如何设置系统范围内的初始化参数

在web xml文件中 可利用context param元素来设置系统范围内的初始化参数 context param元素应该包含param name param value以及可选的description子元素 如下所示 <context param> <param name>support email</param name> <param value></param value> </context param>

web xml文件的示例

<xmlversion=&# ; &# ;encoding=&# ;UTF &# ;>

<web appversion=&# ; &# ;

xmlns=&# ;;

xmlns:xsi=&# ;;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<%&# ;使用application对象获取系统范围内的初始化参数&# ;%>

<fontcolor=&# ;Red&# ;>使用application对象获取初始化参数 </font>

<br>

<%

StringappName=getServletContext() getInitParameter(&# ;appName&# ;);

StringappVersion=getServletContext() getInitParameter(&# ;appVersion&# ;);

%>

应用程序的名称 <%=appName%><br>

应用程序的版本 <%=appVersion%>

</body>

</>

修改web xml文件 添加蓝色字体部分

<xmlversion=&# ; &# ;encoding=&# ;UTF &# ;>

<web appversion=&# ; &# ;

xmlns=&# ;;

xmlns:xsi=&# ;;charset=GBK&# ;

pageEncoding=&# ;GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<h >使用application对象获取Web应用程序的环境信息</h >

<p>

<fontcolor=&# ;Red&# ;>获取当前Web服务器的版本信息 </font><%=application getServerInfo()%><br>

<fontcolor=&# ;Red&# ;>获取ServletAPI的主版本号 </font><%=application getMajorVersion()%><br>

<fontcolor=&# ;Red&# ;>获取ServletAPI的次版本号 </font><%=application getMinorVersion()%>

<p>

<fontcolor=&# ;Red&# ;>获得指定URL的ServletContext对象 </font>

<%

ServletContextsc=application getContext(&# ;/ch /TestApplication jsp&# ;);

out println(sc getServerInfo());

%>

<p>

<%&# ;需要在web xml设置display name元素&# ;%>

<fontcolor=&# ;Red&# ;>获取当前Web应用程序的名称 </font><%=application getServletContextName()%>

<p>

<fontcolor=&# ;Red&# ;>获取当前Web应用程序的上下文路径 </font><%=application getContextPath()%>

</body>

</>

测试结果

session对象和application对象的比较

( )两者的作用范围不同

session对象是用户级的对象 而application对象是应用程序级的对象

一个用户一个session对象 每个用户的session对象不同 在用户所访问网站的多个页面之间共享同一个session对象

一个Web应用程序一个application对象 每个Web应用程序的application对象不同 但一个Web应用程序的多个用户之间共享同一个application对象

在同一个网站下

n每个用户的session对象不同

n所用用户的application对象相同

在不同网站下

n每个用户的session对象不同

n每个用户的application对象不同

( )两者的生命周期不同

session对象的生命周期 用户首次访问网站创建 用户离开该网站(不一定要关闭浏览器)消亡

application对象的生命周期 启动Web服务器创建 关闭Web服务器销毁

lishixinzhi/Article/program/Java/hx/201404/30479

配置servlet参数可以在两个地方配置。

1servletconfig,2servletcontext。

第一个称为servlet初始化变量,既在一个servlet初始化(一般情况下是第一个请求到达时)调用,用于“本”servlet初始化用。

第二个叫上下午初始化参数,这个是个全局可用的,一个web应用只有一个。

第一个的话是一个servlet一个,在init方法中调用。第二个是容器启动时调用的。具体用法分别百度这两个名词即可。

在servlet中可以通过代码分别取用: 第二种参数只能在servlet的init()方法中通过thisgetInitParameter("param1")取得:

package comqisentechcontroller;  

import javaxservletServletException;  

import javaxservlet>

要突破100个参数的限制,需要在配置文件中修改Max VisibleLines=200。 Web浏览器使用ServletConfig(即Config)对象在初始化期间将信息传输到JSP页面。该配置信息包括初始化参数(在当前Web应用程序的应用程序部署描述文件Webxml中定义)和表示Servlet或JSP页面所属的web应用程序的ServletContext对象。config对象对应于javaxservletServletConfig类,它位于servlet-apijar包中。配置对象的几种方法:(1)公共字符串getParameter(字符串名);返回指定名称初始化参数的值,如果该参数不存在,则返回null。(2)public Java util enumeration getinitParameterNames();获取所有初始化参数名称的枚举。(3)public servlet context getservlet context();返回对Servlet或JSP页面所属的ServletContext的引用。(4)公共字符串getServletName();返回Servlet实例或JSP页面的名称,该名称可以在Web应用程序部署描述文件中指定。对于未注册的(即未命名的)Servlet实例或JSP页面,将返回Servlet类的类名。JSP的其他内置对象:请求、响应、会话、应用、out、异常、pageContext。3。configexe配置-配置 exe-进程信息进程文件:配置实用程序描述:Configexe是一个与Windows Access (WAC)服务相关的程序。配置。SYS是包含在DOS(磁盘 *** 作系统)中的文本文件命令,它告诉 *** 作系统如何初始化计算机。在大多数情况下,配置。SYS命令使得存储设备驱动程序和程序能够控制硬件设备。开放或二进制系统特征;和有限的系统资源。配置。SYS在autoexecbat(自动批处理程序)文件执行之前加载。因为配置。SYS是一个文本文件,可以用文本编辑器编辑。4。x(法国教育发展基金:\WINDOWS\system32\config在windows XP或Vista下,开始-运行-输入“config”,会出现C:\WINDOWS\system32\config。(c是系统所在的驱动器号)

thisgetServletContext()getRealPath("") ;获取web站点在硬盘中的绝对路径

thisgetServletConfig()getInitParameter("action");获取webxml文件中名称为“action”的参数值

以上就是关于怎么配置servlet全部的内容,包括:怎么配置servlet、介绍一下JSP中application的用法、如果配置一个servlet需要使用的参数,最好在哪个方法中加载等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9666543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存