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. Vue--组件嵌套

    1.全局注册: 组件放到components文件夹内,建议组件名是什么行为的name名就是什么 main.js 引入组件:import Users from '组件位置' 注册全局组件:Vue.com ...

  2. bzoj4566 找相同字符

    题意:给定两个字符串,从中各取一个子串使之相同,有多少种取法.允许本质相同. 解:建立广义后缀自动机,对于每个串,分别统计cnt,之后每个点的cnt乘起来.记得开long long #include ...

  3. 逻辑回归 代价函数J关于系数theta求导

    J=-y*loga-(1-y)*log(1-a) 梯度下降,求dJ/d_theta_j

  4. 一个时间上的比较 if else

    if (w<b.w) ; if (w>b.w) ; if (w<b.w) ; else if (w>b.w) ; 对于任何情况,执行的次数都是一样.只是对于汇编的代码,第二个方 ...

  5. Day26--Python--包

    1. from xxxx import * 从xxx导入所有. 如果XXX模块内部有__all__ 导入all中的内容. 如果没有__all__全部都导入 __all__ = ["money ...

  6. 苹果电脑利用wget总是会出现无法建立 SSL 连接的问题

    在做迁徙学习的过程中,需要下载已经训练好的Inception_v3模型,首先我们为了将下载的模型保存到指定的地方,我们需要利用 wget -P 想要保存的目录 模型的网址,例如 wget -P /Vo ...

  7. Codeforces Round #523 (Div. 2) D. TV Shows

    传送门 https://www.cnblogs.com/violet-acmer/p/10005351.html 题意: 有n个节目,每个节目都有个开始时间和结束时间. 定义x,y分别为租电视需要的花 ...

  8. NOIP 普及组 2012 寻宝(思维???)

    传送门 https://www.cnblogs.com/violet-acmer/p/9937201.html 题解: 一开始用暴力查找下一个要去的房间,超时了,emmmmm....... 然后,就稍 ...

  9. windows远程桌面无法粘贴复制的问题解决方法

    这两天遇到一个困扰我很久的问题,每次通过winodws远程桌面,本地的数据无法通过复制粘贴到远程服务器上.现把我找到的解决方案记录下来分享给大家 一般出现问题可能性比较大的原因就是rdpclip.ex ...

  10. mysql ibdata1损坏

    机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...