版权声明: https://blog.csdn.net/baidu_41671472/article/details/81953215
请求与响应模式:
客户端将请求信息通过请求对象发送给服务器,而服务器端获取到请求对
象之后进行相应处理,最后通过响应对象返回给客户端对应的web资源。
内置对象:
不需要预先声明就可以在脚本代码和表达式中使用的对象,成为内置对象
jsp提供9钟内置对象,包括请求与响应两种对象。方便开发,节省开发时间。
作用域:
jsp提供四种作用域:pageContext, request, session, application
作用域代表数据存储的范围,如果有数据想在不同的作用范围都能使用
就要存到不同的作用域钟
request:
封装了有web浏览器或其他客户端生成HTTP请求的细节(参数,属性,头标和数据)
request作用域
:在相邻两个web资源之间共享同一个request请求对象时使用。
<%
request.setAttribute("name", "imooc"); 这里创建一个键值对,name -> imooc存储到request当中
request.getRequestDispatcher("result.jsp").forward(request, response); 这里把这个request和response对象发送给名为result.jsp的web资源
%>
out
:代表输出流的对象
response
:封装了放回到HTTP客户端的输出,像页面作者提供设置响应投标和状态码的方式
response对象
:又叫做响应对象。客户端发送请求给服务器端,服务器做出相应处理后,由response对象向客户端发送响应信息。
也就是说可以通过response对象获得响应信息。
request
作用域:用于请求的周期。也就是用户在发送请求,而服务器做出响应的过程当中,如果我们需要共享数据的话,
可以把当前数据存储到request作用域当中。
这里举个例子:
首先设计一个员工类型:Emp(员工号,名字,密码,邮箱)
然后用一个map类去映射他们,假装存在DataBase中:
”101“->"“101”,“AA”,"123456", "AA@qq.com""
”102“->"“102”,“BB”,"123456", "BB@qq.com""
”103“->"“103”,“CC”,"123456", "CC@qq.com""
”104“->"“104”,“DD”,"123456", "DD@qq.com""
写一个函数判断登陆的用户名和密码是否正确:
public static boolean selectEmpByAccountAndPassword(Emp emp){
boolean flag = false;
for(String key : map.keySet()){
Emp e = map.get(key);
if(emp.getAccount().equals(e.getAccount)) && emp.getPassword().equal(e.getPassword()))
{
flag = true;
break;
}
}
return flag;
}//判断输入用户名密码 是否能够登陆
login-in.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 http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>人事管理信息</title>
</head>
<body>
<h3 align = "center">人事管理系统</h3>
<hr>
<!-- action 代表了服务器端的处理程序 这里指向跳转到 control.jsp 来处理表单信息 -->
<form action="control.jsp"><!-- 这里把页面请求的信息封装到request库中 然后control.jsp就可以通过request对象获取提交内容 -->
<table>
<tr>
<td>账号:</td>
<td>
<input type = "text" name = "acount"/>
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type = "password" name = "password"/>
</td>
</tr>
<tr>
<td>
<input type = "submit" value = "登陆"/>
</td>
</tr>
</table>
</form>
</body>
</html>
control.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 http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- 获取用户名,账号以及密码
1.如果正确,显示成功页面
2.如果错误,显示错误界面
request:获取请求信息
getParameter(String name):可以通过一个控件的name属性来获取控件的值
out:输出流对象,输出指定的信息。
//println();
-->
<h3>响应的字符编码:<%= response.getCharacterEncoding() %><h3>
<%
String account = request.getParameter("acount");
String password = request.getParameter("password");
out.println("账号:"+ account);
out.println("密码"+password);
%>
</body>
</html>
login-in.jsp中的form表单通过 action 属性绑定的响应文件名去执行对应的文件,首先会跳转到对应的文件里面。
所以在运行login-in.jsp文件的提交之后,会跳转到control.jsp文件中。
这里把页面请求的信息封装到request库
中 然后control.jsp就可以通过request对象
获取提交内容。
所以调用out
可以直接输出我们输入的用户名和密码。