首页 > 其他分享 >JSP_4.25_课堂笔记

JSP_4.25_课堂笔记

时间:2023-04-28 09:13:33浏览次数:29  
标签:前端 response session jsp JSP 课堂 表单 4.25

一、JSP内置对象

JSP可以充当后端,后端可以接受前端的请求参数,同时也可以给前端回应数据。
这些操作需要通过JSP的内置对象来完成。

1. out内置对象:输出数据到当前网页中。JSP充当前端使用

out.println(“xxxx”);

2. request内置对象:接受前端的请求参数等操作

request.setCharacterEncoding(xxxx); // 指定客户端请求中所使用的字符编码方式

String xxx = request.getParameter(xxxx) 获取指定名称 xxx 的请求参数的值

3. response内置对象:给前端响应数据或者网页的

一般如果前端是ajax发送的请求,给前端传递数据,如果是form表单的话,给前端传递网页。

response.setCharacterEncoding(xxxx)

PrintWriter writer = response.getWriter();

如果给前端传递的是数据,数据格式一般要求是json格式:

{"name":"value","name1":"value1"}

response对象也可以负责跳转界面

response.sendRedirect(xxx.html/jsp) 等同于jsp:forward动作

response对象可以页面刷新跳转(延迟刷新跳转)

response.setHeader("refresh","2;URL=XXXX.jsp")

4. session内置对象

session内置对象我们一般也给称之为session会话或者session缓存,一般情况下,一个用户创建一个独立的session会话,通过这个session会话我们可以保存用户的相关信息数据,而且session会话有一个过期机制:

  • 如果超过30分钟用户对网站没有做任何的操作,session就自动销毁了。

  • 重新打开了浏览器

session一般的作用是用来缓存当前登录用户的相关信息,用于在其他页面使用这个信息的。session之所以出现是因为HTTP协议的问题HTTP协议有一个很大的问题:无状态

一般情况下,用户从访问网站开始(不管是从哪个界面),网站后端给用户创建一个session会话对象,而且会给这个用户生成一个sessionId,然后后端将sessionId和session会话对象绑定了,同时后端把sessionId给前端返回了,以后要求前端每次请求后端必须带上sessionId.

login.jsp登录界面

<form action="loginRequest.jsp" method="post">
//定义了一个表单,其中action属性指定了该表单提交时要发送到的 URL 地址,
method属性指定了提交表单时要使用的 HTTP 请求方法。
意味着该表单提交时会将数据发送到loginRequest.jsp页面,并且请求方法为POST

					<div id=d1>欢迎登录优逸客实训平台</div>
					<div id=d2>用户名</div>
					<input  type='text' placeholder="请输入用户名" name="username" id=username></input>
					name属性为username,是该输入框中用户输入的数据在表单提交时的名字;
					
					<div id=d3>密码</div>
					<input  type="password" placeholder="请输入密码" name="password" id=password></input>
					<button type=submit id=b1>登录</button>
					定义了一个提交按钮,当用户点击该按钮时,表单数据会被提交到指定 URL 地址。
				</form>

loginRequest.jsp登录时验证界面

<%
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	if(username == null || username.equals("")){
		//跳转到登录界面
		response.sendRedirect("login.jsp");
	}else{
		//先将当前用户的登录信息缓存到session会话对象中
		session.setAttribute("username", username);
		response.sendRedirect("main.jsp");
	}

%>

main.jsp主界面

<%
			Object username = session.getAttribute("username");
			if(username == null){
				out.print("未登录,五秒自动跳转...");
				response.setHeader("refresh","5,URL=login.jsp"); 刷新五秒后跳转登录界面
			}else{
				out.print("欢迎您"+username); //显示登录信息
			}
%>

register.jsp注册页面

