JSP数据交互习题错误总结
1:如果注册完页面有中文字符需要在提交后的页面显示注册信息,切记先把接受到的request的编码方式改为中文:request.setCharacterEncoding("utf-8");
不然会出现乱码
2:提交表单的时候,错误的把事件绑定到了submit按钮上了,应该绑定到表单标签,获取表单信息!
因为跳转后的页面需要显示上个注册页面的信息,用request.getParameter(String name);这个方法的作用是获取上个请求页面的所有提交的表单信息, 这个方法只能获取有name属性的标签值。 radio单选框最终选的是一个值,虽然性别选项的name值都是gender,但是我们最终获取的是一个选项,所以还可以用request.getParameter()方法。 checkbox复选框里因为可以选多个值所以要用request.getParameterValues()方法获取一个数组(复选框的所有name值要一致,复选框一定要设置value属性值要不然取到的值全是on,因为取不到框外的值,value和框外值要一致),然后遍历数组取值。
还有一个下拉框<select name="choice"><option>1</option> <option>1</option> <option>1</option></select>这里因为最终也是只取一个下拉框选项所以最终也只取一个值用request.getParameter(),但是option标签里没有name属性,不能乱加,只能在select标签里给一个name属性,取到选中值! 如:
MyEclipse创建的项目
***********************
1:index.jsp
*****************
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
function mycheck(){
var inputs=$("#year").val();
var reg=/^(19[5-9][0-9])|20[0-1][0-4]$/;
if(inputs==""){
alert("年份不能为空");
//$("#year").val(2014);
return false;
}
else if(!reg.test(inputs)){
//$("#year").val(2014);
alert("必须输入1950-2014之内的正整数");
return false;
}
return true;
}
$(function(){
$("#year").css("width","80px");
//年份正则表达式
$("#year").blur(function(){
mycheck();
})
$("#tijiao").submit(function(){
return mycheck();
})
//自动改变月份日分
$("#one").change(function(){
var $num=$("#one option:selected").text();
if($num==1|$num==3|$num==5|$num==7|$num==9|$num==10|$num==12){
var str="";
for(var i=1;i<=31;i++){
str+="<option>"+i+"</option>";
}
$("#two").html(str);
}else if($num=="请选择"){
$("#two").html("请选择");
}else if($num==2){
var sts="";
for(var i=1;i<=28;i++){
sts+="<option>"+i+"<option>";
}
$("#two").html(sts);
}else{
var strs="";
for(var i=1;i<=30;i++){
strs+="<option>"+i+"<option>";
}
$("#two").html(strs);
}
})
})
</script>
</head>
<body>
<form id="tijiao" action="welcome.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="txtname"/>只能输入字母或数字,4-16个字符</td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="txtpwd"/>密码长度6-12位</td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="txtrepwd"/></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="gender" value="男" checked="checked"/>男
<input type="radio" name="gender" value="女"/>女
</td>
</tr>
<tr>
<td>电子邮件地址:</td>
<td><input type="text" name="txtemail"/>输入正确的Email地址</td>
</tr>
<tr>
<td>出生日期:</td>
<td>
<input id="year" type="text" name="txtyear"/>年
<select name='month' id="one">
<option >请选择</option>
<%
for(int i=1;i<=12;i++){
out.print("<option id='+i+'>"+i+"</option>");
}
%>
</select>月
<select name="day" id="two">
<option>请选择</option>
</select>日
</td>
</tr>
<tr>
<td><input type="submit" id="txtagree" value="同意以下协议条款并提交"/></td>
<td><textarea rows="10" cols="30" >一、总则
速度加快萨拉宽带阿斯顿has机会打撒时间大时代阿斯顿阿大使馆的哈市国家打扫打扫打扫过的爱上大事大家</textarea></td>
</tr>
</table>
</form>
</body>
</html>
2.welcome.jsp
********************
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'welcome.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
欢迎观临,您的注册信息为:
<table>
<tr>
<td>用户名:</td>
<%request.setCharacterEncoding("utf-8"); %>
<td><%=request.getParameter("txtname") %></td>
</tr>
<tr>
<td>密码:</td>
<td><%=request.getParameter("txtpwd") %></td>
</tr>
<tr>
<td>性别:</td>
<td><%=request.getParameter("gender") %></td>
</tr>
<tr>
<td>电子邮件地址:</td>
<td><%=request.getParameter("txtemail") %></td>
</tr>
<tr>
<td>出生日期:</td>
<td><%=request.getParameter("txtyear")+"年"+request.getParameter("month")+"月"+request.getParameter("day")+"日"
%>
</td>
</tr>
</table>
</body>
</html>
JSP数据交互习题错误总结的更多相关文章
- JSP数据交互
JSP数据交互 一.jsp中java小脚本 1.<% java代码段%> 2.<% =java表达式%>不能有分号 3.<%!成员变量和函数声明%>二.注释 1 ...
- #学习笔记#JSP数据交互
#学习笔记#JSP数据交互 数据库的使用方式: 当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在 ...
- 《JSP数据交互总结》
1.1.1为什么需要动态网页 静态网页的内容是固定的,不能提供个性化和定制化的服务,因此,动态网页技术逐渐发展起来. 1.1.2什么是动态页面 动态网页是指在服务器端运行的使用程序语言设计的交互式网页 ...
- JSP/Servlet开发——第二章 JSP数据交互(一)
1. JSP内置对象:JSP内置对象是 Web 容器创建的一组对象: ●JSP常用的内置对象:out.request.application.session.response等: ●内置对象不需要 ...
- jsp数据交互(一).2
01.什么是JSP内置对象(jsp核心)? Java 内置对象 Java 作用域 解析:jsp内置对象是web容器创建的一组对象.我们都知道tomcat这款软件可以看成是一种web容器,所以我们可以 ...
- JSP———数据交互【1】
JSP的内置对象 不用声明就可以在JSP页面中使用 request对象 内置对象 request 封装了用户提交的信息,主要用于处理客户端请求 <FORM action="tom.js ...
- jsp数据交互(一),九大内置对象
九大内置对象 九大内置对象 内置对象 类型 说明 作用域 request javax.servlet.ServletRequest 请求对象——在 一次请求/一个Request请求周期 中传递数据,请 ...
- JSP数据交互——九大内置对象及其方法详解(一)
①既然说到JSP内置对象,那么什么是JSP内置对象呢? 解析:JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象. 如下代码片段: <% int[] value ...
- JSP/Servlet开发——第二章 JSP数据交互(二)
1. JSP 内置对象 application: ●application 对象类似于系统的 "全局变量", 用于同一个应用内的所有用户之问的数据共享: ●application对 ...
随机推荐
- Mysql 常用命令集
1.mysqlbinlog工具使用方法如下: 先使用 show binary logs 查看 在使用导出命令 mysqlbinlog -R -uroot -pxxxx -hxxx.xxx.xxx.xx ...
- Abstract Algebra chapter 7
7.7:Encrypt each of the following RSA messages x so that x is divided into blocks of integers of len ...
- Scrum 的相关概念
Scrum 的相关概念 4.1 Scrum 的起源 Scrum 是一种灵活的敏捷软件开发管理过程,这个名词来源于英式橄榄球.Scrum方法由Ken Schwaber和Jeff Sutherland ...
- 设计模式:策略模式(Strategy)
定 义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化, 不会影响到使用算法的客户. 示例:商场收银系统,实现正常收费.满300返100.打8折.......等不同收费 ...
- WPFFontCache_v0400.exe CPU使用率过高的问题
最近的电脑很慢 CPU超过50%了 任务管理器显示是WPFFontCache_v0400.exe 的问题 每次强制终止后不就又重新启动很是麻烦, 在MSDN中找到了解决办法: 禁用Windows Pr ...
- CS6破解
1) 序列号这里为大家生成了两个,可以通过软件验证:1325-0949-2080-9819-3777-32301325-0160-5283-9851-2671-8951 2) 破解补丁安装时会用到,请 ...
- MFC之常用控件(四)
常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组合框.图片控件.列表控件.树形控件和进度条控件等等.本节教程先来讲解静态文本框的使用. 控件的通知消息 在将静态文本框的使用之 ...
- android apk简单反编译
1. 查看或者提取资源文件: 使用谷歌官方工具apktool,命令行如下: apktool d xxx.apk xxx_decode d代表反编译,xxx.apk为你要反编译的apk,xxx_ ...
- java.lang.NoClassDefFoundError: Could not initialize class ......
在测试数据字典工具类的时候一直报这个错误,找了好久,原来是SpringContextUtils这个类没有放入到容器中. 但是我在SpringContextUtils上面加了注解的,为什么注解没有扫到呢 ...
- calc 的使用
通常情况下,一个元素节点使用固定定位absolute和固定定位fixed,会遇到一个问题,如果设置100% ,此时你在对他设置padding,border,margin,它就会撑满 具体情况如下图: