servlet学习(一)

  • tomcat目录说明

  1. bin--存放tomcat的批处理文件(startup.bat--启动服务  shutdown.bat--关闭服务)
  2. conf--存放tomcat的配置文件(server.xml)
  3. lib--存放tomcat中web应用需要的JAR包
  4. logs--存放tomcat的日志
  5. temp--存放临时文件
  6. webapps--存放web应用(编译好的
  7. works--存放web应用

servlet学习(一)_第1张图片 

  • 修改端口号(端口被占用)

                 connectionTimeout="20000"
               redirectPort="8443" />
访问端口

关闭端口

外部程序调用端口

  • servlet的生命周期

构造器:第一次请求Servlet的时候被WEB容器调用,而且只调用一次(一个Servlet在容器中只有一个实例)
init()--初始化Servlet(第一次被请求的时候调用)
service()--处理请求,并将请求结果进行返回。(每次被请求的时候调用)
destory()--servlet被从WEB容器中卸载的时候调用(调用一次)

servlet学习(一)_第2张图片

根据Servlet的生命周期,可以知道,一个Servlet在web应用只有一个实例,这个实例被多个线程共享。 servlet采用的是单实例,多线程模式,即在同一时刻,容器中只存在某servlet的一个实例;同时,多请求(用户)会获得多个线程来运行同一个实例。

  • servlet体系结构

servlet学习(一)_第3张图片

  • servlet容器

  1. Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容。Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。Servlet被编译为平台独立的字节码,可以被动态地加载到支持Java技术的Web服务器中运行。
  2. 在上述中,出现了一个概念“Servlet容器”。那么什么是Servlet容器呢?Servlet容器有时候也叫做Servlet引擎,是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应。Servlet不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法,Servlet容器在Servlet的生命周期内包容和管理Servlet。
  3. 在JSP技术推出后,管理和运行Servlet/JSP的容器也称为Web容器。Servlet容器、JSP容器,以及Web容器是同义的。 用户通过单击某个链接或者直接在浏览器的地址栏中输入URL来访问Servlet,Web服务器接收到该请求后,并不是将请求直接交给Servlet,而是交给Servlet容器。Servlet容器实例化Servlet,调用Servlet的一个特定方法对请求进行处理,并产生一个响应。这个响应由Servlet容器返回给Web服务器,Web服务器包装这个响应,以HTTP响应的形式发送给Web浏览器
  • Servlet的功用

​​​​​​​·读取客户程序发送来的显式数据(表单数据)  

·读取客户程序发送来的隐式数据(请求报头)

 ·生成相应的结果  

·发送显式的数据给客户程序(HTML)  

·发送隐式的数据给客户程序(状态代码和响应报头)​​​​​​​

  • 实现一个servlet步骤

​​​​​​​1.实现Servlet接口 HelloServlet implements Servlet
2.实现接口中定义的方法
3.web.xml配置 servlet及servlet映射
4.通过浏览器访问

  •  

    web.xml配置

​​​​​​​
        helloServlet
        cn.goktech.demo01.HelloServlet
        
        2
    

通过load-on-startup可以改变servlet实例创建时机,越靠近0越先被创建(详细说明点击)


    helloServlet
    /hi

1.一个servlet-name可以配置多个mapping
2.可以通过*通配符拦截所有所有请求
    
        helloServlet
        *.html
    

    注意:* 和/不能共存

  • 获取参数配置

ServletConfig-获取局部Servelt参数配置
   
      user
      root
   

   
      pass
      123456
   

    
    Enumeration enu = sc.getInitParameterNames();
    while(enu.hasMoreElements()){
    String paraName =  (String) enu.nextElement();
    System.out.println(sc.getInitParameter(paraName));
    
ServletContext--获取全局配置
 
      name
      test
 

 
      pass
      123456
 

  
  Enumeration enu2 =  sct.getInitParameterNames();
        while(enu2.hasMoreElements()){
        String paraName =  enu2.nextElement();
        System.out.println(sct.getInitParameter(paraName));
    }

 

  • 详细代码



	MyfirstWebPro
	
	
	
		password
		123
	

	
		MyfirstServlet
		cn.gok.test.MyfirstServlet2
		
			user
			chen
		
		1
	

	
		MyfirstServlet
		/hello
	

	
		MyfirstServlet
		/hi
	
public class MyfirstServlet2 extends HttpServlet {

	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		System.out.println("执行操作");
		ServletConfig sc=this.getServletConfig();
		String ttt=sc.getInitParameter("user");
		System.out.println(ttt);
		
		ServletContext sct=sc.getServletContext();
		System.out.println(sct.getInitParameter("password"));
	}
}

​​​​​​​

 

你可能感兴趣的:(javaee)