一,继承于HttpServlet
二,创建Servlet
package com.example.web; 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; import com.example.model.*; public class BeerSelect extends HttpServlet{ /** * */ private static final long serialVersionUID = -5943915917892367989L; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("Beer Selection Advice<br>"); String c = req.getParameter("color"); BeerExpert model = new BeerExpert(); out.println("<br>Got beer color " + model.getBrands(c)); } }
三,创建model
package com.example.model; import java.util.ArrayList; import java.util.List; public class BeerExpert { public List getBrands(String color) { List brands = new ArrayList(); if(color.equalsIgnoreCase("light")) { brands.add("Jack Amber"); brands.add("Red Moose"); } else { brands.add("Jail Pale"); brands.add("Gout Stout"); } return brands; } }
四,创建配置文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>Ch3 Beer</servlet-name> <servlet-class>com.example.web.BeerSelect</servlet-class> </servlet> <servlet-mapping> <servlet-name>Ch3 Beer</servlet-name> <url-pattern>/SelectBeer.do</url-pattern> </servlet-mapping> </web-app>
五,手动编译
在eclipse中直接配置
javac -classpath apache-tomcat-6.0.41\lib\servlet-api.jar;classes;. -d classes/ src/com/example/web/BeerSelect.java
<span style="font-family: Arial, Helvetica, sans-serif;"> 其中-classpath指定依赖库,-d指定生成的class文件存放路径</span>
六,运行
将classes目录移动到tomcat的WEB-INF中,将配置文件也移动到这个目录;
五,问题
1,无法找到servlet绝对路径
在Servlet文件中必须指定package
2,配置文件中的servlet-mapping中的url-pattern,servlet名字前要加/,相对于请求的路径