req.getParameter | getParameterValue 一大特点是 返回null表示没有。

【web.xml】

<servlet>

<serlvlet-mapping>

应用程序级别共享初始化参数(servletContext.getInitParameter):<context-param>   配置数据库连接信息、电子邮件报警信息等等。

Servlet级别私有初始化参数(servletConfig.getInitParameter):<init-param>

【HelloServlet】

逻辑:req.getParameter可以拿到浏览器  =》请求参数,writer可以写回 =》 html页面

 public class HelloServlet extends HttpServlet{
private static final String DEFAULT_USER = "GUEST";
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String user = req.getParameter("user");//获取请求参数
if (user==null){
user = DEFAULT_USER;
}
resp.setContentType("text/html");//设置内容类型
resp.setCharacterEncoding("UTF-8");//设置编码 meta PrintWriter writer = resp.getWriter();
writer.append("<!DOCTYPE html>\r\n")
.append("<html>\r\n")
.append("<head>\r\n")
.append("<title>Hello User App</title>\r\n")
.append("</head>\r\n")
.append("<body>\r\n")
.append("Hello,").append(user).append("!<br/><br/>\r\n")
.append("<form action=\"greeting\" method=\"POST\">\r\n")
.append("Enter your name:<br/>\r\n")
.append("<input type=\"text\" name=\"user\" />\r\n")
.append("<input type=\"submit\" value=\"提交\" />\r\n")
.append("</form>\r\n")
.append("</body>\r\n")
.append("</html>\r\n");
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
} // @Override
// public void init() throws ServletException {
// System.out.println(this.getServletName()+"init方法");
// }
//
// @Override
// public void destroy() {
// System.out.println(this.getServletName()+"destory方法");
// }
}

【多值Servlet】

逻辑:doGet展示一个表单,doPost处理提交的表单。

 @WebServlet(name="multiValueServlet",urlPatterns = {"/selectFruits"})

 public class MultiValueServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
//展示一个表单
PrintWriter writer = resp.getWriter();
writer.append("<!DOCTYPE html>\r\n")
.append("<html>\r\n")
.append("<head>\r\n")
.append("<title>挑水果</title>\r\n")
.append("</head>\r\n")
.append("<body>\r\n")
.append("<h2>欢迎光临,本店!</h2><br/><br/>\r\n")
.append("<form action=\"\" method=\"POST\">\r\n")
.append("<label for=\"apple\">苹果</label>\r\n")
.append("<input type=\"checkbox\" id=\"apple\" name=\"fruits\" value=\"newapple\" />\r\n")
.append("<label for=\"pineapple\">梨</label>\r\n")
.append("<input type=\"checkbox\" id=\"pineapple\" name=\"fruits\" value=\"newpineapple\" />\r\n")
.append("<label for=\"banana\">香蕉</label>\r\n")
.append("<input type=\"checkbox\" id=\"banana\" name=\"fruits\" value=\"newbannana\" />\r\n")
.append("<input type=\"submit\" value=\"提交\" />\r\n")
.append("</form>\r\n")
.append("</body>\r\n")
.append("</html>\r\n"); } @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String[] fruits = req.getParameterValues("fruits");
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
PrintWriter writer = resp.getWriter();
if (fruits==null){
writer.println("欢迎下次光临");
// return;
}else {
writer.append("<!DOCTYPE html>\r\n")
.append("<html>\r\n")
.append("<head>\r\n")
.append("<meta charset=\"UTF-8\">\r\n")
.append("<title>欢迎随意挑选</title>\r\n")
.append("</head>\r\n")
.append("<body>\r\n"); for (String fruit:fruits){
writer.append(fruit);
System.out.println(fruit);
}
writer.append("</body>\r\n")
.append("</html>\r\n");
} }
}

【表单提交中文细节】

浏览器编码是ISO8859-1,可以用过滤器解决,暂时可以request直接设置编码UTF-8。

Servlet 快速开始 表单中文字段的更多相关文章

  1. PHP 表单 - 3(PHP 表单 - 必需字段)

    PHP 表单 - 必需字段 本章节我们将介绍如何设置表单必需字段及错误信息. PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"名字", "E-m ...

  2. [Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. RookeyFrame Bug 表单管理 -> 查看表单 ->编辑字段页面 JS报错

    表单管理 -> 查看表单 ->编辑字段页面 小bug onchange里面直接就是方法,修改:去掉外面的function(){},直接把方法体写在onchange里面就可以了. 后台方法: ...

  4. ajax和servlet交互,表单日历插件,表单验证,form.js

    我的index.jsp <body> <a>点我获取数据</a> <table border=1px> <tr> <td>ID& ...

  5. JQuery插件使用之Validation 快速完成表单验证的几种方式

    JQuery的Validation插件可以到http://plugins.jquery.com/上去下载.今天来分享一下,关于这个插件的使用. 简易使用 这第一种方式可谓是傻瓜式的使用,我们只需要按照 ...

  6. Spring MVC 3 表单中文提交post请求和get请求乱码问题的解决方法

    在spring mvc 3.0 框架中,通过JSP页面.HTML页面以POST方式提交表单时,表单的参数传递到对应的servlet后会出现中文显示乱码的问题.解决办法可采用spring自带的过滤技术, ...

  7. java工作流系统jflow表单引擎字段扩展组件介绍

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 装饰类图片 用于 ...

  8. Servlet作业2-将表单提交的商品信息输出到页面中

    1,表单页面 shangpin.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...

  9. 【java学习】Servlet简单的表单程序(一)

    此文用于java学习,在此小记. 在此小Demo中使用到了Servlet,所以有必要了解一下Servlet的相关知识.(Servlet的相关知识摘抄自http://blog.csdn.net/jiuq ...

随机推荐

  1. A1043. Is It a Binary Search Tree

    A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...

  2. [luogu3294][背单词]

    题目链接 题意 读完题目就一个感受:这出题人tm不会说人话吗.真的感觉这个题理解题意比想出正解更难. 其实题目的意思就是,给出一些单词,给这些单词编个号,然后要求其他的单词中是这个单词后缀的词都在这个 ...

  3. JAVA版本8u171与8u172的区别

    用了java 7好几年了,今天闲来无事,想升级到 java 8,到官网下载的时候发现JAVA放出了8u171与8u172两个版本. 什么情况? 百度一下找到答案:https://blog.csdn.n ...

  4. 第五篇 - Selenium突破反爬获取qq邮件标题

    from selenium import webdriver from selenium.webdriver import ActionChains #1.打开登陆页面 wd = webdriver. ...

  5. 激活miniconda2环境,出现activate命令不存在的解决方案(activate: No such file or directory)

    miniconda2版本比较低时会出现这种报错,通过更新miniconda2就可以解决这个问题,用到的命令行: /path/to/miniconda2/conda update conda 参考链接: ...

  6. 苹果电脑自带python安装tensorflow一直有问题

    对于有些程序是不支持python3而支持python2的,为了在苹果电脑安装tensorflow, 首先sudo su到管理员权限 export TF_BINARY_URL=https://stora ...

  7. HDU 5965 扫雷

    扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔. 该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子可能处于己知和未知的状态.如果一个己知的格子中 ...

  8. 谈.Net委托与线程——创建无阻塞的异步调用(二)

    了解IAsyncResult 现在我们已经了解,EndInvoke可以给我们提供传出参数与更新后的ref参数:也可以向我们导出异步函数中的异常信息.例如,我们使用BeginInvoke调用了异步函数S ...

  9. jenkins配置小结

    启动jenkins:javaw -jar -Dhudson.model.DirectoryBrowserSupport.CSP= jenkins.war --httpPort=8001 wget  h ...

  10. KVM安装启动虚拟机

    KVM定制OpenStack云主机 如何定制化OpenStack云主机?从去年10月份刚开始接触OpenStack,到现在也有一年了.虽说目前只是停留在用它,对它的一些组件简单的了解,但谈到制作出一个 ...