Servlet介绍
程序员在编写代码的时候如果能够按照服务器能够识别的规则进行编写,浏览器按照指定的规则进行发送请求,
那么服务器就可以自动调用并执行响应的逻辑代码进行请求处理了。
概念
狭义的 Servlet 是指 Java 语言实现的一个接口,
广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。
Servlet 运行于支持 Java 的应用服务器中。
从原理上讲,Servlet 可以响应任何类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服务器
特点:
运行在支持java的应用服务器上
Servlet 的实现遵循了服务器能够识别的规则,也就是服务器会自动的根据请求调用对应的servlet进行请求处理。
简单方便,可移植性强。
使用
1、创建普通的 java 类并继承HttpServlet
2、覆写service方法
3、在service方法中书写逻辑代码即可
4、在webRoot下的WEB-INF文件夹下的web.xml 文件中配置servlet
运行流程
url:http://localhost:8080/project/my2
组成:
服务器地址:端口号/虚拟项目名 /servlet的别名
URI:虚拟项目名 /servlet的别名
浏览器发送请求到服务器,服务器根据请求URL地址中的URI信息在webapps目录下找到对应的项目文件夹,然后在web.xml中检索对应的servlet,找到后调用并执行Servlet。
第一个web项目
1、新建项目,在包下创建一个普通的java 类MyServlet,并继承HttpServlet
2、在MyServlet类中覆写service方法。
package com.bjsxt.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
resp.getWriter().write("this is my first servlet.");
System.out.println("this is my first servlet.");
}
}
(3)在 webRoot 下的 WEB-INF 下找到 web.xml 文件并配置,如下。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!--配置Servlet --> <!--配置servlet类路径 --> <servlet> <servlet-name>my</servlet-name>
<servlet-class>com.bjsxt.servlet.MyServlet</servlet-class>
</servlet> <!--配置访问方式 --> <servlet-mapping> <servlet-name>my</servlet-name> <url-pattern>/my</url-pattern> </servlet-mapping> </web-app>
(4)打开tomcat的安装目录,在webapps 目录下新建文件夹,文件夹名为project,并将项目源码webRoot下的内容全部复制到该文件夹下。
(5)启动tomcat服务器,并在地址栏中输入:localhost:8080/project/my
总结:
真正运行的代码不是IDEA中编写的代码,而是tomcat服务器中部署好的代码。Tomcat会根据请求自动调用对应的代码请求处理。