环境:jdk1.7, eclipse
1.建立servlet类
创建名为HelloWorld的类,并继承HttpServlet(javax.servlet.http.HttpServlet)
源码如下
package test;
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 HelloWorld extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
out.print("HelloWorld");
}
}
2.对该servlet写映射,这样tomcat才能通过配置文件找到它,我们才能通过浏览器访问到
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app> <servlet> <servlet-name>Test</servlet-name> <!--Servlet的注册名称--> <servlet-class>test.HelloWorld</servlet-class> <!-- servlet的完整名称,即类的全限定名--> </servlet> <servlet-mapping> <!-- 映射一个已注册的servlet的对外访问路径 --> <servlet-name>Test</servlet-name> <!-- servlet的注册名称,必须与上面的一致--> <url-pattern>/test/*</url-pattern> <!--资源名称,Servlet的对外访问路径--> </servlet-mapping> </web-app>
将项目配置到tomcat服务器中,运行tomcat服务器,在浏览器输入:http://localhost:8080/TestTomcat/test/HelloWorld,即可看到该servlet的运行结果。
这里执行顺序是:客户端是通过URL地址访问web服务器中的资源,web服务器接收到请求后在web.xml在查找,由下至上,根据url地址,在<servlet-mapping>找到servlet的名字,在通过名字,在在<servlet>中找到类的全限定名,从而找到所请求的类
若选择此种部署方式,需要在WEB-INF文件中加入classes,并配置类的输出路径到此。
在server.xml中,在<host></host>中间写入<Context path="url访问路径,默认是项目名" docBase="项目路径"/>
若同时部署多个项目,path值不能一样
url为:http://localhost:8080/"path的值"/"资源名称"
servlet配置初始化参数,即在web.xml中配置参数,之后在servlet类初始化的时候调用,解除硬编码。
在web.xml文件中的
<servlet>
<servlet-name>xxx</servlet-name>
<servlet-class>xxx</servlet-class>
<init-param>
<param-name>defname</param-name>
<param-value>123</param-value>
</init-param>
</servlet>
配置之后可以在servlet文件中,定义一个全局变量a,在init(ServletConfig config)方法中,a=config.getInitParameter("defname");获取,之后在同个类下别的方法中使用