文章目录
一、含义
1.1 含义
是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。
<%
int[] arr = {34,43,54};
for(int e:arr){
out.println(e); // out就是内置对象。
}
%>
1.2 九大内置对象
对象 | 类实例 | 作用 |
---|---|---|
out | JspWriter | 向客户端输出内容。 |
request | HttpServletRequest | 存储客户端的请求信息 |
response | HttpServletResponse | 存储客户端的响应信息 |
session | HttpSession | 存储一次会话的信息。 |
application | ServletContext | 存储一次服务器起止的信息。 |
page | java.lang.Object | 指向当前JSP页面本身。 |
pageContext | PageContext | 当于页面中所有功能的集大成者 |
exception | java.lang.Throwable | 存储异常信息。 |
config | - | 在一个Servlet初始化时,JSP引擎向它传递信息用的。 |
二、out
2.1 含义
含义:是JspWriter类的实例
作用:向客户端输出内容常用的对象。
2.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
println() | 向客户端打印字符串 | void |
clear() | 清除缓冲区的内容。若在flush之后调用,则会抛出异常 | void |
clearBuffer() | 清除缓冲区的内容。在flush之后调用,不会抛出异常 | void |
flush() | 将缓冲区的内容,输出到客户端。 | void |
getBufferSize() | 缓冲区字节数的大小,若无则0。 | int |
getRemaining() | 缓冲区还剩余多少可用。 | int |
isAutoFlush() | 缓冲区满时,是自动清空还是抛出异常 | boolean |
close() | 关闭输出流。 | void |
2.3 示例
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>out内置对象</title>
</head>
<body>
<h1>out内置对象</h1>
<%
out.println("<h2> 静夜思</h2>");
out.println("床前明月光<br/>");
out.println("疑是地上霜<br/>");
out.flush();
//out.clear();// 此时会抛出异常,后面代码不再执行。
out.clearBuffer();// 此时不会会抛出异常,后面代码继续执行。
out.println("举头望明月<br/>");
out.println("低头思故乡<br/>");
%>
缓冲区大小:<%=out.getBufferSize() %>byte<br/>
缓冲区剩余大小:<%=out.getRemaining() %>byte<br/>
是否自动清空缓冲区:<%=out.isAutoFlush() %>
</body>
</html>
三、request
3.1 含义
含义:是HttpServletRequest类的实例对象。
作用:客户端的请求信息被封装在request对象中。通过request对象才能获取客户的需求,并给出响应。
特点:具有请求域。即完成客户端的请求之前,该对象一直有效。即请求体中多个页面的request对象可共用。
3.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getParamenter(String name) | 参数值。 | String |
getParamenterValues(String name) | 参数值数组。 | String[] |
setAttibute(String, Object) | 设置属性值 | void |
getAttibute(String name) | 属性值,必须先设置才能获得。 | Object |
getContentType() | 请求体的MIME类型 | String |
getProtocol() | 协议类型及版本号 | String |
getServerName() | 接受请求的服务器的主机名 | String |
getServerPort() | 服务器接受此请求所用的端口号 | int |
setCharacterEncoding() | 设置请求的字符编码方式 | String |
getContentLength() | 请求体的长度(字节数) | int |
getRemoteAddr() | 发送此请求的客户端IP地址 | String |
getRealPath(String path) | 一虚拟路径的真实路径 | String |
request.getContextPath() | 上下文路径 | String |
3.3 示例
reg.jsp
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>内置对象</title>
</head>
<body>
<h1>用户登录:通过request内置对象的方法获取用户提交的信息。</h1>
<ol>
<li>已知:input标签name属性和属性值。未知:input的文本节点内容。</li>
<li>方式:request.getParameter(nameValue)或request.getParameterValues(nameValue)</li>
<li>一个:request.getParameter(nameValue)。List集合:request.getParameterValues(nameValue)。</li>
</ol>
<hr/>
<form name="loginForm" action="request.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>爱好:</td>
<td>
<input type="checkbox" name="favorite" value="read"/>读书
<input type="checkbox" name="favorite" value="music"/>音乐
<input type="checkbox" name="favorite" value="movie"/>电影
<input type="checkbox" name="favorite" value="internet"/>上网
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form><hr/>
<h1>测试URL传参数</h1>
<a href="request.jsp?lisi1=lisi">非中文</a><br>
<a href="request.jsp?lisi2=李四">中文</a><hr/>
</body>
</html>
request.jsp
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>request内置对象</title>
</head>
<body>
<h1>request内置对象</h1><hr/>
<%
// 解决中文乱码。不能解决URL中文乱码,需要修改Tomcat的server.xml配置文件。
request.setCharacterEncoding("utf-8");
// 设置属性。
request.setAttribute("password", "1234");
%>
用户名:<%=request.getParameter("username") %><br/>
用户密码:<%=request.getParameter("password") %><br/>
用户密码(获取属性):<%=request.getAttribute("password") %><br/>
爱好:<%
if(request.getParameterValues("favorite") != null){
String[] favorites = request.getParameterValues("favorite");
for(int i = 0; i < favorites.length; i++){
out.println(favorites[i] + " ");
}
}
%>
<h1>测试URL传参数</h1><hr/>
非中文:<%=request.getParameter("lisi1") %><br>
中文:<%=request.getParameter("lisi2") %><br>
<h1>获取其它信息</h1><hr/>
请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号:<%=request.getProtocol() %><br>
服务器主机名:<%=request.getServerName() %><br>
服务器端口号:<%=request.getServerPort() %><br>
请求文件的长度(字节数):<%=request.getContentLength() %><br>
请求客户端IP地址:<%=request.getRemoteAddr() %><br>
请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
请求上下文路径:<%=request.getContextPath() %><br>
</body>
</html>
四、response
4.1 含义
含义:是HttpServletResponse类的实例对象。
作用:响应客户端的信息被封装在response对象中。JSP中较少使用。
特点:具有页面作用域。即访问一个页面时,该页面内的response对象只能对本次访问有效,其它页面的response对象对当前页面无效。
4.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getCharacterEncoding() | 响应应用的字符编码方式 | String |
setContentType(String type) | 设置响应的MIME类型 | void |
getWriter() | 返回可以向客户端输出字符的一个对象 | PrintWriter |
sendRedirect(java.lang.String location) | 重新定向客户端的请求 | void |
4.3 示例
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=UTF-8"%>
<%
// 设置响应的MIME类型
response.setContentType("text/html;charset=utf-8");
out.println("<h1>response内置对象</h1>");
out.println("<hr/>");
// 清除缓冲区,保证页面显示内容的先后顺序不乱。
//out.flush();
// 获取输出流对象。
PrintWriter outer = response.getWriter();
// 默认情况下。位置在页面顶端。改变使用out.flush()。
outer.println("response.getWriter()可以向客户端输出字符的一个对象");
/*
请求重定向:重新定向客户端的请求。即跳转到其它页面。需要先注释out.flush()语句。
(1)reg.jsp中设置action=response.jsp。
(2)在response.jsp中设置response.sendRedirect("request.jsp");
(3)request.jsp无法获取reg.jsp中用户输入的数据
*/
// response.sendRedirect("request.jsp");
/*
请求转发:是一次请求,转发后请求对象会保存,地址栏的URL不会改变。。需要先注释out.flush()语句。
(1)reg.jsp中设置action=response.jsp。
(2)在response.jsp中设置request.getRequestDispatcher("request.jsp").forward(request,response)。
(3)request.jsp无法获取reg.jsp中用户输入的数据。
*/
request.getRequestDispatcher("request.jsp").forward(request,response);
%>
五、session
5.1 含义
含义:学期、会话。是一个特定的时间概念。HttpSession类的实例对象。
(1)表示客户端与服务器的一次对话。保存用户状态的一种机制。
(2)Web中,指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间。也就是用户浏览这个网站所花费的时间。
保存位置:在服务器端的内存中保存着不同用户的session对象。
生命周期:从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束。
作用:解决同一个客户在不同网页切换时,服务器依然知道是同一个客户。
5.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getCreationTime() | session创建时间。 | long |
getId() | session创建时,JSP引擎为它设定的唯一ID号。 | String |
setAttribute(String name,Object value) | 使用指定名称将对象绑定到此会话 | Object |
getAttribute(String name) | 返回使用指定名称将绑定到此会话的对象,若无则null。 | Object |
getValueNames() | 返回此session中所有可用属性的数组。 | String[] |
setMaxInactiveInterval() | 设置两次请求间隔多长时间(Tomcat默认30分钟后销毁),此session被取消。 | int |
session.jsp:
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=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=UTF-8">
<title>session内置对象</title>
</head>
<body>
<h1>response内置对象</h1><hr/>
<h2>毫秒展示</h2>
session创建时间:<%=session.getCreationTime() %><br/>
<h2>设置日期格式展示</h2>
<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = new Date(session.getCreationTime());
session.setAttribute("username","admin");
session.setAttribute("password","123456");
session.setAttribute("age","20");
// 设置当前session最大生成期限(单位:秒)
session.setMaxInactiveInterval(5);// 结果:5秒后,session2页面无法获取session文件中的内容。
%>
session创建时间:<%=sdf.format(d) %><br/>
<h2>其它方法</h2>
session的ID号:<%=session.getId() %><br/>
从session中获取用户名:<%=session.getAttribute("username") %><br/>
<a href="session2.jsp">连接到session2中</a><br/>
</body>
session2.jsp:
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>session内置对象</title>
</head>
<body>
<h1>测试页面切换</h1><hr/>
session的ID号:<%=session.getId() %><br/>
从session中获取用户名:<%=session.getAttribute("username") %><br/>
<!-- 结果:ID号和用户名相同。说明:是同一个用户。 -->
session中保存的属性有:<%
String[] names = session.getValueNames();
for(int i = 0; i < names.length; i++){
out.println(names[i] + " ");
}
%><br/>
</body>
</html>
5.3 生命周期
5.3.1 创建
(1)当客户端第一次访问某个jsp或者Servlet时,服务器会为当前session会话创建一个SessionId。每次客户端向服务器端发送请求时,都会将此SessionId携带过去,服务器端会对SessionId进行校验。判断是否为同一个session会话。
5.3.2 活动
(1)某次会话当中,通过超链接打开的新页面属于同一次会话。
(2)只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一项目资源时,属于同一次会话。
(3)除非本次会话的所有页面都关闭,再重新访问某个jsp或者Servlet将会创建新的会话。注意:此时,旧的SessionId仍然存在于服务器端,只是不再通过客户端携带提交给服务器端校验了。
5.3.3 销毁
含义:指服务器端(如Tomcat)清除当前session对象。
销毁方式(3种):
(1)调用了session.invalidate()方法。
(2)Session过期(超时)。
(3)服务器重新启动。
5.3.4 设置超时的两种方式
(1)在jsp文件中,调用session.setMaxInactiveInterval(时间);
(2)在web.xml文件中,设置配置文件。单位:分钟。Tomcat默认30分钟后销毁。
<session-config>
<session-timeout>10</session-timeout>
</session-config>
session1.jsp:
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=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=UTF-8">
<title>session内置对象</title>
</head>
<body>
<h1>response内置对象</h1><hr/>
<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = new Date(session.getCreationTime());
session.setAttribute("username","admin");
session.setAttribute("password","123456");
session.setAttribute("age","20");
// session.setMaxInactiveInterval(5);
%>
毫秒展示session创建时间:<%=session.getCreationTime() %><br/>
设置日期格式展示session创建时间:<%=sdf.format(d) %><br/>
session的ID号:<%=session.getId() %><br/>
从session中获取用户名:<%=session.getAttribute("username") %><br/>
<%
session.invalidate();// 销毁当前会话。
%>
<a href="session2.jsp">连接到session2中</a><br/>
</body>
</html>
session2.jsp:
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>session内置对象</title>
</head>
<body>
<h1>测试页面切换</h1><hr/>
session的ID号:<%=session.getId() %><br/>
从session中获取用户名:<%=session.getAttribute("username") %><br/>
<!-- 结果:ID号和用户名相同。说明:是同一个用户。 -->
session中保存的属性有:<%
String[] names = session.getValueNames();
for(int i = 0; i < names.length; i++){
out.println(names[i] + " ");
}
%><br/>
</body>
</html>
六、application
6.1 含义
含义:ServletContext类的实例。
(1)在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作。
保存位置:服务器端。
生命周期:开始于服务器的启动,终止与服务器的关闭。
作用:实现了用户之间的数据共享,可存放全局变量。
6.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
setAttribute(String name,Object value) | 使用指定名称将对象绑定到此会话 | Object |
getAttribute(String name) | 返回使用指定名称将绑定到此会话的对象,若无则null。 | Object |
getAttributeNames() | 返回所用可用属性名的枚举。 | Enumeration |
getServerInfo() | 返回JSP(Servlet)引擎名及版本号。 | String |
6.3 示例
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=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=UTF-8">
<title>application内置对象</title>
</head>
<body>
<h1>application内置对象</h1><hr/>
<%
application.setAttribute("city","北京");
application.setAttribute("postcode","10000");
application.setAttribute("email","lisi@163.com");
application.setAttribute("name","李四");
%>
姓名:<%=application.getAttribute("name") %><br/>
application中的属性有:<%
Enumeration attributes = application.getAttributeNames();
while(attributes.hasMoreElements()){
out.println(attributes.nextElement() + " ");
}
%><br/>
JSP(SERVLET)引擎名及版本号:<%=application.getServerInfo() %>
</body>
</html>
七、page
7.1 含义
含义:java.lang.Object类的实例。
作用:指向当前JSP页面本身。与类中的this指针相似。
7.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getClass() | 返回此Object的类。 | class |
hashCode() | 返回此Object的hash码。 | int |
equals(Object obj) | 相等判断 | boolean |
copy(Object obj) | 拷贝对象 | void |
clone() | 克隆对象 | Object |
toString() | 转化成String类的对象 | String |
notify() | 唤醒一个等待的线程 | void |
notifyAll() | 唤醒所有等待的线程 | void |
wait(int timeout) | 设置线程等待时间 | void |
wait() | 让线程一直等待 | void |
7.3 示例
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=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=UTF-8">
<title>page内置对象</title>
</head>
<body>
<h1>page内置对象</h1><hr/>
当前page页面对象的字符串描述:<%=page.toString() %>
</body>
</html>
八、pageContext
8.1 含义
含义:PageContext类的实例。
作用:
(1)提供了对JSP页面内所有的对象及名字空间的访问。
(2)可以访问到本页所在的session,也可以取本页页面所在的application的某一属性值。
(3)相当于页面中所有功能的集大成者。
8.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getOut() | 当前客户端响应被使用的JspWriter流(out) | JspWriter |
getSession() | 当前页面中的HttpSession对象(session) | HttpSession |
getPage() | 当前页的Object对象(page) | Object |
getRequest() | 当前页的ServletRequest对象(request) | ServletRequest |
getResponse() | 当前页的ServletResponse对象(response) | ServletResponse |
setAttribute(String name, Object attribute) | 设置属性及属性值 | void |
getAttribute(String name, int scope) | 指定范围内获取属性值 | Object |
getAttributeScope(String name) | 获取属性作用范围 | int |
forward(String relativeUrlPath) | 使当前页面重导到另一页面 | void |
include(String relativeUrlPath) | 在当前位置包含另一文件 | void |
8.3 示例
pageContext.jsp:
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=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=UTF-8">
<title>pageContext内置对象</title>
</head>
<body>
<h1>pageContext内置对象</h1><hr/>
<p>注意:先运行session.jsp文件,再运行pageContext.jsp文件,就可以获取到相应的值!</p>
用户名:<%=pageContext.getSession().getAttribute("username") %><br/>
<%
// 本页面不显示,直接跳转到reg.jsp页面。
//pageContext.forward("reg.jsp");
// 在当前位置,包含另一文件。
pageContext.include("include.jsp");
%>
</body>
</html>
include.jsp:
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=UTF-8"%>
<%
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str = sdf.format(date);
out.println(str + "<br/>");
%>
九、config
9.1 含义
含义:
作用:
(1)在一个Servlet初始化时,向JSP引擎通过config对象向Servlet传送初始化所需信息。
(2)初始化所需信息:参数(属性名+属性值构成) + 服务器有关信息(一个ServletContext对象)
9.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getServletContext() | 返回含有服务器相关信息的ServletContext对象 | ServletContext |
getInitParameter(String name) | 返回初始化参数的值 | String |
getInitParameterNames() | 返回Servlet初始化所需所有参数的枚举。 | Enumeration |
9.3 示例
十、exception
10.1 含义
含义:java.lang.Throwable类的实例。是一个异常对象。
作用:
(1)当一个页面运行过程中发生异常时,就产生了该对象。
(2)先把isErrorPage设为true,才能使用该对象
<body>
<%=exception %>
</body>
10.2 常用方法
方法 | 含义 | 返回值 |
---|---|---|
getMessage() | 返回描述异常信息 | String |
toString() | 返回异常的简短描述信息 | String |
printStackTrace() | 显示异常及其栈轨迹 | void |
FillInstackTrace() | 重写异常的执行栈轨迹 | Throwable |
10.3 示例
page指令:errorPage=“exception2.jsp”
exception.jsp:
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=UTF-8" errorPage="exception2.jsp"%>
<!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=UTF-8">
<title>exception内置对象</title>
</head>
<body>
<h1>exception内置对象</h1><hr/>
<%
out.println(10/0);// 异常。算术异常。
%>
</body>
</html>
page指令:isErrorPage=“true”
exception2.jsp:
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=UTF-8" isErrorPage="true"%>
<!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=UTF-8">
<title>exception内置对象</title>
</head>
<body>
<h1>exception内置对象</h1><hr/>
异常消息是:<%=exception.getMessage() %><br/>
异常的简短描述信息:<%=exception.toString() %><br/>
</body>
</html>
十一、实例——用户登录
用户:用户名——admin,密码——admin。
(1)登录成功,则使用服务器内部转发到login_success.jsp页面。显示登录成功的用户名。
(2)登录失败,则请求重定向到login_failure.jsp页面。
注册页面:login.jsp
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>用户登录</title>
</head>
<body>
<div id="container">
<div class="logo">
<a href="#"><img src="#" alt="" /></a>
</div>
</div>
<div id="box">
<form name="loginForm" action="dologin.jsp" method="get">
<p class="main">
<label>用户名:</label>
<input type="text" name="username" value=""/>
<label>密码:</label>
<input type="password" name="password" value=""/>
</p>
<p class="space">
<input type="submit" value="登录" />
</p>
</form>
</div>
</body>
</html>
服务器内部处理:dologin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%-- 业务处理。不需要HTML标签。 --%>
<%
// 设置请求的编码。防止中文乱码。
request.setCharacterEncoding("utf-8");
// 声明变量。接收请求信息
String username = "";
String password = "";
// 获取请求的用户输入的信息。
username = request.getParameter("username");
password = request.getParameter("password");
// 判断密码和用户名是否正确。
if ("admin".equals(username) && "123456".equals(password)) {
// 正确时。请求转发到login_success.jsp页面。
request.getRequestDispatcher("login_success.jsp").forward(request, response);
// 设置session对象,记录用户信息。
session.setAttribute("loginUser", username);
} else if ("admin".equals(username)) {
// 用户名正确时。请求重定向到login_failure.jsp页面。
response.sendRedirect("login_failure.jsp");
} else {
// 用户名不正确时。
response.sendRedirect("login_failure.jsp");
}
%>
登录成功页面:login_success.jsp
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>用户登录</title>
</head>
<body>
<div id="container">
<div class="logo">
<a href="#"><img src="#" alt="" /></a>
</div>
</div>
<div id="box">
<%-- 防止为null,需要判断一下。 --%>
<%
String loginUser ="";
if(session.getAttribute("loginUser") != null){
loginUser = session.getAttribute("loginUser").toString();
}
%>
欢迎<font color="red"><%=loginUser %></font>,您登陆成功!
</div>
</body>
</html>
登录失败页面:login_failure.jsp
<%@ page language="java" contentType="text/html; charset=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=UTF-8">
<title>用户登录</title>
</head>
<body>
<div id="container">
<div class="logo">
<a href="#"><img src="#" alt="" /></a>
</div>
</div>
<div id="box">
登陆失败!请检查用户名或密码!<br>
<a href="login.jsp">返回登陆页面</a>
</div>
</body>
</html>