DRP(一)——servlet小例子
来源:互联网 发布:linux w3m 图片 编辑:程序博客网 时间:2024/05/23 01:58
初级学习实现的简单的小例子,向客户端输出一个字符串“ Hello World”。这是基于tomcat容器的一个例子,必须安装tomcat,普及一下tomcat的目录结构知识,
现在开始编写例子
1、编写HelloWorldServlet类
编写一个Servlet,实际上就是编写一个实现了javax。servlet.Servlet接口的类。在tomcat\webapps目录下建立一个子目录ch02,然后用记事本等文本编辑工具编写HelloWorldServlet.java源文件,将编写好的HelloWorldServlet.java源文件放在tomcat\webapps\src目录下
<span style="font-size:18px;"><span style="font-size:18px;">package org.sunxin.ch02.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class HelloWorldServlet implements Servlet{private ServletConfig config;public void destroy(){}public ServletConfig getServletConfig(){return config;}/***该方法很少使用,因此返回null即可*/public String getServletInfo(){return null;}/***ServletConfig对象由容器构造。容器在调用init()方法时,将其作为参数传给servlet*/public void init(ServletConfig config) throws ServletException{this.config = config;}public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException{//得到PrintWriter对象。servlet使用输出流来产生响应PrintWriter out = res.getWriter();//向客户端发送字符数据out.println("Hellor World");//关闭输出流out.close();}}</span></span>在Servlet中,主要的方法是service(),当客户端请求到来时,servlet容器将调用servlet实例的service()方法对请求进行处理。我们在service()方法中,首先通过servletResponse类中的getWriter()方法调用得到一个PrintWriter类型的输出流对象out,然后调用out对象的println()方法想客户端发送字符串“Hello World”,最后关闭对象。servlet容器调用servlet实例对请求的处理过程如图:
2、编译HelloWorldServlet.java
打开命令提示符,转到HelloWorldServlet.java所在的目录tomcat\webapps\ch02\src下,然后执行:
javac -d . HelloWorldServlet.java
一般会出现下边的错误:
产生这些错误的原因是java编译没有找到javax.servlet包中的类。要解决这个问题,我们需要让java编译器知道servlet API库所在的位置。tomcat在其发行版中已经包含了servlet API库,是以jar文件形式提供的,在tomcat\lib\servlet-api.jar中,所以我们只需把它的完整路径放在环境变量CLASSPATH中即可。
然后用 javac -d . HelloWorldServlet.java命令再编译,生成org\sunxin\ch02\servlet目录结构,以及在servlet子目录中的HelloWorldServlet.class文件。
3、部署HelloWorldServlet
如果你要新建一个web应用程序,可以在webapps目录下先建一个目录,在这个例子中,我们所建的目录是ch02,作为第一个web应用程序的上下文根。java开发的web应用程序需要遵照一定的目录层次结构,在servlet规范中定义了web应用程序的目录层次结构,如下图
在servlet容器运行时,web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类。
如果我们想要在servlet代码中访问保存文件中的配置信息,而不希望这些配置信息被客户端访问到,就可以把这个文件放到web-inf目录下。
在tomcat\webapps\ch02目录下新建一个目录WEB-INF,进入WEB-INF,新建一个classes目录,整个目录结构是:
tomcat\webapps\ch02\WEB-INF\classes
将编译生成的HelloWorldServlet.class文件连同所在的包一起放到WEB-INF\classes目录下。
然后编写web.xml文件。放在WEB-INF目录下。代码如下
<span style="font-size:18px;"><span style="font-size:18px;"><?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>HelloWorldServlet</servlet-name><servlet-class>org.sunxin.ch02.servlet.HelloWorldServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorldServlet</servlet-name><url-pattern>/helloworld</url-pattern></servlet-mapping></web-app></span></span>
4、访问HelloWorldServlet
启动tomcat,然后在浏览器地址栏中输入http://localhost:8080/ch02/helloworld
效果图如下:
总结
例子成功完成,学到很多,servlet的MVC模式,很有感觉,曾经学过DOTNET的MVC,其实都是一样的。
- DRP(一)——servlet小例子
- DRP——Servlet(一)
- drp——servlet
- 【DRP】——servlet
- 【DRP】——JSP+servlet
- Java Drp项目实战——Servlet
- Java Drp项目实战——Servlet
- DRP(二)——Servlet解析
- 【DRP学习总结】——初探servlet
- 【DRP分销资源计划】——servlet
- 【DRP】JavaScript小例子值简易计算器
- DRP之旅(1)——Servlet初探
- DRP(三)——Servlet请求转发
- DRP(四)——线程安全的Servlet
- DRP总结—JSP+Servlet+JSTL简单介绍
- 【DRP】servlet
- JSP/Servlet基础——ServletMVC小例子
- DRP项目总结(一)——项目简介
- Python ftplib模块
- python的2.5与2.7版本中ftp模块的一个小区别
- 程序员必知的七个图形工具
- git常用命令
- 修改HTML元素
- DRP(一)——servlet小例子
- 微信开发记录
- 【Codeforces】-300A- Array(分三组正负零)
- 带环链表,黑洞与视界
- JSP中include指令和include动作的区别
- 思考问题的6w原则
- 数据库总结2
- TimesTen 应用层数据库缓存学习:17. 全局数据缓存(cache grid)的高可用性
- [leetcode] 355. Design Twitter 解题报告