您的位置:首页 > 其它

Servlet基础

2016-09-25 21:54 281 查看
zxfdgdgServlet:
Java Servlet是运行在Web服务器或应用服务器上的Java程序,是web在创建动态内容的有效而强大的解决方案之一
Servlet组成:
v Web应用程序:
v Servlet和HTTP Servlet:
v 过滤器
v 安全
v 国际化
 
Servlet的生命周期:
Init();初始化
Service();服务
Destroy();销毁期
初始化和销毁期通常只执行一次。
 
Servlet的配置:
1).创建一个Servlet接口的实现类
public class HelloServlet implements Servlet
2).在web.xml文件中配置和映射这个Servlet
在web.xml中配置和映射Servlet
<servlet>
<!--Servlet注册的名字-->
<servlet-name>helloServlet</servlet-name>
<!--Servlet 的全类名-->
<servlet-class>写java类所在的包名,如com.lovo.javaWeb.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<!--需要和某一个Servlet节点的servlet-name子节点的文本节点一致-->
<servlet-name>helloServlet(一定要和上面的那个名字一样)</servlet-name>
<!-- 映射具体的访问路径:/代表当前WEB应用的根目录
-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
 
load-on-startup参数:
1).配置在Servlet节点中
<servlet>
<!--Servlet注册的名字-->
<servlet-name>secondServlet</servlet-name>
<!--Servlet 的全类名-->
<servlet-class>写java类所在的包名,如com.lovo.javaWeb.SecondServlet</servlet-class>
<!-- 可以指定Servlet被创建的时机-->
<load-on-startup>2</load-on-startup>
</servlet>
2).load-on-startup:可以指定Servlet被创建的是,若为负数,则在第一次请求时被创建,若为0或者整数,则在当前WEB应用被Servlet容器加载时创建实例,且数值越小越早被创建.
 
关于servlet-mapping:
1).同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名
2).在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式,一种格式是"*.扩展名".另一种格式是以正斜杠(/)开头并以"/*"结尾.
 
Servlet注册名:
<servlet-mapping>
<!--需要和某一个Servlet节点的servlet-name子节点的文本节点一致-->
<servlet-name>helloServlet(一定要和上面的那个名字一样)</servlet-name>
<!-- 映射具体的访问路径:/代表当前WEB应用的根目录
-->
<url-pattern>/*</url-pattern>
</servlet-mapping>
OR
<servlet-mapping>
<!--需要和某一个Servlet节点的servlet-name子节点的文本节点一致-->
<servlet-name>helloServlet(一定要和上面的那个名字一样)</servlet-name>
<!-- 映射具体的访问路径:/代表当前WEB应用的根目录
-->
<url-pattern>*.html</url-pattern>
</servlet-mapping>
 
注意:以下的既带/有待扩展名的不合法
<servlet-mapping>
<!--需要和某一个Servlet节点的servlet-name子节点的文本节点一致-->
<servlet-name>helloServlet(一定要和上面的那个名字一样)</servlet-name>
<!-- 映射具体的访问路径:/代表当前WEB应用的根目录
-->
<url-pattern>/*.action</url-pattern>
</servlet-mapping>
 
Servletconfig:
封装了Servlet配置信息,并且可以获取ServletContext对象.
1).配置Servlet的初始化参数.
<!-- 配置Servlet
的初始化参数 且节点必须在load-on-startup
节点的前面 -->
<servlet>
<init-param>
<!-- 参数名 -->
<param-name>user</pa
c700
ram-name>
<!-- 参数值 -->
<param-value>root</param-value>
</init-param>
</servlet>
2).获取初始化参数:
> getInitParameter(String name):获取指定参数名的初始化参数
> getInitParameterNames():获取参数名组成的Enumeration
对象.
例如:
String user = servletConfig.getInitParameter("user");
System.out.println("user" + user);
 
Enumeration<String> names=servletConfig.getInitParameterNames();
while(names.hasMoreElement()){
String name = names.nextElement();
String value = servletConfig.getInitParameter(name);
System.out.println("^^"+name +":"+value);
}
3).getServletName()方法时获取配置时候注册名字
ServletContext:(全局)可以为所有的Servlet
所获取,而Servlet的初始化参数只用于那个Servlet获取
1).可以有ServletConfig获取
2).该对象代表当前WEB应用:可以认为ServletContext
是当前WEB应用的一个大管家,可以从中获取当前WEB应用的各个方面的信息
①.获取当前WEB
应用的初始化参数
 
设置初始化参数:
 
<!-- 配置当前WEB应用的初始化参数
-->
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
 
方法:
 
getInitParameter
getInitParameterNames
 
代码:
 
ServletContext servletContext = servletConfig.getServletContext();
String driver = servletContext.getInitParameter("driver");
 
②.获取当前WEB应用的某一个文件在服务器的绝对路径,而不是部署前的路径
getRealPath(String path)
 
③.获取当前WEB
getContextPath();
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: