关于Servlet例子

来源:互联网 发布:男生哄女生的笑话 知乎 编辑:程序博客网 时间:2024/05/19 07:42

关于Servlet例子

FirstServlet.java

package com.hbsi.csdn.ServletTest;

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 FirstServlet extends HttpServlet{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  this.doPost(req, resp);  //直接调用doPost方法
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  resp.setContentType("text/html;charset=utf-8");  //设置响应对象的内容类型
  PrintWriter out=resp.getWriter();   // 从响应对象中获取打印流
  out.println("这是我的第一个servlet程序!");   //向打印流中写入字符串
}

@Override
public void destroy() {
  // TODO Auto-generated method stub
  super.destroy();
}

@Override
public void init() throws ServletException {
  // TODO Auto-generated method stub
  super.init();
}

}

SecondServlet.java

package com.hbsi.csdn.ServletTest;

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 SecondServlet extends HttpServlet {

/**
  * Constructor of the object.
  */
public SecondServlet() {
  super();
}

/**
  * Destruction of the servlet. <br>
  */
public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
}

/**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
public void doGet(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 GET method");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
}

/**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to post.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
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();
}

/**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occurs
  */
public void init() throws ServletException {
  // Put your code here
}

}

ServletConfigTest.java

package com.hbsi.csdn.ServletTest;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletConfigTest extends HttpServlet {

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  this.doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  resp.setContentType("text/html;charset=utf-8");
  PrintWriter out=resp.getWriter();
  out.println("<html><body>");
  out.println("下面是为servlet设置的初始化参数:<br />servlet的名称是:"+getServletName()+"<br>");
  Enumeration e=getServletConfig().getInitParameterNames();  //获取初始化参数的所有名称(枚举类型)
  while(e.hasMoreElements()){    //判断集合中是否有更多的元素
   String key=(String)e.nextElement();   //获取集合中的元素
   String value=this.getInitParameter(key);   //跟据初始化参数的名称获取初始化参数的值
   out.println("该servlet初始化参数的名称是:"+key+"   初始化的值是:"+value+"<br>");
  }
  ServletContext sc=getServletContext();//获取servletContext对象
  String path=sc.getRealPath("/");
  out.println("当前应用程序的根目录:"+path+"<br>");
 
  Enumeration e1=sc.getInitParameterNames();
  while(e1.hasMoreElements()){
   String key1=(String)e1.nextElement();
   String value1=sc.getInitParameter(key1);
   out.println("该应用程序的初始化参数的名称是:"+key1+"   初始化的值是:"+value1+"<br>");
  }
  out.println("</body></html>");
 
}

}

ThreadServlet.java

package com.hbsi.csdn.ServletTest;

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 ThreadServlet extends HttpServlet {

private static int count=0;
public ThreadServlet() {
  super();
}

/**
  * Destruction of the servlet. <br>
  */
public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
}

/**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  this.doPost(request, response);
}

/**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to post.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  count++;
  try {
   Thread.sleep(500);
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
System.out.println("这是第"+count+"次访问,当前的线程名称为:"+Thread.currentThread().getName());
}

/**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occurs
  */
public void init() throws ServletException {
  // Put your code here
}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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">

<context-param>
  <param-name>全局变量</param-name>
  <param-value>aaaa</param-value>
</context-param>
<!-- 下面声明一个servlet类 -->
<servlet>
  <!-- servlet标识名 -->
  <servlet-name>First</servlet-name>
  <!-- servlet的完整类名 -->
  <servlet-class>com.hbsi.csdn.ServletTest.ServletConfigTest</servlet-class>
  <init-param>
   <param-name>firstname</param-name>
   <param-value>tom</param-value>
  </init-param>
  <init-param>
   <param-name>lastname</param-name>
   <param-value>apache</param-value>
  </init-param>
</servlet>

<!-- 下面进行servlet的映射配置 -->
<servlet-mapping>
  <!-- servlet标识名 -->
  <servlet-name>First</servlet-name>
  <!-- 下面设置servlet的访问路径,url的匹配模式 -->
  <url-pattern>/first</url-pattern>
</servlet-mapping>

  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>SecondServlet</servlet-name>
    <servlet-class>com.hbsi.csdn.ServletTest.SecondServlet</servlet-class>
    <load-on-startup>2</load-on-startup>

  </servlet>

  <servlet>
    <servlet-name>ThreadServlet</servlet-name>
    <servlet-class>com.hbsi.csdn.ServletTest.ThreadServlet</servlet-class>
  </servlet>


  <servlet-mapping>
    <servlet-name>SecondServlet</servlet-name>
    <url-pattern>/servlet/SecondServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ThreadServlet</servlet-name>
    <url-pattern>/servlet/ThreadServlet</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

原创粉丝点击