JSP相关题目练习

一、前置知识

【eclipse/IDEA】如何在IDE里创建一个Java Web项目?

1. 实现Bean类的User实例

以一个实现Bean类User的实例。在Eclipse里调用Tomcat服务器运行。

Javabean是一种Java类, 通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。

(1)新建web项目

(2)src/main/java下新建一个package 叫demo,demo里新建一个class类叫User。User里创建一个User对象具有两个属性age和name,并且提供相应的get、set方法。

在这里插入图片描述

(3) 在webapp下新创建一个useBean.html文件,放入一个接收User信息的表单,注意:useBean.html中的参数必须和User中一致
在这里插入图片描述

(4)新建一个useBean.jsp。页面通过jsp:setPropetry标签设置实例user的属性,通过jsp:getPropetry标签获取实例user的属性。
在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<!DOCTYPE html>

<html>

<head>
<meta charset="ISO-8859-1">
<title>jsp:useBean</title>
</head>

<body>
<!-- 在session中创建demo.User实例 -->
<jsp:useBean id = "user" scope = "session" class = "demo.User"></jsp:useBean>

jsp:setProperty:<br>

<!-- 设置实例User的属性 -->
<jsp:setProperty name = "user" property = "*"/>

<!-- 获得实例User的name属性 -->
<jsp:getProperty name = "user" property = "name"/>
<br>

<!-- 获得实例User的name属性 -->
<jsp:getProperty name = "user" property = "name"/>
<br>
jsp:setProperty:<br>

<%= user.getName() %> <!-- 通过 user 实例的getter()方法获取name属性 -->
<br>

<%= user.getAge() %> <!-- 通过 user 实例的getter()方法获取age属性 -->
<br>

</body>

</html>

(5)访问http://localhost:8089/demo/useBean.html
useBean,html 输入界面
useBean.html处理结果信息

2. 一个注册页面

有这样一个简单的功能:
(1)用户进入某系统后,需要“登录”才能看到相关的信息
(2)用户可以选择“注册新用户”
(3)用户登录后可以进行“查看个人信息”“注销”等操作。
在这里只关注如何实现注册页面

<%@ 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%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>my JSP 'register.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">
<!-- keywords用来告诉搜索引擎你网页的关键字是什么。  -->
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">

<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" href="css/bootstrap-datetimepicker.min.css" />
<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>

</head>

<body>
	<h3>新用户注册</h3>
	<!-- 提交方式post -->
	<form action = "RegisterAction.jsp" method = "post">
	  <table>
	  	<tr>
	  		<td>用户名</td>
	  		<td><input type = "text" name = "username"/></td>
	  	</tr>

	  	<tr>
	  		<td>密码</td>
	  		<td><input type = "password" name = "password"/></td>	  	
	  	</tr>
	  	
	  	<tr>
	  		<td><input type = "submit" value = "提交"></td>
	  		<td><input type = "reset" value = "清空"></td>	  	
	  	</tr>

	  </table>
	</form>
</body>

</html>



在这里插入图片描述
在这里插入图片描述

  • 使用getContextPath()方法得到当前系统路径,赋值给字符串变量path,使用request.getScheme() 方法得到当前连接使用的协议,一般返回http,SSL返货https。使用request.getServerName()方法返回当前页面坐在的服务器名字,使用request.getServerPort()方法返回当前页面所在的服务器端口,组合起来赋值给字符串变量path。
  • 接着对页面进行缓存处理,并设置页面布局样式,最后对用户名和密码的标签,输入框、提交&清空按钮使用布局样式进行设置,
  • CSS是层叠样式表单(Cascading Style Sheet),是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言

参考资料
关于meta标签中的http-equiv属性使用介绍
最新web/java/jsp实现发送手机短信验证码和邮箱验证码的注册登录功能(详细)

3. 跨页传递数据

跨页传递:将一个页面的数据传递到另一个页面的情况
(1)新建web项目

(2)src/main/java下新建一个package 叫entity,entity里新建一个class类叫User。User里创建一个User对象具有两个属性username和gender,并且提供相应的get、set方法。

package entity;

public class User {

    private String username="";
    private String gender = "";

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public User() {

    }
	
}

(3)编写传递参数页面文件transferPara.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
<head>
<meta charset="ISO-8859-1">
<title>参数传递页</title>
</head>
<body>

<!-- JSP指向useBean的User类 -->
<jsp:useBean id="user" class = "entity.User" scope = "session"/>
<center>
	<h1>传参界面</h1>
</center>

<hr>

<%
	user.setUsername("小明");
	user.setGender("男");
%>

<center>
	点击我,<a href = "receive.jsp">跳转</a>
</center>


</body>
</html>

(4)接收参数页面文件receive.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
<head>
<meta charset="ISO-8859-1">
<title>接收页参数</title>
</head>
<body>
	<center>
		<h1>传参界面</h1>
		<hr>
		<!-- JSP指向useBean的User类 -->
		
		<jsp:useBean id = "user" class = "entity.User" scope = "session"></jsp:useBean>
		
		<p>使用JSP动作接收参数</p>
		
		<h4>
			性别:<jsp:getProperty property="username" name="user"/>
			<br>
			密码:<jsp:getProperty property="gender" name="user"/>
		</h4>
		<hr>
		<p>使用JSP普通方式接收参数</p>
		<h4>
			性别:<%=user.getUsername() %><br>
			密码:<%= user.getGender() %><br>
		</h4>
	</center>
	
</body>
</html>

(5)运行
传参页面
接收参数
(6)项目结构
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/623982.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ai电销机器人智能系统的应用场景包括什么?

随着科技的不断进步&#xff0c;传统的销售方式已经无法满足现代企业的需求&#xff0c;电销机器人智能系统可以在各种场景中发挥作用&#xff0c;其中一些主要的应用场景包括&#xff1a; 客户服务与支持&#xff1a;通过语音识别和自然语言处理技术&#xff0c;电销机器人可以…

812寸硅片为什么没有平边(flat)?

知识星球&#xff08;星球名&#xff1a;芯片制造与封测社区&#xff0c;星球号&#xff1a;63559049&#xff09;里的学员问&#xff1a;上期种说2&#xff0c;4&#xff0c;6寸硅片都有平边&#xff0c;那为什么8&12寸硅片只有一个notch&#xff1f;为什么不能像小尺寸晶…

汇编语言程序设计-2-访问寄存器和内存

2. 访问寄存器和内存 文章目录 2. 访问寄存器和内存2.0 导学2.1 寄存器及数据存储2.2 mov和add指令2.3 确定物理地址的方法2.4 内存的分段表示法2.5 Debug的使用2.6 【代码段】CS、IP与代码段2.7 【代码段】jmp指令2.8 【数据段】内存中字的存储2.9 【数据段】用DS和[address]实…

Transformers中加载预训练模型的过程剖析(一)

使用HuggingFace的Transformers库加载预训练模型来处理下游深度学习任务很是方便,然而加载预训练模型的方法多种多样且过程比较隐蔽,这在一定程度上会给人带来困惑。因此,本篇文章主要讲一下使用不同方法加载本地预训练模型的区别、加载预训练模型及其配置的过程,藉此做个记…

ARM64汇编09 - 分支指令与模式切换

本文主要讨论两部分内容&#xff1a; 分支指令&#xff0c;B、BL 等 v7中的模式切换&#xff0c;arm切thumb&#xff0c;thumb切arm。理解了模式切换就会明白为什么在做 inline hook 时&#xff0c;有些地址需要加上1&#xff0c;加上 1 的作用是什么。 B B指令是无条件跳转…

linux phpstudy 重启命令

[rootLinuxWeb phpstudy]# ./system/phpstudyctl restart 查看命令 1) phpstudy -start 启动小皮面板 2) phpstudy -stop 停止小皮面板 3) phpstudy -restart 重启小皮面板 4) phpstudy -status 查询面板状态 5) phpstudy -in…

中北大学软件学院javaweb实验三JSP+JDBC综合实训(一)__数据库记录的增加、查询

目录 1.实验名称2.实验目的3.实验内容4.实验原理或流程图5.实验过程或源代码&#xff08;一&#xff09;编程实现用户的登录与注册功能【步骤1】建立数据库db_news2024和用户表(笔者使用的数据库软件是navicat)【步骤2】实现用户注册登录功能(与上一实验报告不同的是&#xff0…

windows下redis配置为服务自启动

1. 准备安装包 2. 解压该zip到文件夹 3. 配置环境变量 4. 配置自启动 4.1 检查redis.windows.conf和 redis.windows-service.conf 文件&#xff0c;将bind注释掉 4.2 [cmd]窗口运行redis 输入 redis-server.exe 或者 redis-server.exe redis.windows.conf 4.3 验证redis是否…

外卖订餐总后台系统原型

页面数量&#xff1a;共 210 页 源文件格式&#xff1a;rp格式&#xff0c;兼容 Axure RP 9/10 应用领域&#xff1a;O2O领域、网上订餐、外卖行业 文章展示不够全面&#xff0c;如有兴趣请联系作者 该原型作品为外卖订餐总后台管理系统&#xff0c;定位偏向美团外卖与饿了么一…

力扣HOT100 - 45. 跳跃游戏 II

解题思路&#xff1a; 贪心 class Solution {public int jump(int[] nums) {int end 0;int maxPosition 0;int steps 0;for (int i 0; i < nums.length - 1; i) {maxPosition Math.max(maxPosition, i nums[i]);if (i end) {end maxPosition;steps;}}return steps;…

[FlareOn1]Bob Doge

[FlareOn1]Bob Doge Hint:本题解出相应字符串后请用flag{}包裹&#xff0c;形如&#xff1a;flag{123456flare-on.com} 得到的 flag 请包上 flag{} 提交。 密码&#xff1a;malware 没什么思路&#xff0c;原exe文件运行又install了一个challenge1.exe文件 c#写的&#xff…

MySQL————创建存储过程函数 有参数传递

存储过程使用大纲 有参数传递 delimiter $$ 声明一个名称为get_student_introduce CREATE PROCEDURE gei_student_introduce(in p_name VARCHAR(20)) 开始操作 BEGIN 撰写真正在操作DMLDQL都行 select introduce 简介 from student WHERE userNamep_name; end $$ delimite…

地下车库导航地图怎么做?停车场地图绘制软件哪个好?

上海懒图科技以先进技术和丰富的行业服务经验为用户提供停车场景下的全流程服务平台&#xff0c;用户基于平台可自主快速绘制酷炫的停车场地图&#xff0c;通过提供完善的停车场应用功能集和扩展API服务包&#xff0c;可以方便地实现电子地图服务于您的各类停车场应用中&#x…

CRMEB开源打通版/标准版v4电商商城系统小程序发布之后无法生成海报问题

小程序产品分销二维码生成不了 开发者工具可以生成海报&#xff0c;但是发布之后无法生成 1.在开发者工具中&#xff0c;将不校验合法域名关闭 2.点击生成海报&#xff0c;查看console3.将域名填写到微信公众平台小程序的download合法域名中 网址微信公众平台

用vue实现json模版编辑器

用vue实现json模版编辑器 控件区表单区配置项区 &#xff08;还没写&#xff09;业务逻辑 设想业务逻辑是拖拽控件生成表单 动手做了一个简单的demo 业务的原型图设想如下所示 其中使用的技术主要是vuedragger 控件区 做控件区的时候首先我们要有确定的配置项 其实也很简单 …

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第21课-购买烟花插件

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第21课-购买烟花插件 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

【antd + vue】Failed to resolve component: a-select-option

一、问题说明 1、出现情况&#xff1a; <a-select>嵌套<a-select-option>&#xff0c;其中<a-select-option>循环&#xff0c;能正常使用&#xff0c;但是控制台警告。 2、控制台警告&#xff1a; [Vue warn]: Failed to resolve component: a-select-op…

HTML满屏漂浮爱心

目录 写在前面 满屏爱心 代码分析 系列推荐 写在最后 写在前面 小编给大家准备了满屏漂浮爱心代码&#xff0c;一起来看看吧~ 满屏爱心 文件heart.svg <svg xmlns"http://www.w3.org/2000/svg" width"473.8px" height"408.6px" view…

AI与边缘设备,光子芯片,AI规划能力,自然语言驱动的AI游戏

1 Archetype AI 发布了一个创新的人工智能平台 —— Newton 这是一个专门为理解物理世界设计的基础模型。 Newton 设计用于连接实时物理数据&#xff0c;其数据源是全球数十亿传感器的输入&#xff0c;实现了对物理现实的直接解读。 利用从各种传感器&#xff08;如加速度计…

【声呐仿真】学习记录3-待续

【声呐仿真】学习记录3-后续 第五阶段-获取数据1.运行赫尔库勒斯沉船的世界&#xff1a;2.键盘操纵rov至合适的位置&#xff0c;调整Image topic&#xff0c;查看输出图像3.RVIZ SONAR 图像查看器插件&#xff08;没有对应的topic&#xff09;4.点云5.录制rosbag 第六阶段-查看…