还记得年前在看尚学堂教程时候马先生曾经说过“JavaScript在客户端无所不能,而Servlet在服务器端无所不能”。这句话让我感觉Servlet深不可测。
    而在后来知道JSP,JSF,还有一系列WEB开发框架也是基于Servlet的时候更是对它怀有憧憬之神往。所以从今天起,开始继续重新整理下Servlet。
    自己看的东西,面上话就不说了,概念的东西网上一搜都有。
    J2EE就是一系列标准,Servlet属于它所以也不例外。一些WEB容器符合这标准规范,就可以在其中使用Servlet。只用过TOMCAT所以别的就不说了。
    在TOMCAT中,WEB程序都在“webapps”这个文件夹中。要符合Servlet标准,就有类似与这样的一个结构:1、在项目目录下必须存在“WEB-INF”这个目录。2、“WEB-INF”下必须有一个“web.xml”文件,这个文件符合J2EE规范。3、如果要跑Servlet在“WEB-INF”下存在一个“classes”文件夹里面存放编译好的Servlet文件(*.class)。4、“WEB-INF”下包含一个“lib”文件夹来存放所用到的“jar包”。
   
Servlet是一个接口,Servlet是在服务器端运行的程序,也可以在除HTTP服务器外的其他服务器端运行,一般情况来说我们要实现Servlet这个接口就实现它的子类,GenericServle直接实现Serlvet但是个抽象类,所以直接实现GenericServle的子类HttpSerlvet。
    当客户端请求服务器的时候所制定的Servlet会被调用。doGet和doPost方法,直接在url访问是调用doGet只有在通过Form提交时候并且Form的action属性为post时候才调用doPost方法。
    这两个方法里都有两个参数“request”和“response”request是取得从客户端拿来的数据,而response是对客户端发送数据。
    新建一个Servlet,名字为“HelloWorld.java”我把代码贴下面。(建的时候如果IDE是不支持Servlet的话就先吧Servlet-api.jar这个包导入工程中,比如在用Eclipse做开发的时候。)
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;


public class HelloWorld extends HttpServlet {


    
public void doGet(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {
       
        response.setContentType(
"text/html");//文件类型
       
        PrintWriter out 
= response.getWriter();//拿到“out”
       
        // 简单,不说了,一系列的客户端输出
        
     
        out.println(
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println(
"  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println(
"  <BODY>");
        out.print(
"HelloWorld!");
        out.println(
"  </BODY>");
        out.println(
"</HTML>");
        out.flush();
        out.close();
    }

}
    建好这个文件之后编译它,然后把它放在刚才说的“WEB-INF/classes/”下面

这样我就差配web.xml了,这个“web.xml”是web项目的配置核心。
下面在WEB-INF下建立个文件,改名成"web.xml"
把下面代码写到里面:
<?xml version="1.0" encoding="UTF-8"?> 

<web-app version="2.4" 
xmlns
="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
> 
<servlet> //Servlet配置
    
<servlet-name>Hello</servlet-name>       //这里是设置刚才写的servlet的名字可以随便起
    
<servlet-class>HelloWorld</servlet-class>  //这里是class文件的名字,建立从classes目录下HelloWorld.class文件把文件名字拷贝过来,不要后缀。。。。
</servlet> 

<servlet-mapping> //Servlet映射
    
<servlet-name>Hello</servlet-name> //这里是指要访问这个URL的时候对应需要调用哪个 Servlet。注意跟上面的“servlet名字”一直,而不是类名。
    
<url-pattern>/Hello</url-pattern> //设置需要访问的url是跟在你webapps下面项目名字后的记得以“/”开头
</servlet-mapping> 
</web-app>
都配完了。
现在开启tomcat服务器。这么简单的程序,应该不出错的,如果出错,最多的应该是web.xml文件的错误,配置问题,请自己检查。而且注意,servlet-class里“HelloWorld”要与你的HelloWorld.class名字大小写一致。
打开浏览器。如果你跟我的目录一模一样的话,就应该输入 http://localhost:8080/TestServlet/Hello

    今天心情不好,就写到这里吧。


posted on 2008-06-04 22:15 leweslove 阅读(271) 评论(0)  编辑  收藏 所属分类: J2EE

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
Copyright@2008-2009 By Evan