好吧,又是一个简单到不能再简单的问题~~
由于各种原因,这次就不上图了,直接步骤和代码了。
1、前期准备
jdk、tomcat、EditPlus(eclipse)安装成功并且设置好环境变量。
2、由于jdk(JavaSE)是无法直接编译servlet的,所以需要将tomcat安装目录\lib\servlet-api.jar复制到java安装目录\lib下,并且为了确保没有问题,可以在系统变量CLASSPATH后面加上“;%CATALINA_HOME%\lib\servlet-api.jar”(前提是CATALINA_HOME要设置好啊。。)
3、创建文件结构
我在tomcat的webapps目录下新建了一个my文件夹,下面又新增了src文件夹(放所有的java文件包括servlet)、WEB-INF文件夹(放所有的classes类、jar包、静态页面和web.xml),WEB-INF文件夹里新建两个文件夹:classes和lib。
4、现在可以写代码了,在src文件夹下新建文件夹servlet,在servlet文件夹内新建一个java文件,命名为HelloWorldServlet.java。
1 package servlet; 2 3 //打包,注意这个地方,待会在配置web.xml时会用到 4 5 import javax.servlet.http.*; 6 import javax.servlet.*; 7 import java.io.*; 8 9 //以上三个导入语句都是servlet要用到的,尤其是前两个 10 11 public class HelloWorldServlet extends HttpServlet{ 12 13 protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException{ 14 15 PrintWriter out = resp.getWriter(); //打印流,自动flush,不会抛出异常 16 out.println("<html><head><title>Hello</title></head><body>HelloWorld!</body></html>"); 17 18 //作用是输出HelloWorld!字段 19 20 out.flush(); 21 22 //flush() 清空缓冲区的数据 23 24 out.close(); 25 26 //关闭 27 28 } 29 } 30
因为我用的是EditPlus,所以就手动来编译一下吧(实话说一个两个都也没啥,多了我也不知道怎么办比较好。。。)
运行——cmd——cd D:\apache-tomcat-8.0.12\webapps\my\src\servlet(这个路径根据实际情况可以改)——javac HelloWorldServlet.java
如果出现乱码的问题,请参见我的上一篇文章《解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况》
成功编译之后,将生成的class文件复制到WEB-INF文件夹的classes文件夹中。注意,因为HelloWorldServlet.java的位置是在servlet文件夹内,所以在这里也要如法炮制,在classes文件夹里也要新建servlet文件夹,并将HelloWorldServlet.class文件放入其中。
5、别以为这就完事了。。配置web.xml同样是件大事。如果没有配置这个,100%报404(我才不会告诉你我蛋疼了好长时间)
如果你用的是eclipse或者其他的工具的话,可以在建立项目时就选择创建默认的web.xml(内面的内容非常少,只有一些欢迎的页面设置)。我是用的tomcat里example项目中改的,大家可以参考:
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1" metadata-complete="true"> 4 5 <servlet> 6 <servlet-name>Hello</servlet-name> 7 <servlet-class>servlet.HelloWorldServlet</servlet-class> 8 </servlet> 9 <servlet-mapping> 10 <servlet-name>Hello</servlet-name> 11 <url-pattern>/HelloWorldServlet</url-pattern> 12 </servlet-mapping> 13 </web-app> 14
加粗的内容是针对上文中写的servlet的设置。大家可以如法炮制(实话说我也讲不太明白,大家自行百度吧)。。。
6、最后,启动tomcat,输入http://localhost:8080/my/HelloWorldServlet ,搞定。