手工编写Servlet

Posted on 2008-12-01 05:19 fcp 阅读(472) 评论(0)  编辑  收藏 所属分类: j2ee
从今天开始,复习原来学过的东东,基本上都忘了,从基础开始
万丈高楼平地起,|||...

手工编写Servlet
1, what is servlet
说白了就一个能响应用户请求的java程序,可以回应给用户HTML代码,当然也可以执行其他任务,比如操纵数据库什么的。

2,编写Servlet
其实就是个Java文件,需要继承HttpServlet这个类,位置是在javax.servlet.http.HttpServlet

package com.fcp.hello;

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.util.*;

public class HelloServlet extends HttpServlet
{
    
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    
{
        response.setContentType(
"text/html;charset=utf-8");
        
        PrintWriter out 
= response.getWriter();
        out.println(
"<html>");
        out.println(
"<head>");
        out.println(
"<title>my first servlet</title>");
        out.println(
"</head>");
        out.println(
"<body>");
        
//print time
        out.println(new Date());
        out.println(
"<br>");
        out.println(
"Welcome to my first Servlet!");
        out.println(
"</body>");
        out.println(
"</html>");
        out.flush();
        out.close();
    }

    
    
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    
{
        doGet(request, response);
    }

}

重写doGet和doPost这两个函数,来处理GET和POST请求
response这个变量就是要返回给用户的,所以先设置一下返回数据的类型
response.setContentType("text/html;charset=utf-8");

然后获得PrintWriter这个对象的实例
PrintWriter out = response.getWriter();

恩,现在可以输出我们想输出的内容了
输出完别忘了,flush和close

在doPost方法里调用doGet,这样可以让GET和POST方法得到同样的处理

2,编译程序
因为Tomcat能接受的已经编译的class文件,所以我们要先进行编译
javac -d . HelloServlet.java

运行后有错误。。。。找不到javax.servlet.http.HttpServlet
传输中是没有装j2ee

这个包我们可以在tomcat中找到,导致我现在还不知道正常的装法
重新编译,加上class path
javac -d . -cp c:\tomcat6\lib\servlet-apt.jar HelloServlet.java
编译成功

3,创建tomcat的目录结构
在webapps下建立自己的web应用
-hello
    |-WEB-INF
        |-web.xml
        |-classes
            |-com
                |-fcp
                    |-hello
                        |-HelloServlet.class

4,建立web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version
="2.5">

    
<servlet>
        
<servlet-name>hello</servlet-name>
        
<servlet-class>com.fcp.hello.HelloServlet</servlet-class>
    
</servlet>
    
    
<servlet-mapping>
        
<servlet-name>hello</servlet-name>
        
<url-pattern>/hello</url-pattern>
    
</servlet-mapping>
    
</web-app>

前面的xml声明是从conf/web.xml中copy的
后面的才是主要内容
<servlet>就是定义servlet,定义servlet的名字和对应的类
<servlet-mapping>就是定义哪个servlet和哪个URL对应

5,启动tomcat,查看对应的URL
http://localhost:8080/htllo/hello
应该就可以看见了

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


网站导航:
 

posts - 0, comments - 4, trackbacks - 0, articles - 15

Copyright © fcp