java程序设计与j2ee中间件技术/软件开发技术(III)-实验四-编写简单的jsp页面

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: java程序设计与j2ee中间件技术/软件开发技术(III)-实验四-编写简单的jsp页面

题目1

1 题目说明

1.编写三个JSP页面login.jsp、validate.jsp和success.jsp。login.jsp输入用户名和密码,并提交给validate.jsp进行用户验证,如果正确(这里是静态数据)则转到success.jsp,否则回到login.jsp。

2 实验设计

题目1工程结构:有三个jsp页面,分别为login.jsp,success.jsp和validate.jsp。在login.jsp页面有提交按钮,将表单提交给validate.jsp进行验证,由validate.jsp写死的用户名和密码数据对login.jsp提交出的用户名和密码进行验证。success.jsp页面在登录成功后弹出。

3 运行界面截图与说明

题目1运行结果:正确地创建了login.jsp页面,并提示用户输入用户名、密码,在输入完成后点击提交。

点击“提交”后,正确地进入了validate.jsp页面。在validate.jsp页面中,写死了用户名“zombotany”,密码为“zombotany”。若在login.jsp页面输入的用户名与密码与其完全一致,则输出“账号密码正确!为你转入成功页面”,3秒后打开success.jsp。

打开success.jsp,提示“登录成功”。

点击“提交”后,若账号密码输错,则validate.jsp提示“账号密码错误”,并在3秒后退回login.jsp。

4 代码

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login.jsp</title>
</head>
<body>
  <form action="validate.jsp">
    用户名:<input type="text" name="name"><br>
    密&nbsp&nbsp&nbsp&nbsp码:<input type="password" name="password">
    <br>
    <br>
    <input type="submit"></input>
  </form>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>success.jsp</title>
</head>
<body>
登录成功!
</body>
</html>

validate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>validate.jsp</title>
</head>
<%!
  String myName="zombotany";
  String myPassword="zombotany";
%>
<body>
  这是判断登录页面<br>
  <%
  String name=request.getParameter("name");
  String password=request.getParameter("password");
  if (name.equals(myName)&&password.equals(myPassword)){
    out.println("账号密码正确!为你转入成功页面");
    response.setHeader("refresh","3;url=success.jsp");
  }
  else{
    out.println("账号密码错误!跳回登录页面");
    response.setHeader("refresh","3;url=login.jsp");
  }
  %>
</body>
</html>

题目2

1 题目说明

编写两个JSP页面,在第一个页面上输入两个操作数和一个操作符,在第二个页面上显示运算结果(只要实现加减乘除),如果输入不是数字提示重新输入。图如下。

2 实验设计

题目2工程结构:启动时运行main.jsp进行测试。main.jsp页面效果即为题目说明中的图6。cal.jsp负责对输入的数据进行判断与计算,并输出提示语句或计算结果。

3 运行界面截图与说明

该页面效果与题目说明中的图6是一致的,但图6为IE6等低版本浏览器中的效果,图8为chrome浏览器中的效果。有两个输入框可以输入两个操作数,中间可以选择运算符号。在输入后可以点击“计算”。

若输入为空,点击“计算”按钮后,系统会提示“输入不能为空!”,并跳转回输入页面。

若输入的不是数字,点击“计算”按钮后,系统会提示“输入错误!”,并跳转回输入页面。

若输入的数据正确,点击“计算”按钮后,系统会正确地计算运行结果。

4 代码

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>main.jsp</title>
</head>
<body>
  <font size="40">计算器</font><br>
  <form action="cal.jsp">
    <input type="text" name="num1">
    <select name="op" >
      <option value="+">+
      <option value="-">-
      <option value="*">*
      <option value="/">/
    </select>
    <input type="text" name="num2">
    <br>
    <input type="submit" value="计算">
  </form>
</body>
</html>

cal.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<%@page import="java.util.*"%>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
  String str1=new String(request.getParameter("num1"));
  String str2=new String(request.getParameter("num2"));
  if (!str1.isEmpty() && !str2.isEmpty()){
    Scanner sc1=new Scanner(str1);
    Scanner sc2=new Scanner(str2);
    if (sc1.hasNextDouble()&&sc2.hasNextDouble()){
      char op=request.getParameter("op").charAt(0);
      double num1=sc1.nextDouble();
      double num2=sc2.nextDouble();
      switch (op){
        case '+':out.println(num1+num2);break;
        case '-':out.println(num1-num2);break;
        case '*':out.println(num1*num2);break;
        case '/':out.println(num1/num2);break;
        default:break;
      }
    }
    else{
      out.println("输入错误!跳转回输入页面");
      response.setHeader("refresh","3;url=main.jsp");
    }
    sc1.close();
    sc2.close();
  }
  else{
    out.println("输入不能为空!");
    response.setHeader("refresh","3;url=main.jsp");
  }
  %>
</body>
</html>


目录
相关文章
|
10天前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
119 1
|
10天前
|
安全 Cloud Native Java
Java 模块化系统(JPMS)技术详解与实践指南
本文档全面介绍 Java 平台模块系统(JPMS)的核心概念、架构设计和实践应用。作为 Java 9 引入的最重要特性之一,JPMS 为 Java 应用程序提供了强大的模块化支持,解决了长期存在的 JAR 地狱问题,并改善了应用的安全性和可维护性。本文将深入探讨模块声明、模块路径、访问控制、服务绑定等核心机制,帮助开发者构建更加健壮和可维护的 Java 应用。
72 0
|
16天前
|
监控 Cloud Native Java
Quarkus 云原生Java框架技术详解与实践指南
本文档全面介绍 Quarkus 框架的核心概念、架构特性和实践应用。作为新一代的云原生 Java 框架,Quarkus 旨在为 OpenJDK HotSpot 和 GraalVM 量身定制,显著提升 Java 在容器化环境中的运行效率。本文将深入探讨其响应式编程模型、原生编译能力、扩展机制以及与微服务架构的深度集成,帮助开发者构建高效、轻量的云原生应用。
113 44
|
30天前
|
Java 测试技术 API
2025 年 Java 开发者必知的最新技术实操指南全览
本指南涵盖Java 21+核心实操,详解虚拟线程、Spring Boot 3.3+GraalVM、Jakarta EE 10+MicroProfile 6微服务开发,并提供现代Java开发最佳实践,助力开发者高效构建高性能应用。
267 4
|
9天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
46 0
|
22天前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
55 16
|
1月前
|
缓存 并行计算 安全
关于Java多线程详解
本文深入讲解Java多线程编程,涵盖基础概念、线程创建与管理、同步机制、并发工具类、线程池、线程安全集合、实战案例及常见问题解决方案,助你掌握高性能并发编程技巧,应对多线程开发中的挑战。
|
1月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
2月前
|
Java API 调度
从阻塞到畅通:Java虚拟线程开启并发新纪元
从阻塞到畅通:Java虚拟线程开启并发新纪元
296 83

热门文章

最新文章