jsp页面中用JavaBean传值,实现简单登录界面
在web project项目的jsp中使用javaBean来实现简单登录界面。
注意:javaBean的范围,page,request,session,application它们各自的范围是不同,这点需要注意,不然会出现使用
<jsp:getProperty property="属性名称" name="bean对象名"/>
获取javaBean中值时,会显示 NULL等错误。
在这里我将使用jsp和JavaBean来实现简单登录界面(指定用户名和密码),登录成功时,在成功页面中显示用户名和密码,登录失败,返回重新登录。
下面是JavaBean代码 Sign.java
package beans;
public class Sign {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
用户登录界面 userSign.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="checkSign.jsp" method="post">
账户<input name="username" type="text"><br/>
密码<input name="password" type="password"><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
判断用户名(账号)和密码是否是“张三”和“123456” checkSign.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<jsp:useBean id="sign" class="beans.Sign" scope="session"></jsp:useBean>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
request.setCharacterEncoding("gb2312"); //更改编码,能够传送中文字符串
String username=request.getParameter("username");
String password=request.getParameter("password");
if("张三".equals(username)&&"123456".equals(password)){
%>
<jsp:setProperty property="username" name="sign"></jsp:setProperty>
<jsp:setProperty property="password" name="sign"></jsp:setProperty>
<%
out.print(sign.getUsername());
response.sendRedirect("ok.jsp");
}else{
response.sendRedirect("failure.jsp");
}
%>
</body>
</html>
在这里,先判断用户名和密码是否是需要的,然后再将request获取到的用户名和密码抛给JavaBean,否则直接跳转到登录失败页面(failure.jsp),避免了垃圾信息传送,造成浪费空间和内存
if("张三".equals(username)&&"123456".equals(password)){
%>
<jsp:setProperty property="username" name="sign"></jsp:setProperty>
<jsp:setProperty property="password" name="sign"></jsp:setProperty>
<%
out.print(sign.getUsername());
response.sendRedirect("ok.jsp");
}else{
response.sendRedirect("failure.jsp");
}
接下来是用户登录成功的页面 ok.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<jsp:useBean id="sign" class="beans.Sign" scope="session"></jsp:useBean>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
登录成功,欢迎
<font color="red">
<jsp:getProperty property="username" name="sign"/>
</font>
您的密码为
<font color="blue">
<jsp:getProperty property="password" name="sign"/>
</font>
</body>
</html>
下面是登录失败页面,点击返回直接跳转到登录界面 failure.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
登录失败
<a href="userSign.jsp">返回</a>
</body>
</html>
下面放几张截图看看(userSign.jsp)
登录成功界面(ok.jsp)
登录失败界面(failure.jsp)
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
