servlet的小例子

servlet测试

首先,打开myeclipse,file|new|Dynamic Web Project 会出现一个对话框,在Project name的文本框中输入:FirstServlet;然后点击finish,完成创建。

注意配置tomcat,点击工具栏的Window/Preferences/MyEclipse/Servers/Tomcat/Tomcat 7.x,然后选中你的tomcat,Enable,确定;

其次,展开项目,在src下新建New|Servlet,弹出对话框,在Java package中输入:cc.openhome(包名),className:HelloServlet,点击finish完成,如下:

添加蓝色部分

package cc.openhome;

 

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

@WebServlet("/hello.view")

public class HelloServlet extends HttpServlet { //1.继承HttpServlet

  public HelloServlet() {   super();  }

  public void destroy() {   super.destroy();  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException { //2.重新定义doGet

    response.setContentType("text/html;charset=UTF-8");   //3.设置响应类型

    PrintWriter out = response.getWriter();   //4.取得响应输出对象

    String name=request.getParameter("name");   //5.取得请求参数

    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.println("<h1>Hello!"+name+"</h1>");   //6.数据输出到前端

    out.print("This is ");   

    out.print(this.getClass());   

    out.println(", using the GET method");   

    out.println("  </BODY>");   

    out.println("</HTML>");   

    out.flush();   out.close();  

  }

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

    response.setContentType("text/html");   

    PrintWriter out = response.getWriter();   

    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("    This is ");   

    out.print(this.getClass());   

    out.println(", using the POST method");   

    out.println("  </BODY>");   

    out.println("</HTML>");   

    out.flush();   

    out.close();  

  }

  public void init() throws ServletException {   // Put your code here  }

}

 在HelloServlet.java 上右击选择 Run as / MyEclipse Server Application启动tomcat;

在浏览器地址栏输入http://localhost:8080/FirstServlet/hello.view?name=nihao会出现如下结果:

至于标注@WebServlet("/hello.view") 这表示URL是/hello.view,就会由HelloServlet.java来处理请求。

另外,url也可以在项目的WEB-INF/web.xml内设置,如:

<servlet>

  <servlet-name>HelloServlet</servlet-name>    

  <servlet-class>cc.openhome.HelloServlet</servlet-class>  

  <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>    

  <servlet-name>HelloServlet</servlet-name>    

  <url-pattern>/hello.do</url-pattern>  

</servlet-mapping>

当请求为/hello.do时,则有HelloServlet来处理,这分别是由<servlet-mapping>中的<servlet-name>和<url-pattern>来定义,而HelloServlet名称的Servlet,实际上是cc.openhome.HelloServlet类的实例,这分别是由<servlet>中的<servlet-name>和<servlet-calss>来定义,如果有多个Servlet在设置<load-on-startup>时,使用了相同的数字,则以其在web.xml中设置的顺序来初始Servlet,若<url-pattern>中的内容和标注中的内容一样,则web.xml会覆盖@WebServlet()标注

有三种方式可以设置处理Servlet请求的方式,请参考:

http://e.dangdang.com/html/reader.html;jsessionid=9798112171FADBF7AC2707188C1DF13F?productId=1900280541&bookUid=bb.135546768822699731

posted @ 2015-04-17 18:39  碧波寒  阅读(5584)  评论(0编辑  收藏  举报