文件名:“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应用名字对应的具体servlet文件
</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文件。
同普通的工程一样,建立一个java程序,不过这个程序要 extendsServlet,而且没有主方法
public class HelloWorldServlet extends HttpServlet{
@SuppressWarnings("deprecation")
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>人数anjinbaliang</title></head>");
out.println("<body>baliang ai banjin ,it‘s right!"+new Date().toLocaleString()+"</body></html>");
out.flush();
}
}
在WebRoot->WEB-INF->web.xml内的最后一行的前面修改如下:
<servlet>
<servlet-name>HelloWorldServlet</servlet-name> //这个为servlet的类名
<servlet-class>MyEclipse.HelloWorldServlet</servlet-class> //完整的类名
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name> //这个同上面的第一个一样,为servlet的类名
<url-pattern>/HelloWorldServlet</url-pattern> // 一定要有一个/ 加上类名 这个对于的是网址中文件夹/test后面的子目录,通过这个对应得到上面servlet-name的名字,HelloWorldServlet,再通过这个名字得到<servlet>内的<servlet-name>(与子对应关系),从而得到<servlet-class>实例化出一个MyEclipse.HelloWorldServlet类
</servlet-mapping>
</web-app>//最后一行