JSP_4.25_课堂笔记

发布时间 2023-04-28 09:03:42作者: qi_fen_zhong

一、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");
		同样就跳转注册界面
		}
%>