手写一个简单的Servlet程序
前几天一个客户让我帮他手动编写一个java web程序,由于一直习惯于依赖开发平台生成基于不同框架下的web程序,让我手动编写,一时竟然有点懵了。写着javaee程序,竟然写不出一个简单的Servlet程序。呵,弄的挺没面子。我想这也暴露了自身基础不够扎实,对于java web程序理解的不够深刻,在此做个总结,动手写一个Servlet程序。
首先,编写一个简单的Servlet类:ConfigTestServlet,这个类继承HttpServlet,代码如下:
代码
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Enumeration;
public class ConfigTestServlet extends HttpServlet {
private int count =0;
public void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html;charset = GB2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("Servlet名称为:"+getServletConfig().getServletName() +"<br>");
// getServletConfig().getServletName()从配置文件中获取改servlet对应的name即ConfigTest
Enumeration e= getServletConfig().getInitParameterNames();
//获取参数
out.println("下面是Servlet设置的初始化参数:"+"<br>");
while(e.hasMoreElements())
{
String Key = (String)e.nextElement();
String value = this.getInitParameter(Key);
out.println(" "+ Key + "="+value + "<br");
}
ServletContext context = getServletContext();
String path = context.getRealPath("/");
out.println("当前路径信息的本地目录为"+path +"<br>");
out.println("</html>");
}
}
编译ConfigTestServlet.java,将.class文件放到WEB-INF下的classes文件夹中,在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">
<servlet>
<servlet-name>ConfigTestServlet</servlet-name>
<servlet-class>ConfigTestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ConfigTestServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
麻雀虽小,五脏俱全,一个java web 程序即已实现。当我们褪去java的Spring、EJB/Hibernate、Struts/JSF等等复杂的框架和组件之后,剩下一个空壳工程文件。这个时候,抛弃所有的开发平台,你是否还能让这个空壳工程运行起来,也许习惯了javaee的开发,似乎已经忘记了一个最基本最原始的java web程序是如何实现的。有的时候看着简单,做起来却不是那么回事,还是要动起手来,从最基础做起。
虽然简单,还是附上一下 :
https://files.cnblogs.com/gistone/hello.rar


浙公网安备 33010602011771号