一 点睛
从现实的开发来看,既然是Java程序,建议写在Java程序里面,而非Scriptlet(代码段)中。这时就会用到Servlet开发技术。
Applet:应用小程序,是嵌入网页的Java小程序,它不使用主方法运行,这里的let表示“小程序”。
Servlet=Server+Applet,指的是服务器(server)端小程序(let)。Servlet程序,严格来讲是使用Java程序实现的CGI开发。CGI指的是公共网关接口标准,理论上,可以使用任何语言实现,但是传统的CGI有一个非常严重的问题:它采用重量级的多进程的方式进行处理,而Servlet与传统的CGI的主要区别在于:它使用轻量级多线程的方式处理。
二 实战——自动搭建一个简单的Servlet程序
1 建立一个项目目录树
2 编写Servlet程序HelloWorld.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
out.close() ;
}
}
3 编译Servlet
D:\Program\Tomcat8\webapps\ServletDemo>javac -classpath "D:\Program\Tomcat8\lib\servlet-api.jar" -d .\WEB-INF\classes .\src\HelloWorld.java
此时,在D:\Program\Tomcat8\webapps\ServletDemo\WEB-INF\classes目录会生成HelloWorld.class
4 创建web.xml
web.xml是一个部署描述文件,把它放置在WEB-INF目录下。
<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_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>servletDemo</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletDemo</servlet-name>
<url-pattern>/hello.do</url-pattern>
</servlet-mapping>
</web-app>
说明:
<servlet>和<servlet-mapping>下的<servlet-name>必须一致,可以随便命名,它对外部不可见。
<url-pattern>是外部访问URL,通过<servlet-name>和<servlet-class>关联,这里它关联到HelloWorld这个类。
5 在server.xml中加入web项目
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/webdemo" docBase="D:\Program\Tomcat8\webapps\WebDemo"/>
<!--下面这一行为新增-->
<Context path="/servdemo" docBase="D:\Program\Tomcat8\webapps\ServletDemo"/>
</Host>
6 重启Tomcat
7 运行测试