Servlet 是什么?
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:
性能明显更好。
Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
Servlet 是独立于平台的,因为它们是用 Java 编写的。
服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。
编写Servlet
首先创建Web项目MyServlet
创建一个类WelcomeServlet ,一个普通的类,不可能成为Servlet,所以要让这个类继承HttpServlet
package cn.lystery.servlet;
import javax.servlet.http.HttpServlet;
public class WelcomeServlet extends HttpServlet {
}
重写HttpServlet的doGet()方法,由于直接访问Servlet是属于get方法请求,因此,在doGet方法中进行输出
package cn.lystery.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WelcomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");//设置网页编码格式为utf-8
PrintWriter out = resp.getWriter();
out.println("这是MyServlet!");
}
}
到此,我们已经编写好了Servlet程序了
配置Servlet
编写完Servlet,还不能直接访问,必须要配置Servlet,它才可以通过Url映射到与之对应的Servlet中来,我们才能对其进行访问
配置Servlet是通过web.xml文件来实现的,手动在WebRoot/WEB-INF下创建web.xml文件
对web.xml进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>WelcomeServlet</servlet-name>
<servlet-class>cn.lystery.servlet.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WelcomeServlet</servlet-name>
<url-pattern>/WelcomeServlet</url-pattern>
</servlet-mapping>
</web-app>
WelcomeServlet名字可以自己定义,但是要和下面映射的名字相同
cn.lystery.servlet.WelcomeServlet配置Servlet所对应的类
/WelcomeServlet配置Servlet所对应的访问路径
部署并测试Servlet
直接在Tomcat服务器上运行Servlet
输入:http://localhost:8080/MyServlet/WelcomeServlet
运行结果如图所示:
至此,一个Servlet项目就完成了