Servlet基础总结

servlet介绍

Servlet技术是SUN提供的一种开发动态网页的核心组件之一,可以方便的开发动态网页。

Servlet担当客户请求(web浏览器或其他http客户程序)与服务器响应(Http服务器上的数据库或应用程序)的中间层。

一个Servlet其实就是一个运行在web server上得一个java程序。

 

servlet接口方法介绍
public class myservlet implements Servlet {

	public void init(ServletConfig config) throws ServletException {
		//生命周期方法,在servlet对象创建后马上调用,只执行一次
		System.out.println("init()");
		
		//可获取初始化参数信息
		String st=config.getInitParameter("p1");
		System.out.println(st);
		
	}
    @Override
	public void destroy() {
    	//生命周期方法,在servlet对象销毁前调用,只执行一次
		System.out.println("destroy()");
	}
	@Override
	public void service(ServletRequest req, ServletResponse resp)
			throws ServletException, IOException {
		//生命周期方法,每次处理请求都会调用这个方法
		System.out.println("service()");
	}
	
	@Override
	public ServletConfig getServletConfig() {
		//获取servlet配置信息
		System.out.println("servletconfig()");
		return null;
	}

	@Override
	public String getServletInfo() {
		//获取servlet信息
		System.out.println("getServletInfo()");
		return "This is my default servlet created by Eclipse";
	}

	
}


xml配置

     <servlet>
	<servlet-name>AServlet</servlet-name>
	<servlet-class>servlet01.myservlet</servlet-class>
            <init-param>
	   <param-name>p1</param-name>
	   <param-value>v1</param-value>
	   </init-param>
     </servlet>

     <servlet-mapping>
         <servlet-name>AServlet</servlet-name>
	<url-pattern>/A</url-pattern>
     </servlet-mapping>

浏览器运行后,控制台输出效果:

init()
v1
service()


 

ServletContext:

一个项目只有一个servlet对象,在tomcat启动时就创建,我们可以在N多个servlet中来获取这个唯一对象进行操作,实现多个servlet之间的数据传递。

获取ServletContext对象:

1.Servlet中获取:在 void init(ServletConfig config)方法中,调用config.getServletContext()获得;

2.GenericeServlet或HttpServlet中获取:通过this.getServletContext获得;

 ServletContext方法:

1.setAttribute("key","value")  :在ServletContext中保存一个域属性。

2.getAtrribute(String name) :获取ServletContext中之前存储的数据。

3.removeAttribute(String name):移出此域属性。

做一个小案例:

先创建一个servlet,并在ServletContext中存入键值对

 

public class AServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	ServletContext appliction=this.getServletContext();
	appliction.setAttribute("name", "老铁");
	
	}


再创建一个servlet通过键读取值

public class Bservlet extends HttpServlet {


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	// TODO Auto-generated method stub

	ServletContext appliction=this.getServletContext();
	String st=(String)appliction.getAttribute("name");
	System.out.println(st);
      }
}

配置xml还是一样

控制台运行效果:

老铁

ServletContext公共初始参数:在多个servlet中共享参数。

例:

配置xml文件

  <servlet>
    <servlet-name>Bservlet</servlet-name>
    <servlet-class>org.test.Bservlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Bservlet</servlet-name>
    <url-pattern>/Bservlet</url-pattern>
  </servlet-mapping>
<context-param>
<param-name>p1</param-name>
<param-value>v1</param-value>
</context-param>

创建servlet获取公共参数

public class Bservlet extends HttpServlet {


@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	ServletContext app=this.getServletContext();
	String s=(String)app.getInitParameter("p1");
	System.out.println(s);
}



 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值