JSP-内置对象

一、含义

1.1 含义

是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。

<%
	int[] arr = {34,43,54};
	for(int e:arr){
		out.println(e); // out就是内置对象。
	}	  
%>

1.2 九大内置对象

对象类实例作用
outJspWriter向客户端输出内容。
requestHttpServletRequest存储客户端的请求信息
responseHttpServletResponse存储客户端的响应信息
sessionHttpSession存储一次会话的信息。
applicationServletContext存储一次服务器起止的信息。
pagejava.lang.Object指向当前JSP页面本身。
pageContextPageContext当于页面中所有功能的集大成者
exceptionjava.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] + "&nbsp;&nbsp;&nbsp;&nbsp;");
			}
		}
	%>
	<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] + "&nbsp;&nbsp;&nbsp;&nbsp;");
		}
	%><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] + "&nbsp;&nbsp;&nbsp;&nbsp;");
		}
	%><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() + "&nbsp;&nbsp;&nbsp;&nbsp;");
		}
	%><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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值