7.0写servlet类
package china.dalian;
import java.io.*;
import
javax.servlet.*;
import javax.servlet.http.*;
public class Hello extends HttpServlet{
public void
init(ServletConfig config) throws ServletException{
super.init(config);
}
public void service(HttpServletRequest
request,HttpServletResponse response) throws IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out =
response.getWriter();//获得一个向用户发送数据的输出流
out.println("<html><body>");
out.println("<h2>你好,欢迎学习servlet。</h2>");
out.println("</body></html>");
}
}
7.2编写web.xml文件
7.2.1一个XML文档以XML声明作为文件的第一行<?xml version="1.0" encoding="ISO-8859-1" ?>
7.2.2有一个根标记<web-app></web-app>
7.2.3servlet标记及其字标记
7.2.4<servlet>及<servlet-name>、<servlet-class>
7.2.5<servlet-mapping> and <servlet-name> and <url-pattern>
demo:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
<servlet>
<servlet-name>hello</servlet-name> //tomcat服务器创建的servlet对象的名称
<servlet-class>china.dalian.Hello</servlet-class> //指定tomcat服务器用哪个servlet类来创建servlet对象
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name> //必须和前面的一样
<url-pattern>\lookHello</url-pattern> //指定用户用怎样的模式来请求servlet对象
</servlet-mapping>
</web-app>
7.3servlet对象的生命周期:
servlet对象由tomcat服务器负责管理,通过读取web.xml文件创建运行servlet对象。
7.3.1 初始化servlet对象
7.3.2 调用service方法响应用户的请求
7.3.3 destroy方法消灭servlet对象
用户除了可以在浏览器的地址栏中直接输入servlet对象的请求格式来请求运行一个servlet外,也可以通过jsp页面来请求。
jsp页面可以通过表单或超链接来请求servlet
<form action="lookHello" method="post"> </form>
< A href ="lookHello">chan kan </A>
7.4 doGet()和doPost()方法
当服务器创建servlet对象后,该对象就会调用init()方法初始化自己,以后每当服务器在接受到一个servlet请求时,就会产生一个新线程,并在这个新线程中让servlet对象调用service方法检查HTTP请求类型(get或post),所以,在servlet类中不必重写service方法来响应用户,直接继承service方法就行。可以在servlet类中重写doGet和doPost方法来响应用户的请求。
当get和post方法,服务器要处理的过程完全相同时,那么可以只在doPost方法中编写处理过程,在doGet方法中调用doPost方法就行。反之也一样。如果根据请求的类型进行不同的处理,就需要在两个方法中编写不同的处理过程。
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException ,ServletException{}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException ,ServletException{
doPost(request,response);
}