<form action="check.jsp" method="post">
					<div id=d1>欢迎注册优逸客实训平台</div>
					<div id=d2>用户名</div>
					<input id=d4 type='text' placeholder="请输入用户名"></input>
					<div id=d3>密码</div>
					<input id=d5 type="password" placeholder="请输入密码" name="password1"></input>
					<div id=d7>再次输入密码</div>
					<input id=d6 type="password" placeholder="请重新输入密码" name="password2"></input>
					<button id=b1>注册</button>

check.jsp检查密码是否正确的jsp文件

<%
	String password1 = request.getParameter("password1");
	String password2 = request.getParameter("password2");
	if (password1.equals(password2)) {
	    //比较password1 与 password2 是否一样 (利用equals方法)
		response.sendRedirect("login.jsp");
		不同样就刷新界面
		} else {
		response.sendRedirect("register.jsp");
		同样就跳转注册界面
		}
%>

标签:前端,response,session,jsp,JSP,课堂,表单,4.25
From: https://www.cnblogs.com/ningbaby/p/17360899.html

相关文章

  • jsp js iframe用post方式提交大数据
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>NewDocument</title><metaname="Generator"content="Edi......
  • jsp 自定义标签
    新疆web工程:Java代码:packagecom.tld.bean;publicclassUserInfo{ privateStringusername; privateintage; publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicintgetA......
  • 关于idea使用Tomcat打开jsp文件页面失败的问题的解决
    问题描述在idea里面使用Tomcat打开jsp文件频繁报错,检查相关路径也没有任何问题,而且用来测试的jsp文件还是最简单的形式,困扰了大概5分钟左右问题解决经过查询百度可知,这次不是路径的问题,而是需要将我们在web文件夹里面创建的jsp文件复制到target文件夹里面保持与target文件夹里......
  • Jsp基础知识总结
    [code]首先来说一下我们jsp的课程:第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaMal和Servlet.第二部分就是Jsp技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库.第三部......
  • day56(2023.4.25)
    day39总结了Java基础知识点 day40为了巩固Java基础知识点,所以需要完成智能电话本项目,1.项目的介绍2.项目的演示 day41实现了电话本项目 day1-day39(Java基础)day40-day41(智能电话本项目) 进入数据库编程day421.数据库基本概念 ......
  • 编程一小时2023.4.25
    1.#include<bits/stdc++.h>usingnamespacestd;classnumber{intfz,fm;friendnumberoperator+(number&n1,number&n2);public:number(inta=0,intb=1){fz=a;fm=b;}friendintgcd(inta,intb);friendintmin_gb(number&n1......
  • 4.25
    #include<iostream>usingnamespacestd;classperson{public:person(){cout<<"person的无参构造函数的调用"<<endl;}person(inta){age=a;cout<<"person的有参构造函数的调用"<<endl;}person(constperson&p){......
  • 4.25 1.7
    一、问题描述假设银行一年正存取的月息为0.63%。现某人手里有一笔钱,打算在今后的五年中每年年底取1000元,到第五年刚好取完,请算出他存钱存了多少。二、分析第五年年初a=1000/(1+12*0.0063)第四年年初b=(a+1000)/(1+12*0.0063)第三年年初c=(b+1000)/(1+12*0.0063)第二年年初d=(c+1000)/(1+1......
  • 2023.4.25-人月神话-4月份读后感3
    最近,我阅读了人月神话的下一部分,我有了许多的感悟。过去,我对于自顶向下的设计不够重视。好的自顶向下设计从几个方面避免了bug。首先,清晰的结构和表达方式更容易对需求和模块功能进行精准的描述。其次,模块分割和模块独立性避免了系统级的bug。另外,细节的隐藏使结构上的缺陷更加容......
  • 团队项目4.25开会
    下午听了老师叙述的项目报告,确立了项目发展方向,后经过与其他组讨论,确定了大致内容,通过调用百度的接口对照片中的数据进行读取,详细内容上传数据库,这点已经可以实现,因为是工厂项目,所以应该每天至少有一张数据需要上传,进行分类按时间类型分类,可进行日、周、月查看,纵向延申,对数据进......