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架构

 

4、Servlet执行过程

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

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

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

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

6、Eclipse / Servlet环境搭建

a) 下载安装Tomcat

 

b) 移动创建Web工程

 

c) Tomcat与eclipse建立关联

Window——Preferences——Server——Runtime Environments

 

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

File——new——Servlet

 

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
	<display-name>web-servlet</display-name>
	<!-- 配置Servlet名字 -->
  <servlet>
  	<servlet-name>HelloServlet</servlet-name>
  	<servlet-class>com.ittx.web.servlet.HelloServlet</servlet-class>
  </servlet>
  	<!-- 配置Servlet访问路径 -->
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/servlet/HelloServlet</url-pattern>
  </servlet-mapping>
	<welcome-file-list>
		<welcome-file>hello2.html</welcome-file>
		<welcome-file>hello.html</welcome-file>
		<welcome-file>register.html</welcome-file>
	</welcome-file-list>
</web-app>

f) html文件中关联Servlet文件

<html>
<head>
<meta charset = "utf - 8">
<title>hello</title>
</head>
<body>
<!--action为servlet程序的虚拟映射路径-->
<form action = "servlet/HelloServlet" method = "post">
	<input type = "submit" value = "注册"/>
	<a href = "servlet/HelloServlet">JavaServlet</a>
	</form>
</body>
</html>

7、虚拟映射

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

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

例如:

<Host>
		<!--path为虚拟目录,本身是不存在的;docBase为web应用程序的绝对目录-->
		<Context path = "/hello" docBase = "D:\servlet\DomeServlet"/>
    </Host>

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

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

例如:

<Host>
		<!--path为.xml文件名;docBase为web应用程序的绝对目录-->
		<Context docBase = "D:\servlet\DomeServlet"/>
    </Host>

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

方法三:

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

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

工程:

相关代码:

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方法>>>>>");
	}
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
	<display-name>web-servlet</display-name>
	<!-- 配置Servlet名字 -->
  <servlet>
  	<servlet-name>HelloServlet</servlet-name>
  	<servlet-class>com.ittx.web.servlet.HelloServlet</servlet-class>
  </servlet>
  	<!-- 配置Servlet访问路径 -->
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/servlet/HelloServlet</url-pattern>
  </servlet-mapping>
	<welcome-file-list>
		<welcome-file>hello2.html</welcome-file>
		<welcome-file>hello.html</welcome-file>
		<welcome-file>register.html</welcome-file>
	</welcome-file-list>
</web-app>

<html>
<head>
<meta charset = "utf - 8">
<title>hello</title>
</head>
<body>
<!--action为servlet程序的虚拟映射路径-->
<form action = "servlet/HelloServlet" method = "post">
	<input type = "submit" value = "注册"/>
	<a href = "servlet/HelloServlet">JavaServlet</a>
	</form>
</body>
</html>

执行结果:

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方法>>>>>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值