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对 ...
随机推荐
- 分页查询:使用分页类查询 用get传值
<body> <?php $cx = ""; if(!empty($_GET["cx"])) //判断get传过来的值非空,那么把传过来的值赋 ...
- MFC函数之BitBlt
MFC函数之BitBlt // Cgame123View 绘制 void Cgame123View::OnDraw(CDC* pDC) { Cgame123Doc* pDoc = GetDocumen ...
- linq查询结果指定列的两种方式
方式一: var results = from product in products orderby product.Price descending select new { product.Na ...
- Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)
Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this- ...
- MongoDB的find用法
0.查询符合条件数据的总条数 如:db.list名.find({条件}).count(); 1.返回指定的键值:db.list.find({条件},{name:"任意值",age: ...
- 三星的中低端机使用AsyncTask的问题
三星的中低端机上在子线程中使用AsyncTask会报 01-15 23:46:20.165: W/dalvikvm(7259): Exception Ljava/lang/RuntimeExcepti ...
- 集合类(Objective-C & Swift)
内容提要: 本文前两部分讲了Cocoa的集合类和Swift的集合类,其中Cocoa提供的集合类包括NSArray.NSMutableArray.NSDictionary.NSMutableDictio ...
- 如何方便的控制css3动画开始时间点与持续时间
一般我们在控制css3 animate动画时可以通过简写以减少代码量,只要在需要动画的元素上追加一下类名就可以了,如下例子 /*淡入并向上移动一点位置出现*/ .fadeInUp{ -webkit-a ...
- 去除undefined和末尾逗号及把字符串数字转成数字数组的方法
function removeundefined(str){ var v=new Array(),b=""; var tmp=fil(str); for(var i=0;i ...
- android studio配置AndroidAnnotations
现在很多人都使用Android studio开发工具代替eclipse了,当然的 在eclipse使用的好的一些开发框架也会对应的在android studio上面使用. 参考文档:http://bl ...