Servlet入门案例(一)认识Servlet

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错误
405错误
错误原因是servlet的类的service方法没有被重写。

③500错误
500错误
500错误的原因很多,追其根本是因为java类中出现异常。
出现500错误后要详细去看报错信息。再根据报错信息定位错误。

④.地址被占用
Tomcat端口号被占用
Tomcat的端口号被占用。

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/92378965