1.Servlet是sun公司提供的一门用于开发动态web资源的技术。
2.Servlet在web应用的位置:
3.创建Servlet的三种方式:
(1)实现servlet的接口
(2)继承GenericServlet,覆写service方法
(3)继承HttpServle,覆写doGet()或者doPost()等方法
注意:
1>GenericServlet
实现了 Servlet
和ServletConfig
接口. GenericServlet
可以直接被一个servlet扩充,尽管它更为一般的是用来扩充一个指定协议的子类,如HttpServlet
.
GenericServlet
使得写入 servlets更加简单。它提供了简单的生命周期方法init
和destroy,以及ServletConfig接口中的方法
的版本。 GenericServlet
也实现了 log
方法,在ServletContext
接口中被声明。
2>提供了一个可以由之生成子类以为WEB站点创建HTTP servlrt 的抽象类。 HttpServlet
的子类必须至少覆盖一个方法。通常是下列方法中的一个:
doGet
, 如果servlet 支持 HTTP GET 请求doPost
, 针对 HTTP POST 请求doPut
, 针对 HTTP PUT 请求doDelete
,针对HTTP DELETE 请求init
和destroy
, 为管理为servlet的存在而锁定的资源。getServletInfo
, servlet 用以提供关于器其自身信息。
4.不用IDE创建Servlet的方法:
(1) tomcat/webapps/目录下创建web应用mail。
目录结构如下
tomcat/webapps
|
mail
|
WEB-INF
| |
web.xml classes
|
cn.wwh.www.web.servlet.MyServlet.class
(2)tomcat/webapps/mail/目录下写一个类MyServlet实现Servlet接口。
(3)进入cmd命令台,加入servlet-api.jar[tomcat中有]支持
set classpath=%classpath%;D:\apache-tomcat-6.0.29\lib\servlet-api.jar(导入这个jar包)
(4) 进入MyServlet.java所在的目录,编译MyServlet。
javac -d . MyServlet.java (编译)
(5)部置mail应用到tomcat/webapps/目录下,并启动Tomcat。
(6)一定要在web.xml文件中配置MyServletWeb动态资源
<servlet>
<servlet-name>
<servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
<url-pattern>/MyServlet</url-pattern>(虚拟的URL)
</servlet-mapping>
(7) 通过浏览器访问MyServlet这个动态Web资源
IE:http://localhost:8080/mail/MyServlet
注意:
(1) tomcat/webapps/目录下创建web应用mail。
目录结构如下
tomcat/webapps
|
|
WEB-INF
| |
web.xml classes
|
cn.wwh.www.web.servlet.MyServlet.class
(2)tomcat/webapps/mail/目录下写一个类MyServlet实现Servlet接口。
(3)进入cmd命令台,加入servlet-api.jar[tomcat中有]支持
set classpath=%classpath%;D:\apache-tomcat-6.0.29\lib\servlet-api.jar(导入这个jar包)
(4) 进入MyServlet.java所在的目录,编译MyServlet。
javac -d . MyServlet.java (编译)
(5)部置mail应用到tomcat/webapps/目录下,并启动Tomcat。
(6)一定要在web.xml文件中配置MyServletWeb动态资源
<servlet>
<servlet-name>
MyServlet
</servlet-name>(一般写类名为好)
<servlet-class>
cn.wwh.www.web.servlet.MyServlet</servlet-class>(权限类名)
</servlet>
<servlet-mapping>
<servlet-name>
MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>(虚拟的URL)
</servlet-mapping>
(7) 通过浏览器访问MyServlet这个动态Web资源
IE:http://localhost:8080/mail/MyServlet
注意:
1>
在WEB-INF文件夹下放的是java的class文件,而不是java源代码
2>写servlet的类时,一定要在web.xml文件下进行配置,就像用到android的四大组件时,必须在manifest.xml文件中注册一样。
3>在浏览中的地址栏,输入虚拟目录要注意大小写问题。
4>由于MyEclipse中自带了jdk,所以在运行tomcat时要注意在dos下编译的java源文件所用到的jdk要和tomcat中的jdk一样。
4.servlet创建的三种方式(只写类型,没有注重代码的目的)
1.第一种(CreateServlet1.java):
package cn.wwh.www.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-7-26 上午10:57:35
*/
public class CreateServlet1 implements Servlet{
@Override
public void destroy() {
}
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-7-26 上午10:57:35
*/
public class CreateServlet1 implements Servlet{
@Override
public void destroy() {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// 取得服务端向浏览器中的输出流对象
PrintWriter pw = response.getWriter();
pw.write("You must study and never give up your dream!");
}
}
public ServletConfig getServletConfig() {
return null;
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// 取得服务端向浏览器中的输出流对象
PrintWriter pw = response.getWriter();
pw.write("You must study and never give up your dream!");
}
}
(2)第二种方式(CreateServlet2.java):
package cn.wwh.www.web.servlet;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-7-26 上午11:12:14
*/
public class CreateServlet2 extends GenericServlet {
@Override
public void service(ServletRequest requeset, ServletResponse response)
throws ServletException, IOException {
// 设置浏览器字符的编码的方式,主要的针对中文字符,如果不设置中文字符,将出现乱码
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("<h1 style='color:red'>青春是用来奋斗的,理想是用来实现的!</h1>");
}
}
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-7-26 上午11:12:14
*/
public class CreateServlet2 extends GenericServlet {
@Override
public void service(ServletRequest requeset, ServletResponse response)
throws ServletException, IOException {
// 设置浏览器字符的编码的方式,主要的针对中文字符,如果不设置中文字符,将出现乱码
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("<h1 style='color:red'>青春是用来奋斗的,理想是用来实现的!</h1>");
}
}
(3)第三中方式(CreateServlet3.java):
package cn.wwh.www.web.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;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-7-26 上午11:41:28
*/
public class CreateServlet3 extends HttpServlet {
//浏览器以Get的方式提交,所以覆写doGet的方法就好了
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
// pw.write("<strong>");
pw.write("<span style='font-size:300%;color:red;'>");
pw.write("作者:一叶扁舟");
pw.write("</span>");
pw.write("<br/>");
pw.write("<p style ='color:blue;'>专业:软件工程</p>");
// pw.write("</strong");
pw.close();
}
}
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;
/**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-7-26 上午11:41:28
*/
public class CreateServlet3 extends HttpServlet {
//浏览器以Get的方式提交,所以覆写doGet的方法就好了
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
// pw.write("<strong>");
pw.write("<span style='font-size:300%;color:red;'>");
pw.write("作者:一叶扁舟");
pw.write("</span>");
pw.write("<br/>");
pw.write("<p style ='color:blue;'>专业:软件工程</p>");
// pw.write("</strong");
pw.close();
}
}