1、什么是Servlet?

servlet 是在服务器上运行的小程序,一个 servlet 就是一个 Java 类,并且可以通过 “请求 - 响应” 编程模式来访问这个驻留在服务器内存里面的 servlet 程序

2、为什么要使用servlet?

我们把html放入到tomcat后,可以通过浏览器访问这些页面。但是这些页面都是静态不会变化的内容。任何人,任何时间看到的内容都是一样的。

Servlet能够使html源码动态的产生。Servlet是一个java类,他运行在服务器。

3、Servlet的第一个案例


  • 写一个java类,继承 HTTPServlet,就是一个Servlet类。也可以在创建时,直接指定父类
  • 重写 doGet() 或者 doPost() 方法、或者重写service方法,右击 ->source->override
  • 在 web.xml 中配置 Servlet的访问路径以及全限定名

注意: 在使用 myeclipse2014 时及以后版本时,新建的 web 项目没有 web.xml 文件,

解决:在新建项目之后,填写完项目名,不要点 finish 要点 next,然后选中创建 web.xml 文件

使用 myeclipse 编写 servlet

src->new->servlet

重写 doGet()doPost()

部署运行

例如:把当前时间动态显示到浏览器的Servlet:

书写步骤为:

①.写这个servlet类,Servlet类应该继承HttpServlet

package com.macw.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* servlet类要继承HttpServlet
* HttpServlet java项目中没有这个类,需要导入外部的jar包。
* jar包在tomcat安装路径的lib文件夹里面。
* @author Administrator
* 重写父类中的servcie方法。
*/
public class FirstServlet extends HttpServlet {
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException{
//生成动态的html源码
Date d=new Date();
System.out.println(d);
String html="<html>"
+ "<head><title>我是标题</title></head>"
+"<body>"+d+"</body>"
+ "</html>";
//把html源码响应给浏览器
//设置服务器给浏览器响应的数据的格式是html
response.setContentType("test/html");
//设置服务器给浏览器响应的数据的编码集
response.setCharacterEncoding("utf-8");
//设置具体的响应内容。
PrintWriter out=response.getWriter();
out.print(html);
out.close();
}
}

②.编译servlet类成class文件

MyEclipse会自动编译该java文件。

③.把这个class文件放入到tomcat相应的目录里面(部署servlet)

Tomcat
|-webapps
|-myweb
|-WEB-INF
|-classes(专门存放servlet类)
|-com.macw.servlet.FirstServlet(class文件)
|-web.xml

④.每一个servlet都需要在配置文件中进行配置。

<?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_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<!--servlet的名字,是随便起的,要跟servlet-mapping里面的servlet-name一致,一般默认和servlet类名相同 -->
<servlet-name>FirstServlet</servlet-name>
<!--servlet的包名和类名(全限定名) -->
<servlet-class>com.macw.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<!--要跟servlet中的servlet-name保持一致 -->
<servlet-name>FirstServlet</servlet-name>
<!--url-patten要以/开头,后面内容随便写,是浏览器的请求路径 -->
<url-pattern>/first</url-pattern>
</servlet-mapping>

4、常见错误

①.404错误。

根本原因:访问的资源不存在。

A.检查你的访问的路径,也就是浏览器输入的网址。Url请求。

B.检查tomcat启动时候是否报错。再根据tomcat的报错信息定位错误。

②405错误

Servlet入门案例(一)认识Servlet_Servlet入门案例

错误原因是servlet的类的service方法没有被重写。

③500错误

Servlet入门案例(一)认识Servlet_java_02

500错误的原因很多,追其根本是因为java类中出现异常。

出现500错误后要详细去看报错信息。再根据报错信息定位错误。

④.地址被占用

Servlet入门案例(一)认识Servlet_java_03

Tomcat的端口号被占用。