Unit13- Servlet基础
课堂案例1—认识第一个Servlet
案例学习目标:学习Servlet的基本编写方法。
案例知识要点:Servlet的编写、Servlet的编译、Servlet的使用场合。
案例完成步骤:
1.在Tomcat的webapps文件夹中创建保存第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行:将当前Servlet(Java类)放在myservlet包中;
● 第2行—第5行:引入编写Servlet所需要的包;
● 第8行—第13行:重载HttpServlet 类中的doGet方法,实现Servlet的功能;
4.编译该FirstServlet.java为FirstServlet.class,完成第一个Servlet的编写。
【课堂案例1】显示了一个简单Servlet的基本结构。该Servlet处理的是GET请求,Servlet也可以很方便地处理POST请求。GET请求和POST请求的区别请读者参阅第4章。
● 编译Servlet之前,将Servlet所用到的的包(D:\Tomcat 6.0\lib\servlet-api.jar)添加到classpath或IDE的搜索路径中;
● Servlet程序编写以后,必须在Servlet容器中进行配置后,才能进行正常访问。在下一
节将会介绍Servlet的配置和调用。
课堂案例2—配置和调用Servlet
Servlet的配置一般通过一个配置文件(如l)来实现,不同的Web服务器上安装Servlet的具体细节可能不同,在Tomcat服务器下,Servlet应该放到应用程序的WEB-INF\classes目录下,而调用Servlet的URL是“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> …… |
【程序说明】
● 第3行—第8行:完成对Servlet的名称(name)和Servlet类(class)之间的匹配,本例将名称为First的Servlet匹配到myservlet包中的FirstServlet类;
● 第9行—第12行:完成了Servlet的映射,即如果在浏览器地址栏中出现了/First的内容,则映射成名称(name)为First的Servlet。
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>"); } } |
【程序说明】
● 第2行—第4行:引入相关包;
● 第7行—第18行:重载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小时内删除。
发表评论