Servlet 快速开始 表单中文字段

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 快速开始 表单中文字段的更多相关文章
- PHP 表单 - 3(PHP 表单 - 必需字段)
PHP 表单 - 必需字段 本章节我们将介绍如何设置表单必需字段及错误信息. PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"名字", "E-m ...
- [Swift通天遁地]二、表格表单-(8)快速实现表单的输入验证
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- RookeyFrame Bug 表单管理 -> 查看表单 ->编辑字段页面 JS报错
表单管理 -> 查看表单 ->编辑字段页面 小bug onchange里面直接就是方法,修改:去掉外面的function(){},直接把方法体写在onchange里面就可以了. 后台方法: ...
- ajax和servlet交互,表单日历插件,表单验证,form.js
我的index.jsp <body> <a>点我获取数据</a> <table border=1px> <tr> <td>ID& ...
- JQuery插件使用之Validation 快速完成表单验证的几种方式
JQuery的Validation插件可以到http://plugins.jquery.com/上去下载.今天来分享一下,关于这个插件的使用. 简易使用 这第一种方式可谓是傻瓜式的使用,我们只需要按照 ...
- Spring MVC 3 表单中文提交post请求和get请求乱码问题的解决方法
在spring mvc 3.0 框架中,通过JSP页面.HTML页面以POST方式提交表单时,表单的参数传递到对应的servlet后会出现中文显示乱码的问题.解决办法可采用spring自带的过滤技术, ...
- java工作流系统jflow表单引擎字段扩展组件介绍
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器 装饰类图片 用于 ...
- Servlet作业2-将表单提交的商品信息输出到页面中
1,表单页面 shangpin.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...
- 【java学习】Servlet简单的表单程序(一)
此文用于java学习,在此小记. 在此小Demo中使用到了Servlet,所以有必要了解一下Servlet的相关知识.(Servlet的相关知识摘抄自http://blog.csdn.net/jiuq ...
随机推荐
- [ZJOI2016]小星星&[SHOI2016]黑暗前的幻想乡(容斥)
这两道题思路比较像,所以把他们放到一块. [ZJOI2016]小星星 题目描述 小Y是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有n颗小星星,用m条彩色的细线串了起来,每条细线连着两颗小星星. ...
- 各种“地”—— 各种“GND”
GND,指的是电线接地端的简写.代表地线或0线. 电路图上和电路板上的GND(Ground)代表地线或0线.GND就是公共端的意思,也可以说是地,但这个地并不是真正意义上的地.是出于应用而假设的一个地 ...
- poj 3186 Treats for the Cows(dp)
Description FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for gi ...
- 临时处理小记:把Numpy的narray二进制文件转换成json文件
临时处理一个Numpy的二进制文件,分析知道里面是dict类型,简单小记一下,如果Numpy和Python基础不熟悉可以看我之前写的文章 In [1]: %%time import numpy as ...
- [BJOI2017]开车
[BJOI2017]开车 直接做要用栈 修改?难以直接维护 统计边的贡献! len*abs(pre)pre表示前缀car-stop 修改时候,整个区间的pre+1或者-1 分块,块内对pre排序并打标 ...
- Django反正解析路由
首先要了解为什么要定义反响解析 因为随着功能的增加会出先非常多的视图和对应的路由,有可能项目的一些需要一些模板需要重写路由,或之前配置的正则表达式不够准确,于是就要修改正则表达式,但是路由或正则表达式 ...
- Django session相关操作
Django session 是存储在数据库中的所以要先跟数据库建立连接 本连接有Django跟数据库建立连接的操作:https://www.cnblogs.com/Niuxingyu/p/10296 ...
- Python基础-元组、列表、字典
元组tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组.例:(1,2,3)("a","b","c&q ...
- Sublime text 3支持utf-8
首先安装插件ConvertToUTF8和Codecs33 Sublime Text 3中文乱码问题解决(最新) 然后配置一些有用的用户设置 2. 使文档保存时自动存为 UTF-8 编码格式 默认情况下 ...
- Go语言(IDEA下+Eclipse下)Hello World
第一步,去下载Go环境 然后安装即可. IDEA 先安装GO插件: ..点击Browse... ..搜索GO ..点击安装,安装完之后重启 ..重启完之后,New~(IDEA已经自动识别出系统中安装的 ...