我发现了有些人喜欢静静看博客不聊天呐,
但是ta会点赞。
这样的人呢帅气低调有内涵,
美丽大方很优雅。
说的就是你,
不用再怀疑哦
目的:
- 掌握JSP内置对象的使用。
- 理解JSP的作用域
- 掌握JSP的表达式使用
实验要求:
- 完成实验题目
- 要求提交实验报告,将代码和实验结果页面截图放入报告中
第一题登录页面
1、设计一个简单的后台管理系统,用户通过登陆页面的合法验证后才能使用其他页面,否则访问这些页面是跳转回登录页面。
1)要求设计用户类和用户账号的验证方法
2) “其他页面”可以编写任意内容,用户在未进行登陆验证时,该页面无法直接访问,直接访问该页面会导致跳转到登录页。
【参考代码】
Login.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="check.jsp" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required><br>
<input type="submit" value="登录">
</form>
</body>
</html>
Check.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login-check</title>
</head>
<body>
<%
// 账号admin 密码1111
if ( request.getParameter("username").equals("admin") &&
request.getParameter("password").equals("1111")) {
//重定向到success.jsp
application.setAttribute("username",request.getParameter("username"));
response.sendRedirect("success.jsp");
}
else {
//重定向到failure.jsp
response.sendRedirect("failure.jsp");
}
%>
</body>
</html>
Success.jsp:
<%@ page import="java.util.Objects" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>success</title>
</head>
<body>
<%
Object isUserLoggedIn = application.getAttribute("username");
if (isUserLoggedIn == null)
// 用户未登录,跳转到登录页
response.sendRedirect("login.jsp");
%>
<h1>登录成功!</h1>
</body>
</html>
Failure.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>failure</title>
</head>
<body>
<h1>登录失败!</h1>
</body>
</html>
【运行结果】
未登录进入success.jsp页面:跳转到login
第二题猜数字
3、编写一个猜数字的小游戏。当用户访问页面c1.jsp时,服务器随机分配给用户一个1~100的整数(Math.Random可以在[0.0,1.0]范围内产生随机数),然后将这个证书存在用户的session对象中。
用户单击超链接“去猜这个数”,将转到页面guess.jsp。在该页面中,如果猜测数大于机器生成的数,显示“您猜大了”和这是第几次猜测;如果猜小了,显示“您猜小了”和这是第几次猜测;如果相等,显示“您猜对了”和这是第几次猜测,同时下面显示一个超链接“重新获得随机数”,单击此链接返回c1.jsp页面重新开始猜数。
【参考代码】
c1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
<h1>猜数字的小游戏</h1>
<a href="guess.jsp">“去猜这个数”</a>
</body>
guess.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
随机分给了你一个1到100之间的数,请猜!
<%
int number=(int)(Math.random()*100)+1;
session.setAttribute("count", new Integer(0));
session.setAttribute("save", new Integer(number));
%>
输入你所需猜的数
<form action="Result.jsp" method="post" name=form>
<input type="text" name="boy">
<input type="submit" value="提交" name="submit">
</form>
</body>
Result.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
<%
String str=request.getParameter("boy");
if(str==null){
str="0"; //用于报错
}
int guessNumber=Integer.parseInt(str);
Integer integer=(Integer)session.getAttribute("save");
int realnumber=integer.intValue(); //答案
if(guessNumber==realnumber)
{
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count", new Integer(n));
response.sendRedirect("success2.jsp");
}
else if(guessNumber>realnumber){
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count", new Integer(n));
response.sendRedirect("large.jsp");
}
else if(guessNumber<realnumber)
{
int n=((Integer)session.getAttribute("count")).intValue();
n=n+1;
session.setAttribute("count", new Integer(n));
response.sendRedirect("small.jsp");
}
%>
</body>
Large.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
所猜的数比实际的大,请再猜:
<form action="Result.jsp" method="get" name=form>
<input type="text" name="boy">
<input type="submit" value="提交" name="submit">
</form>
<%
Integer integer=(Integer)session.getAttribute("save");
int realnumber=integer.intValue();
out.println("答案:" + realnumber);
%>
</body>
Small.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
所猜的数比实际的小,请再猜:
<form action="Result.jsp" method="post" name=form>
<input type="text" name="boy">
<input type="submit" value="提交" name="submit">
</form>
<%
Integer integer=(Integer)session.getAttribute("save");
int realnumber=integer.intValue();
out.println("答案:" + realnumber);
%>
</body>
Success2.jsp
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<body>
<%
int count=((Integer)session.getAttribute("count")).intValue();
int num=((Integer)session.getAttribute("save")).intValue();
%>
恭喜你,猜对了!
您共猜了<%=count%>次
这个数字就是<%=num %>
<a href="c1.jsp">单击此链接返回c1.jsp页面重新开始猜数</a>
</body>
【运行结果】
4、实验心得。
挺复杂的这次实验,主要是写出来之后bug多,而且jsp页面太多不好开发
第二题老师答案: