JSP相关题目练习

news2025/3/2 2:29:59

一、前置知识

【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)项目结构
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis-Plus核心功能详解:条件构造器、自定义SQL与Service接口

在Java的Web开发中&#xff0c;MyBatis-Plus作为MyBatis的增强工具&#xff0c;提供了许多实用的功能&#xff0c;极大地简化了数据库操作的开发过程。下面&#xff0c;我们将详细探讨MyBatis-Plus的三大核心功能&#xff1a;条件构造器、自定义SQL以及Service接口。 一、条件…

用掼蛋的智慧优化图形化编程体验

周末的午后&#xff0c;阳光透过卧龙家庭院的树叶&#xff0c;在地上洒下一片斑驳的光影。微风轻拂&#xff0c;树叶沙沙作响&#xff0c;为这个宁静的庭院增添了一丝生机。 在庭院的一角&#xff0c;有一张专门用于掼蛋的桌子。桌子周围摆放着几把舒适的椅子&#xff0c;此时&…

Human Serum Albumin ELISA kit(人血清白蛋白HSA)

人血清白蛋白&#xff08;Human Serum Albumin, HSA&#xff09;是人体血液中的血清白蛋白。它约占血清蛋白的一半&#xff0c;由肝脏产生。白蛋白具有运输荷尔蒙、脂肪酸和其他化合物、缓冲pH值和维持血管压力等功能。人血清白蛋白是一种高水溶性球状单体血浆蛋白&#xff0c;…

[AWS] stepfunctions-local

本质是本地docker,只支持异步调用 run aws-stepfunctions-localdocker run -p 8083:8083 \ --mount type=bind,readonly,source=/path/MockConfigFile.json,destination=/home/StepFunctionsLocal/MockConfigFile.json \ -e SFN_MOCK_CONFIG="/home/StepFunctionsLocal/…

ranger 队列划分和权限管控方法

创建用户 创建用户ngk【KDE首页->租户管理->集群用户->添加用户】: 创建用户组ngk_group并绑定 ngk用户【KDE首页->租户管理->集群用户->添加用户组】: 创建角色,并绑定用户组 ngk_group 【KDE首页->租户管理->集群用户->添加角色】: 创建队列…

备忘录怎么改字体样式、字号和颜色?

在日常的工作和生活中&#xff0c;备忘录扮演着举足轻重的角色。每当灵感闪现&#xff0c;或是工作事项需要记录&#xff0c;我总是习惯性地打开我的备忘录&#xff0c;将这些宝贵的想法和任务一一记下 然而&#xff0c;随着使用频率的增加&#xff0c;我发现自己越来越渴望能…

PHP笔记

1. 搭建运行环境 1.1 挂载光盘 [rootredhat200 ~]# mount /dev/sr0 /mnt 1.2 配置仓库 # 查看仓库列表 [rootredhat200 ~]# dnf repolist# 进入到仓库目录 [rootredhat200 ~]# cd /etc/yum.repos.d/ # 编辑仓库文件 [rootredhat200 yum.repos.d]# vim base.repo # 查看仓库…

【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…

【电商API接口】网上商城接口/电商数据接口详情

比价接口背景&#xff1a;电商运营中&#xff0c;数据分析这项工作越来越重要&#xff0c;许多品牌方也越来越热衷去做电商数据分析。不过&#xff0c;全面的数据该如何获取呢&#xff0c;此时&#xff0c;电商数据接口的重要性便凸显出来了。 数据接口主要有以下特点&#xf…

GPT4o速测:约0.5秒延迟的多模态能力

文章目录 1. 测评2. IntroReference 没有剪辑&#xff0c;约0.5秒延迟的多模态能力。 1. 测评 推理速度异常快&#xff0c;比之前快了大概两三倍&#xff0c;对产品端来说是个很好的事情&#xff0c;想用gpt4级别性能终于可以少讨论几句时延影响用户体验了模型指令遵从能力变强…

哔哩哔哩直播通用榜单系统

榜单系统的定位和业务价值 榜单遍布B站直播相关业务的各个角落&#xff0c;直播打赏、直播间互动、付费玩法、互动玩法、活动、主播PK、语聊房、人气主播排名、高价值用户排名、增值集卡、up主充电等等&#xff0c;在这众多的业务场景中&#xff0c;我们能看到各种各样的榜单。…

idea 灵异事件之maven 缓存

方法一 mvn clean install 方法二 强制刷新maven 1 idea 右侧的maven 窗口&#xff1a; 方法三 强制刷新maven 2 右键项目&#xff1a; 上面虽然是重新导入Maven依赖&#xff0c;按理说&#xff0c;IDEA应该根据当前最新的pom.xml来导入依赖&#xff1b; Reload project操作…

Leetcode—2244. 完成所有任务需要的最少轮数【中等】

2024每日刷题&#xff08;136&#xff09; Leetcode—2244. 完成所有任务需要的最少轮数 实现代码 class Solution { public:int minimumRounds(vector<int>& tasks) {unordered_map<int, int> map;for(int task: tasks) {map[task];}int ans 0;// freq 1 …

青否数字人的应用场景有哪些?

数字人作为一种新兴技术&#xff0c;应用场景也非常广泛&#xff1a; 1. 企业宣传和营销&#xff1a;企业可以使用数字人制作形象宣传片或广告视频&#xff0c;吸引更多的客户和用户。 2. 教育培训&#xff1a;数字人可以在教育培训领域得到广泛应用&#xff0c;例如制作交互式…

idea配置MySQL提示

点击sql语句&#xff0c;然后再选择show context actions 然后再选择Inject language or reference 然后再选择MySQL 然后我们会发现sql语句变颜色了 如果表是红色 那么需要我们连接mysql的对于的数据库

2024淘宝天猫618凑单跨店满300减多少及618红包领取口令是什么?

2024年天猫618购物狂欢节全攻略 随着夏日的脚步临近&#xff0c;一年一度的天猫618年中大促也即将拉开帷幕。作为年中最大的购物狂欢节&#xff0c;天猫618不仅汇聚了众多优质商品&#xff0c;还准备了丰富的优惠活动和红包福利&#xff0c;让消费者在享受购物乐趣的同时&…

CSS 块状元素

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

振弦式应变计的与实际测量值不一致怎么办

在进行结构健康监测或其他工程测量时&#xff0c;精确性和可靠性至关重要。振弦式表面应变计是一种广泛使用的测量工具&#xff0c;它通过测量材料表面的应变来评估结构的应力状态。然而&#xff0c;在实际应用中&#xff0c;振弦式应变计的测量值与实际应变值之间的不一致问题…

F5G-A万兆光网商用启航,挥动FTTR F50星光之翼,北京联通助力首都家庭飞向全光智慧时代...

2001年&#xff0c;王菲在发行的新歌《光之翼》中唱道&#xff1a;静静地按下电源开关/屏幕的色彩越来越亮/在虚拟的城市/找一个让心灵休息的地方/张开透明翅膀/朝着月亮飞翔/搜寻最美一个现世的天堂…… 将时间拨回千禧年&#xff0c;“看不见的城市”“伊托邦”“网络之城”&…

答辩PPT制作成本高?推荐3个aippt工具

这些网站我愿称之为制作答辩PPT的神&#xff01; 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT…