Servlet 范例程序

来源:互联网 发布:apache子目录无法访问 编辑:程序博客网 时间:2024/05/20 03:38
 

为了说明Servlet 和网页是如何沟通的,笔者在此举一个Sayhi 的范例程序。这个范例程序分
为两部分:Sayhi.html 和Sayhi.java。
在Sayhi.html 中,用户可以填入姓名,然后按下【提交】后,将数据传到Sayhi.java做处理,
而Sayhi.java 负责将接收到的数据显示到网页上。


Sayhi.html
<html>
<head>
<title>CH2 - Sayhi.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>
<body>
<h2>Servlet 范例程序</h2>
<form name="Sayhi" Method="Post" action="/JSPBook/CH2/Sayhi" >
<p>请访问者输入姓名:<input type="text" name="Name" size="30"></p>
<input type="submit" value="提交">
<input type="reset" value="清除">
</form>
</body>
</html>
Sayhi.html 的执行。


Sayhi.java
package tw.com.javaworld.CH2;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Sayhi extends HttpServlet {
//Initialize global variables
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
//Process the HTTP Get request
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("GB2312");
String Name = request.getParameter("Name");
out.println("<html>");
out.println("<head><title>CH2 - Sayhi</title></head>");
out.println("<body>");
out.println("Hi:"+Name);
out.println("</body>");
out.println("</html>");
out.close();
}
//Get Servlet information
public String getServletInfo() {
return "tw.com.javaworld.CH2.Sayhi Information";
}
public void destroy() {
}
}
从Sayhi.java的程序当中,可以发现Servlet是利用HttpServletRequest类的getParameter( )
方法来取得由网页传来的数据。不过数据通过HTTP协议传输时会被转码,因此在接收时,必须再做转
码的工作,才能够正确地接收到数据。下面这段程序是做转码的动作:
request.setCharacterEncoding("GB2312");


编译Sayhi.java 之后,再来设定web.xml:
<servlet>
<servlet-name>Sayhi</servlet-name>
<servlet-class>tw.com.javaworld.CH2.Sayhi</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Sayhi</servlet-name>
<url-pattern>/CH2/Sayhi</url-pattern>
</servlet-mapping>
执行http://localhost:8080/JSPBook/CH2/Sayhi

原创粉丝点击