文件名:“SimpleServlet.java”
package cn.mldn.lxh.servlet;//定义包 import java.io.*; //HttpServlet属于javax.servlet.http包下 //ServletException属于javax.servlet包下 import javax.servlet.*;//导入HttpServlet所属的包 //HttpServletRequest、HttpServletResponse存放在javax.servlet.http包下 importjavax.servlet.http.* ; public class SimpleServlet extendsHttpServlet { // 表示处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException //抛出异常 { PrintWriter out = resp.getWriter();//实例化out对象。 out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>THE FIRSTSERVLET</TITLE>") ; out.println("</HEAD>"); out.println("<BODY>"); out.println("<H1>HelloWorld!!!</H1>") ; out.println("</BODY>"); out.println("</HTML>"); out.close() ; } public void doPost(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException { this.doGet(request,response) ; } };
JSP功能和servlet一致,也就是说servlet可以被外部访问,那么要访问它就需要通过一个地址,因此只有通过WEB的地址映射来解决。
如何进行地址映射呢?
通过修改web.xml文件进行。
<servlet> <servlet-name>simple</servlet-name>//我们定义的servlet应用名字 <servlet-class>cn.mldn.lxh.servlet.SimpleServlet</servlet-class>//我们定义的servlet应用名字对应的具体class文件 </servlet> <servlet-mapping> //地址映射 <servlet-name>simple</servlet-name>//我们定义的servlet应用名字 <url-pattern>/demo</url-pattern>//地址名 </servlet-mapping>
进行地址映射目的是为了使用servlet,它的工作过程是:
工作过程:输入地址:http://localhost:8080/ demo,
通 过它找到映射文件内部的文件名simple,通过simple找到对应的<servlet-name>simple</servlet-name>,然后定位到这个servlet文件:cn.mldn.lxh.servlet.SimpleServlet
由此可见,<servlet-name>simple</servlet-name>中的名字simple不一定一定要与servlet的文件名“SimpleServlet.java”一致,它只是在对web.xml文件配置的时候我们对servlet应用名字的定义,通过<servlet-class>cn.mldn.lxh.servlet.SimpleServlet</servlet-class>我们就可以定位到这个servlet文件。
(注意:通过配置web.xml文件的servlet,可以直接系统外访问。一般用于单点登录等系统外登录。)
servlet可以被外部访问,访问它需要一个地址,只有通过WEB的地址映射来解决