JavaBean 登陆页面的简单写法三种方法
第一种:如果成功直接在本页面输出
要求:
JavaBean的例子,先编写一个登录JavaBean,然后编写一个登录html页面(login.html),提交后的处理页面(login.jsp)应用该登录JavaBean获取表单的值,如果用户名和密码都正确(例如用户名等于QQ,密码等于123),页面跳转到成功页面,否则跳转到登录页面(login.html)。
1. 首先我们需要存储用户信息的User.java,由于这里我本身就没有写注册信息,其实是可以省略的
public class User {
private String name;
private String password;
public void setName(String name) {
this.name=name;
}
public String getName (){
return name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
}
讲解:考虑到可能有没有java基础的同学,这里的setName其实就是给数据库传入name的值,然后我们需要读取这个数据,就需要get这个函数返回(return)值,这里的User.java其实就是定义了这两个函数
2. 登陆页面login.html
<html lang="en">
<head>
<meta charset="utf-8">
<title>登陆界面</title>
</head>
<body>
<div align="center">
<font size="10px" color="#00008b">用户登录</font>
<form action="login.jsp" method="get">
<table border="2">
<tr>
<th>用户名</th>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<th>密码</th>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录"/>
<input type="reset" />
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
讲解:这里的最**重点**的就是前三条代码
```html
<form action="login.jsp" method="get">
注意:name的值不能乱取,需要跟user.java里面的名字还有接下来的login.jsp相同!!!
<th>用户名</th>
<td><input type="text" name="name"/></td>
<th>密码</th>
<td><input type="password" name="password"/></td>
这条HTML代码的意义就是设置登陆和重置的功能,如果submit就会直接传到(get)到login.jsp这个jsp文件里面
<input type="submit" value="登录"/>
<input type="reset" />
3. login.jsp 处理传过来的值
<%@ page contentType="text/html" pageEncoding="utf-8" %>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>数据登陆页面</title>
</head>
<body>
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
if(name.equals("qq")&&password.equals("123")){
%>
<%="登陆成功,欢迎你"%>
<%=request.getParameter("name")%>
<%
}else{
%>
<jsp:forward page='login.html'>
<jsp:param name='user' value="<%=name%>"/>
</jsp:forward>
<%
}
%>
</body>
</html>
讲解:
- java脚本代码需要用<% %>符号,这个脚本体的意思就是接受login.html穿过来的值
- request请求中如果有中文可能会导致中文乱码,因此最最开始的头上面需要指定UTF-8编码方式
- java里面判断两个字符串是否相等是不可以直接==的,需要使用equals()方法
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
if(name.equals("qq")&&password.equals("123")){
%>
- 如果同时满足if里面的两个要求,在页面则会返回用户名填进去的name
- 需要注意如果是输出jsp代码,后面是没有 ; 的符号为:<%= %>
<%="登陆成功,欢迎你"%>
<%=request.getParameter("name")%>
- 如果没有同时满足if里面的两个要求,则会重新跳转到HTML进行重新输入
- jsp:forward动作指令之后的代码是不会执行的。
- jsp:param动作就是起到修饰的作用
<jsp:forward page='login.html'>
<jsp:param name='user' value="<%=name%>"/>
</jsp:forward>
下面是运行结果:
第二种:如果成功跳转新的页面
跟第一个唯一不一样的就是在login.jsp里面的成功跳转页面改一下就好了呀~
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
if(name.equals("qq")&&password.equals("123")){
%>
<jsp:forward page='success.jsp'>
<jsp:param name="user" value="<%=name%>"/>
</jsp:forward>
<%
}else{
%>
<jsp:forward page='login.html'>
<jsp:param name='user' value="<%=name%>"/>
</jsp:forward>
<%
}
%>
当然.success.jsp也是需要写的
<%@ page contentType="text/html" pageEncoding="utf-8" %>
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>用户登陆成功页面</title>
</head>
<body>
登陆成功
<br>
欢迎你,<%=request.getParameter("name")%>
</body>
</html>
第三种:如果成功跳转其他页面
只需要重定向就好~response.senRedirect(" path")
<%
String name=request.getParameter("studentNumber");
String password=request.getParameter("password");
if(name.equals("jwzx")&&password.equals("jwzx")){
response.sendRedirect("http://jwc.cqupt.edu.cn/");
}else{
%>
<jsp:forward page='login.html'>
<jsp:param name='user' value="<%=name%>"/>
</jsp:forward>
<%
}
%>