首页 > 编程语言 >Javaweb 实验6 JSP内置对象

Javaweb 实验6 JSP内置对象

时间:2024-10-30 16:17:30浏览次数:7  
标签:内置 Javaweb 登录 用户 jsp JSP c1 页面

我发现了有些人喜欢静静看博客不聊天呐,

但是ta会点赞。

这样的人呢帅气低调有内涵,

美丽大方很优雅。

说的就是你,

不用再怀疑哦

目的:

  1. 掌握JSP内置对象的使用。
  2. 理解JSP的作用域
  3. 掌握JSP的表达式使用

实验要求:

  1. 完成实验题目
  2. 要求提交实验报告,将代码和实验结果页面截图放入报告中

第一题登录页面

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页面太多不好开发

第二题老师答案:

标签:内置,Javaweb,登录,用户,jsp,JSP,c1,页面
From: https://blog.csdn.net/CH3CH2CH4/article/details/143367259

相关文章

  • 【GiraKoo】C++编译中常用的内置宏
    开源项目:https://girakoo.com/联系方式:[email protected]简介针对不同的平台,很多头文件,函数名称,类型占用空间不一致。为了保证跨平台可编译,经常需要在项目中使用宏进行区分系统宏操作系统可使用的宏Windows32位_WIN32Windows64位_WIN32;_WIN64Linux__linu......
  • JavaScript基础知识——黑马JavaWeb学习笔记
    JavaScript基础JavaScript:跨平台、面向对象的脚本语言(脚本语言:不需要编译,浏览器解释完直接运行)作用:控制网页行为,使网页可交互ps:JavaScript与Java是两门完全不同的语言本文为学习黑马程序员JavaWeb开发教程中JS部分学习笔记文章目录JavaScript基础一、JS引入方式1.......
  • 手写fft算法,和内置fft算法对比
    好的,下面我将提供一个完整的Python示例,包括手写FFT算法(快速傅里叶变换)和使用NumPy的内置FFT算法,然后对比两者的结果并绘制图形。1.手写FFT算法我们将实现一个简单的FFT算法,即Cooley-Tukey算法,这是一种最常用的FFT算法。2.NumPy内置FFT算法NumPy库提供了一个非常高效的FFT实......
  • 实验三 JSP内置对象使用
    1.完整代码下载:实验三代码2.完整代码下载:实验四代码2.导入代码到eclipse运行【如何处理导入后的报错】......
  • javaweb基于JSP+Servlet开发小区物业管理系统源码 毕业设计 课程设计
    作品编号:1114数据库:mysql后端技术:Servlet......
  • javaweb基于SSH开发简单的新闻文章管理系统源码(前台+后台) 课程设计 大作业
    作品编号:1113数据库:mysql后端技术:SSH......
  • 【JavaWeb】ELK介绍
    1.ELK简介ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana,它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。Elasticsearch是个开源分......
  • 【含文档】基于ssm+jsp的电子产品交易系统(含源码+数据库+lw)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:apachetomcat主要技术:Java,Spring,SpringMvc,mybatis,mysql,vue2.视频演示地址3.功能系统定义了两个......
  • 基于ssm+jsp的电子病历系统(含源码+数据库)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:apachetomcat主要技术:Java,Spring,SpringMvc,mybatis,mysql,vue2.视频演示地址3.功能该系统包含多个......
  • 【漏洞复现】致远互联 FE协作办公平台 fillKP.jsp SQL注入漏洞
    免责声明:        本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严......