Servlet第一章 Servlet简介及环境配置

1、Servlet概念

a) Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

b) 功能:实现接收web浏览器或HTTP客服端的请求,并根据请求回应HTTP服务端的数据。

2、Servlet优势

a) 可以根据数据库数据动态生成web网页;

b) Servlet在web服务器的地址空间内执行,不需要单独创建进程;

c) Servlet为java程序,是独立于平台的;

d) Servlet安全性可信;

e) Servlet可以使用java类库的全部功能。可以通过sockets和RMI机制与applets、数据库或其他软件进行交互;

3、Servlet架构

 Servlet第一章 Servlet简介及环境配置_第1张图片

4、Servlet执行过程

a) 通过服务端接收客户端请求;

b) 连接数据库,处理生成结果;

c) 通过服务端回应客户端请求;

5、Servlet使用的前提条件:要求导入Servlet架包(servlet-api.jar),在tomcat的lib文件夹中都有自带的Servlet架包,在开发工具总引入即可。

6、Eclipse / Servlet环境搭建

a) 下载安装Tomcat

 Servlet第一章 Servlet简介及环境配置_第2张图片

b) 移动创建Web工程

 Servlet第一章 Servlet简介及环境配置_第3张图片

c) Tomcat与eclipse建立关联

Window——Preferences——Server——Runtime Environments

 Servlet第一章 Servlet简介及环境配置_第4张图片

d) 创建Servlet(注意使用前先加入Servlet架包,Tomcat中存在架包)

File——new——Servlet

 Servlet第一章 Servlet简介及环境配置_第5张图片

d) 创建Servlet类文件继承HttpServlet

package com.ittx.web.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{
	
	public void init(ServletConfig config) throws ServletException{
		System.out.println("init 初始化servlet方法>>>>>>>>");
	}
	
	protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException{
		System.out.println("doget 执行get方法>>>>>>");
	}
	
	protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException{
		System.out.println("dopost 执行post方法>>>>>");
	}
	
	public void destory(){
		System.out.println("destory 销毁servlet方法>>>>>");
	}
}

e) web.XML配置Servlet




	web-servlet
	
  
  	HelloServlet
  	com.ittx.web.servlet.HelloServlet
  
  	
  
    HelloServlet
    /servlet/HelloServlet
  
	
		hello2.html
		hello.html
		register.html
	

f) html文件中关联Servlet文件




hello



JavaServlet

7、虚拟映射

虚拟映射,就是将应用程序目录映射成我们访问时的路径。

方法一:在Tomcat中的conf目录下的servlet.xml中进行配置;

例如:


		
		servlet\DomeServlet"/>
    

web应用的访问路径path是http://localhost:4530/hello,该目录并非真实存在,而是将docBase目录映射到该目录上,该目录则为虚拟目录映射。当访问path路径是,实际访问的是绝对路径,注意该方法要重启Tomcat;

方法二:在D:\apache-tomcat-8.5.12\conf\Catalina\localhost目录下直接创建.XML文件,例如命名为hello,则这个文件则为虚拟映射目录;

例如:


		
		
    

该方法不用重启Tomcat,如果想要建设多级目录,文件名命名为:a#b#c.xml即可;如果web程序直接放在Root根目录下,则path路径为“”;

方法三:

将应用程序直接拷贝到wepapps下,tamcat会自动映射该目录;

8、Eclipse下Servlet实例演示代码:

工程:Servlet第一章 Servlet简介及环境配置_第6张图片

相关代码:

package com.ittx.web.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{
	
	public void init(ServletConfig config) throws ServletException{
		System.out.println("init 初始化servlet方法>>>>>>>>");
	}
	
	protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException{
		System.out.println("doget 执行get方法>>>>>>");
	}
	
	protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException{
		System.out.println("dopost 执行post方法>>>>>");
	}
	
	public void destory(){
		System.out.println("destory 销毁servlet方法>>>>>");
	}
}




	web-servlet
	
  
  	HelloServlet
  	com.ittx.web.servlet.HelloServlet
  
  	
  
    HelloServlet
    /servlet/HelloServlet
  
	
		hello2.html
		hello.html
		register.html
	




hello



JavaServlet

执行结果:

2017-3-21 11:09:58 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Myelipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Myelipse/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client;D:/Myelipse/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin;D:/Myelipse/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/lib/i386;F:\oracle\product\10.2.0\db_2\bin;F:\oracle\product\10.2.0\db_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\NVIDIA Corporation\PhysX\Common;F:\java\jdk\bin;F:\java\jre\bin;D:\Program Files\Java\jdk1.8.0_111\bin;D:\java\JDK\bin;D:\java\JRE\bin;C:\Program Files\TortoiseSVN\bin;F:\mysql\mysql-5.7.11-win32\bin;
2017-3-21 11:09:59 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
2017-3-21 11:09:59 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
2017-3-21 11:09:59 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 288 ms
2017-3-21 11:09:59 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2017-3-21 11:09:59 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.64
2017-3-21 11:09:59 org.apache.tomcat.websocket.server.WsSci onStartup
信息: JSR 356 WebSocket (Java WebSocket 1.1) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocket JARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available. 
2017-3-21 11:09:59 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
2017-3-21 11:09:59 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
2017-3-21 11:09:59 org.apache.catalina.startup.Catalina start
信息: Server startup in 264 ms
init 初始化servlet方法>>>>>>>>
dopost 执行post方法>>>>>


你可能感兴趣的:(Servlet)