JSP实验三(1)request对象的使用
文章目录
一、注册页面(练习html语法)
1 zhuce.html
html>
<head>
<meta charset="utf-8">
</head>
<form name="form1" method="POST" action="zhuce.jsp">
用户名:<input type="text" name="username" size="20"><br>
密码: <input type="password" name="mypass" size="20"><br>
确认密码: <input type="password" name="mypass2" size="20"><br>
生日:<input type="text" name="birthday" size="20"><br>
身高:<input type="text" name="height" size="20"><br>
E_mail:<input type="text" name="e_mail" size="20"><br>
请选择你的职业:
<input type="radio" value="工人" checked name="myrad">工人
<input type="radio" name="myrad" value="农民">农民
<input type="radio" name="myrad" value="军人">军人
<input type="radio" name="myrad" value="学生">学生<p>
请选择你的籍贯:
<select size="1" name="mymenu">
<option selected>大连</option>
<option>沈阳</option>
<option>鞍山</option>
<option>锦州</option>
</select><br>
请选择你的爱好:
<input type="checkbox" name="mybox" value="音乐">音乐
<input type="checkbox" name="mybox" value="旅游">旅游
<input type="checkbox" name="mybox" value="读书">读书<br>
请输入你的留言:
<textarea rows="2" name="myarea" cols="30"></textarea><br>
<input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2">
</form>
</html>
用户名:<input type="text" name="username" size="20"><br>
普通的输入文本框
密码: <input type="password" name="mypass" size="20"><br>
文本框会被加密看不到
<input type="radio" value="工人" checked name="myrad">工人
<input type="radio" name="myrad" value="农民">农民
<input type="radio" name="myrad" value="军人">军人
<input type="radio" name="myrad" value="学生">学生<p>
这是一个平铺式选择文本框
<select size="1" name="mymenu">
<option selected>大连</option>
<option>沈阳</option>
<option>鞍山</option>
<option>锦州</option>
</select><br>
这是下拉式的选择文本框
<input type="checkbox" name="mybox" value="音乐">音乐
<input type="checkbox" name="mybox" value="旅游">旅游
<input type="checkbox" name="mybox" value="读书">读书<br>
多选框
<textarea rows="2" name="myarea" cols="30"></textarea><br>
<input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2">
大型文本框,常用作留言板
2 zhece.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/10/29
Time: 20:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<% request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<title>Title</title>
</head>
<body>
你的名字是:<%=request.getParameter("username")%><br>
你的密码是:<%=request.getParameter("mypass")%><br>
你的生日:<%=request.getParameter("birthday")%><br>
你的身高:<%=request.getParameter("height")%><br>
你的E-mail:<%=request.getParameter("e_mail")%><br>
你的职业是:<%=request.getParameter("myrad")%><br>
你的爱好是:
<%
String mybox[]=request.getParameterValues("mybox");
if(mybox!=null)
{
for(int i=0;i<mybox.length;i++)
{
out.println(mybox[i]);
if(i!=mybox.length-1)
out.println("+");
}
}
%>
<br>
你的留言是:<%=request.getParameter("myarea")%><br>
你的籍贯是:<%=request.getParameter("mymenu")%>
</body>
</html>
通过request对象获取相应的值
3 效果展示
二、request对象实验
1.实验要求及目的
1.本实验的目的是掌握怎样在JSP中使用内置对象request。
2.实验内容
编写一个JSP页面inputNumber.jsp该页面提供一个表单,用户可以通过表单输入两个数和四则运算符号提交给该页面。用户提交表单后,JSP页面将计算任务交给一个Tag文件Computer.tag去完成。
2.inputNumber.jsp的具体要求
inputNumber.jsp页面提供一个表单,要求表单中提供两个text输入框,供用户输入数字;提供一个select下拉列表,该下拉列表有加、减、乘、除四个选项,供用户选择运算符号。用户在表单中输入的数字、选择运算符号提交给inputNumber.jsp页面。inputNumber.jsp使用Tag标记调用Tag文件Computer.tag,并将表单提交的数字和运算符号传递给Computer.tag。
3.Computer.tag的具体要求
要求Computer.tag使用attribute指令得到JSP页面传递过来的值,使用variable指令将计算结果,并将计算结果返回给JSP页面。
4.效果实例
2.实验代码
1 inputnumber.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/10/29
Time: 20:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib tagdir="/WEB-INF/tags/" prefix="cal" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<p>输入运算数、选择运算符</p>
<form>
<input type="text" name="sideA" />
<select name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="sideB" /><br>
<input type="submit" value="请提交你的选择"/></form>
<%
String a = request.getParameter("sideA");
String b = request.getParameter("sideB");
String c = request.getParameter("op");
%>
<cal:computer a="<%= a%>" b="<%= b%>" op="<%= c%>"/>
<br>计算结果为<%=result%>
</body>
</html>
2 computer.tag
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ attribute name="a" required="true"%>
<%@ attribute name="b" required="true"%>
<%@ attribute name="op" required="true"%>
<%@ variable name-given="result" variable-class="java.lang.Double" scope="AT_END" %>
<% try {
double c= Double.parseDouble(a);
double d = Double.parseDouble(b);
double result = 0;
switch(op){
case "+":
result = c+d;
break;
case "-":
result = c-d;
break;
case "*":
result = c*d;
break;
case "/":
result = c/d;
break;
default:
break;
}
jspContext.setAttribute("result", result);}
catch (Exception e){
jspContext.setAttribute("result", 0.0);
}
%>
3 实际效果实例
总结
做实验时遇到了一个很傻逼的错误折腾半天
catch (Exception e){
jspContext.setAttribute(“result”, 0.0);
}
我设置的result为double类型,但我后面写的是0,是个整数型
一直不知道哪错了,这数据类型的不匹配,真是个不该犯的小错误