Unit13- Servlet基础
课堂案例1—认识第一个Servlet
案例学习目标:学习Servlet的基本编写方法。
案例知识要点:Servlet的编写、Servlet的编译、Servlet的使用场合。
案例完成步骤:
1.在Tomcatwebapps文件夹中创建保存第7章程序文件的文件夹chap07
2.复制WEB-INF文件夹和l文件。
3.编写第一个Servlet程序FirstServlet.java
【程序代码】FirstServlet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package myservlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
import javax.servlet.*;
public class FirstServlet extends HttpServlet
{
    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    {
        PrintWriter Writer();
        out.println("<html><body><h3>Welcome To The First Servlet!</h3></body></html>");
        out.flush();
    }
}
【程序说明】
1行:将当前ServletJava类)放在myservlet包中;
25行:引入编写Servlet所需要的包;
813行:重载HttpServlet 类中的doGet方法,实现Servlet的功能;
4.编译该FirstServlet.javaFirstServlet.class,完成第一个Servlet的编写。
【课堂案例1显示了一个简单Servlet的基本结构。该Servlet处理的是GET请求,Servlet也可以很方便地处理POST请求。GET请求和POST请求的区别请读者参阅第4章。
编译Servlet之前,将Servlet所用到的的包(D:\Tomcat 6.0\lib\servlet-api.jar)添加到classpathIDE的搜索路径中;
Servlet程序编写以后,必须在Servlet容器中进行配置后,才能进行正常访问。在下一
节将会介绍Servlet的配置和调用。
课堂案例2—配置和调用Servlet
Servlet的配置一般通过一个配置文件(如l)来实现,不同的Web服务器上安装Servlet的具体细节可能不同,在Tomcat服务器下,Servlet应该放到应用程序的WEB-INF\classes目录下,而调用ServletURL是“http: //主机名/应用程序文件夹名/Servlet名”。同时大多数Web服务器还允许定义Servlet的别名,因此Servlet也可能以使用别名形式的URL调用。
案例学习目标:学习通过修改l文件配置Servlet以及调用Servlet的方法。
案例知识要点:l的修改、Servlet的部署、调用Servlet的方法。
案例完成步骤:
1.部署Servlet
FirstServlet.java编译成FirstServlet.class文件,连同包(myservlet)复制到对应目录的
WEB-INF/classes目录下(笔者目录为:d:\tomcat6.0\webapps\chap07\classes)。
2.修改l文件,如下所示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
……
    <servlet>
        <servlet-name>First</servlet-name>
        <display-name>First</display-name>
        <description>The First Servlet</description>
        <servlet-class>myservlet.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>First</servlet-name>
        <url-pattern>/First</url-pattern>
    </servlet-mapping>
……
【程序说明】
38行:完成对Servlet的名称(name)和Servlet类(class)之间的匹配,本例将名称为FirstServlet匹配到myservlet包中的FirstServlet类;
912行:完成了Servlet的映射,即如果在浏览器地址栏中出现了/First的内容,则映射成名称(name)为FirstServlet
3.启动Tomcat服务器后,在IE的地址栏中输入localhost:8080/chap07/First
运行结果如图13-1所示。
13-1 FirstServlet运行结果
java修改html文件● Servlet修改以后,重新启动服务器可以查看修改以后的结果;
也可以对l进行一些简单的修改后保存(改变文件的时间),这样可以不需要重新启动服务器。因为Servlet运行时会检查l文件是否进行了修改。
课堂案例3—应用Servlet读取指定HTML表单数据
案例学习目标:学习Servlet读取指定HTML表单数据的基本方法。
案例知识要点:HTML页面中指定表单元素名称、Servlet根据名称读取表单元素、Servlet把读取的两个表单元素的值以HTML列表的形式输出
案例完成步骤:
1.打开webapps文件夹中保存第7章程序文件的文件夹chap07
2.编写用户登录的HTML文件login.htm(详见chap07\login.htm)。
在创建表单的语句中指定由Login(步骤3创建的Servlet)进行处理。
<form name="form1"  method="post" action="Login" onSubmit="return check()" >
3.编写读取login.htm表单中输入的用户名和密码的Servlet文件LoginServlet.java
【程序代码】LoginServlet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package myservlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet
{
    public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
    {
        res.setContentType("text/html");
        PrintWriter Writer();
        out.println("<html>");
        out.println("<head><title>Read the Parameter</title></head>");
        out.println("<body>");
        out.println("<h3>Your input:</h3>");
        out.println("<LI>UserName:"+Parameter("NAME"));
        out.println("<LI>Password:"+Parameter("PWD"));
        out.println("</body></html>");
    }
}
【程序说明】
24行:引入相关包;
718行:重载doGet方法;
15行:设置响应的内容类型(这里为text/html),类似于page指令中的ContentType属性;
10行:应用Writer()构造输出对象out
15行:应用Parameter("NAME")方法读取名称为“NAME”表单对象的值;
16行:应用Parameter("PWD")方法读取名称为“PWD”表单对象的值。
4.编译并部署LoginServlet
5.配置l文件。
l文件中添加以下内容:
  <servlet>
        <servlet-name>Login</servlet-name>
        <display-name>Login</display-name>
        <description>Login Servlet</description>
        <servlet-class>myservlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
    </servlet-mapping>   
5.启动Tomcat服务器后,在IE的地址栏中输入localhost:8080/chap07/login.htm后,输入用户名为liujin,密码为liujin,如图13-2所示。单击【提交】按钮后,运行结果如图13-3所示。
13-2 login.htm运行结果
13-3 LoginServlet运行结果
如果在运行Servlet时出现以下错误:“HTTP Status 405 - HTTP method POST is not supported by this URL”,请首先检查Servlet中的方法(doGet/doPost)是否与数据提交的方法一致。然后再检查l文件是否书写正确;
Servlet也通过标准输入读取POST数据,即在HttpServletRequest上调用getReader或者getInputStream,这种方法适合于上载文件,或者POST数据是通过专门的客户程序而不是HTML表单发送的情况。 并且如果用这种方法读取POST数据时,不能再用getParameter来读取这些数据。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。