HTML 与 Servlet 的简单交互

论坛 期权论坛 期权     
MCLzone   2019-6-10 03:47   1149   0
最近在学习 Java Web 开发相关的知识,写了一个小 demo 实现 HTML 与 Servlet 之间的简单交互。

在客户端输入以下字段(图1),点击“提交后”,会跳转到一个新页面,并显示刚刚输入的信息(图2)。



图1


图2

Servlet 代码:
  1. import java.io.*;
复制代码
  1. import java.util.Map;
复制代码
  1. import javax.servlet.*;
复制代码
  1. import javax.servlet.http.HttpServlet;
复制代码
  1. import javax.servlet.http.HttpServletRequest;
复制代码
  1. import javax.servlet.http.HttpServletResponse;
复制代码
  1. [/code][code]public class MyServlet extends HttpServlet {
复制代码
  1. [/code][code]    @Override
复制代码
  1.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
复制代码
  1.         Map m = req.getParameterMap();
复制代码
  1.         resp.setContentType("text/html;charset=gbk");  // 一定要注意这句代码的顺序,必须放在 PrintWriter 声明之前,否则没效果,中文会在浏览器上输出问号
复制代码
  1.         PrintWriter writeToClient = resp.getWriter();
复制代码
  1. [/code][code]        writeToClient.println("MCL" +
复制代码
  1.                 "");
复制代码
  1.         for (Map.Entry en : m.entrySet()){
复制代码
  1.             System.out.println(en.getKey());
复制代码
  1.             writeToClient.println("" + en.getKey() + "");
复制代码
  1.             for (int i = 0 ; i < en.getValue().length ; i++){
复制代码
  1.                 System.out.print(en.getValue()[i] + "  ");
复制代码
  1.                 writeToClient.println("" + en.getValue()[i]);
复制代码
  1.             }
复制代码
  1.             System.out.println();
复制代码
  1.         }
复制代码
  1.         writeToClient.println("");
复制代码
  1.     }
复制代码
  1. }
复制代码
这里获取客户端参数是用的 Map,还有几种其他的方式。

这里有一个要注意的地方就是,第 13 行与第 14 行的顺序不能颠倒,ContentType 的设置必须在 PrintWriter 的声明之前,否则设置无效,会导致中文显示出现问题(显示为问号)。



HTML 代码:
  1. [/code][code]
复制代码
  1. [/code][code]  
复制代码
  1.   mcl
复制代码
  1. [/code][code]
复制代码
  1.   
复制代码
  1.    
复制代码
  1.       
复制代码
  1.         
复制代码
  1.           Name
复制代码
  1.         
复制代码
  1.         
复制代码
  1.          
复制代码
  1.         
复制代码
  1.       
复制代码
  1.       
复制代码
  1.         
复制代码
  1.           Password
复制代码
  1.         
复制代码
  1.         
复制代码
  1.          
复制代码
  1.         
复制代码
  1.       
复制代码
  1.       
复制代码
  1.         
复制代码
  1.           Password Again
复制代码
  1.         
复制代码
  1.         
复制代码
  1.          
复制代码
  1.         
复制代码
  1.       
复制代码
  1.       
复制代码
  1.         
复制代码
  1.         
复制代码
  1.          
复制代码
  1.         
复制代码
  1.       
复制代码
  1.    
复制代码
  1.   
复制代码
  1. [/code][code]
复制代码
指定 action 对应的 Servlet,指定 method。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP