Java web初体验—Servlet
1.通过浏览器去访问Servlet需要
1 在web.xml中设置好映射
2
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>Javabean.helloserver</servlet-class>
<load-on-startup>参数(int)</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
2.servlet容器:JSP,Servlet,Filter
1.可以来创建Servlet,并且调用Servlet相关生命周期的方法
2.JSP,Servlet,Filter
3.相关方法:构造器,Init方法,service,destroy;
注意:只有第一次请求的时候创建实例,以后请求不会创建,说明Servlet是单列模式;Init只被调用一次,在创建实例之后
service每次请求都会被调用;destroy只被调用一次,在当前Servlet所在的Web被卸载前,释放当前Servlet所占用的资源
4.参数(int),作用:可以指定Servlet被创建的时机,若为负数则在被请求时被创建,若为零或正数,则在Web应用被加载时创建实例,且数字越小越早被创建
3.同个Servlet可以有多个映射,即一个Servlet可以有多个Servlet-mapping
4.创建一个Servlet实现Servlet接口重写的方法
public void init(ServletConfig arg0) throws ServletException {
System.out.println(“Ini…”);
}
ServletConfig:封装了Servlet配置的信息,并且可以获得ServletContext对象
>1.配置初始化参数
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>Javabean.helloserver</servlet-class>
<!-- 配置Servlet初始化参数 -->
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>1230</param-value>
</init-param>
<!-- 可以设置Servlet实例被创建的时机 -->
<load-on-startup>1</load-on-startup>
</servlet>
>2.getInitParameter(String name):获取指定参数名的初始化参数;
>3.getInitParameterNames():获取参数名组成的Enumeration对象;
代码:
public void init(ServletConfig servletConfig) throws ServletException {
// TODO Auto-generated method stub
System.out.println("Ini...");
String name = servletConfig.getInitParameter("user");
System.out.println("user:"+name);
Enumeration<String>names = servletConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name1 = names.nextElement();
String value = servletConfig.getInitParameter(name1);
System.out.println("name:"+name1+" value:"+value);
}
}
>4.ServletContext对象;代表当前web应用,可以认为ServletContext是当前Web应用的一个管家可以从中获取web的各方面信息
1)getInitParameter方法:
getInitParameterNames方法:
<context-param>
<param-name>driver</param-name>
<param-value>com.mysql.jdbc,Driver</param-value>
</context-param>
该参数可以为所有Servlet所获取
2) getRealPath(String path)方法:获取当期啊Web应用的某个文件在服务器上的绝对路径,而不是部署钱的路径
3)getContextPath()方法:获取当前Web应用的名称;
4)getResourceAsStream(String path)方法:获取当前Web应用中某个文件的输入流;path的 / 为当前web应用的根目录