jsp编写登录界面

/blog/20091213/77.html按以下要求建立用户帐号信息表:用户ID:字符型,最大长度20用户姓名:字符型,最大长度20用户密码:字符型,最大长度20编写用户登陆页面。

当用户输入正确的用户ID及密码后迁移到“登录成功”提示页面。

否则用户重新进行登录。

11111 张三11111122222 李四22222233333 张五333333编写这个project时主要遇到了一个jsp页面的url传值问题,其次就是一些逻辑处理的问题url传参的String n = request.getParameter(“wrongid”);if(n == “wrongid1″)判断不了。

请教了某个高手后才知道java的字符串是不能这样判断的,要用n.equals()方法。

java中字符串的存储方法不一样,不是基本数据类型。

至此三个实验全部完成了,发现java还是挺有意思的,我很想学java啊……..可惜最近忙的要死,都抽不出时间看书。

我这人最大的杯具就是对什么都感兴趣,什么都懂一点,但是什么都不精通……..附上核心代码和工程压缩包下载:index.jsp<form id="form" action="login.jsp" method="post"><label>用户ID:<input id="username" name="username" size="15" type="text" /></label><label>密码:<input id="password" name="password" size="15" type="password" /></label><label><input type="submit" value="登陆" /></label></form>login.jspString userid = request.getParameter("username");String password = request.getParameter("password");if( userid ==""|| userid ==null|| userid.length()&gt;20|| password =="" || password ==null|| password.length()&gt;20){try{response.sendRedirect("wrong.jsp?wrongid=1");}catch(Exception e ){}}else{Connection conn =null;Statement stmt =null;ResultSet rs =null;try{Class.forName("com.mysql.jdbc.Driver").newInstance();conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/member?user=root&amp ;password=root&amp;useUnicode=true&amp;characterEncoding=utf-8");stmt = conn.createStatement();String sql="SELECT name FROM member where id="+userid+" and pw="+password;if(stmt.execute(sql)){rs = stmt.getResultSet();while(rs.next()){out.println("登陆成功!");out.println("欢迎您:"+rs.getString("name"));}}conn.close();}catch(SQLException ex){response.sendRedirect("wrong.jsp?wrongid=2");}catch(InstantiationException e){response.sendRedirect("wrong.jsp?wrongid=2");}catch(IllegalAccessException e){response.sendRedirect("wrong.jsp?wrongid=2");}catch(ClassNotFoundException e){response.sendRedirect("wrong.jsp?wrongid=2");}finally{if(rs !=null){try{rs.close();}catch(SQLException sqlEx){}// ignorers =null;}if(stmt !=null){try{stmt.close();}catch(SQLException sqlEx){}// ignorestmt =null;}}}wrong.jspString n = request.getParameter("wrongid");if(n.equals("1")){out.println("1.您没输入ID或密码。

2.ID和密码不能超过20字符");out.println("<a href="¥">点此重新登陆</a>");}else if(n.equals("2")){out.println("Sorry,登陆失败。

");out.println("您输入的用户ID或密码不对哦。

");out.println("<a href="¥">点此重新登陆</a>");}else{out.println("你又在干坏事拉!");}工程压缩包下载:http://cid-87b2103a38e6466e.skydrive.li声明:作者原创,版权所有。

未经授权,不得转载在jsp中用bean和servlet联合实现用户注册、登录作者:imagebear版权:imagebear本例需要的软件和运行环境:1、Windows2000 Server操作系统2、jdk1.43、JCreator2.5(java源码编辑调试器,吐血推荐!)4、Macromedia JRun MX5、Macromedia Dreamweaver MX(非必需)6、MySQL数据库(最好安装MySQL Control Center)一、数据库设计用MySQL Control Center打开MySQL数据库,新建数据库shopping,在其下新建表tbl_user,其中各字段设置如下:二、编写连接数据库bean:DBConn.java//DBConn.java//include required classesimport java.sql.*;//========================================== // Define Class DBConn//========================================== public class DBConn{public String sql_driver = "org.gjt.mm.mysql.Driver";public String sql_url = "jdbc:mysql://localhost:3306";public String sql_DBName = "shopping";public String user = "sa";public String pwd = "";Connection conn = null;Statement stmt = null;ResultSet rs = null;public boolean setDriver(String drv){this.sql_driver = drv;return true;}public String getDriver(){return this.sql_driver;}public boolean setUrl(String url){this.sql_url = url;return true;}public boolean setDBName(String dbname){this.sql_DBName = dbname;return true;}public String getDBName(){return this.sql_DBName;}public boolean setUser(String user){er = user;return true;}public String getUser(){return er;}public boolean setPwd(String pwd){this.pwd = pwd;return true;}public String getPwd(){return this.pwd;}public DBConn(){try{Class.forName(sql_driver);//加载数据库驱动程序this.conn = DriverManager.getConnection(sql_url + "/" + sql_DBName + "?user=" + user + "&password=" + pwd + "&useUnicode=true&characterEncoding=gb2312");this.stmt = this.conn.createStatement();}catch(Exception e){System.out.println(e.toString());}}//执行查询操作public ResultSet executeQuery(String strSql) {try{this.rs = stmt.executeQuery(strSql);return this.rs;}catch(SQLException e){System.out.println(e.toString());return null;}catch(NullPointerException e){System.out.println(e.toString());return null;}}//执行数据的插入、删除、修改操作 public boolean execute(String strSql){try{if(this.stmt.executeUpdate(strSql) == 0)return false;elsereturn true;}catch(SQLException e){System.out.println(e.toString());return false;}catch(NullPointerException e){System.out.println(e.toString());return false;}}//结果集指针跳转到某一行public boolean rs_absolute(int row){try{this.rs.absolute(row);return true;}catch(SQLException e){ System.out.println(e.toString()); return false;}}public void rs_afterLast(){try{this.rs.afterLast();}catch(SQLException e){ System.out.println(e.toString()); }}public void rs_beforeFirst(){try{this.rs.beforeFirst();}catch(SQLException e){ System.out.print(e.toString()); }}public void rs_close(){try{this.rs.close();}catch(SQLException e){ System.out.print(e.toString()); }}public void rs_deleteRow(){try{this.rs.deleteRow();}catch(SQLException e){System.out.print(e.toString());}}public boolean rs_first(){try{this.rs.first();return true;}catch(SQLException e){System.out.print(e.toString());return false;}}public String rs_getString(String column){try{return this.rs.getString(column);}catch(SQLException e){System.out.println(e.toString());return null;}}//此方法用于获取大段文本,//将其中的回车换行替换为<br>//输出到html页面public String rs_getHtmlString(String column) {try{String str1 = this.rs.getString(column);String str2 = "¥r¥n";String str3 = "<br>";return this.replaceAll(str1,str2,str3);}catch(SQLException e){System.out.println(e.toString());return null;}}//把str1字符串中的str2字符串替换为str3字符串private static String replaceAll(String str1,String str2,String str3){StringBuffer strBuf = new StringBuffer(str1);int index=0;while(str1.indexOf(str2,index)!=-1){index=str1.indexOf(str2,index);strBuf.replace(str1.indexOf(str2,index),str1.indexOf(str2,index)+str2.length(),str3); index=index+str3.length();str1=strBuf.toString();}return strBuf.toString();}public int rs_getInt(String column){try{return this.rs.getInt(column);}catch(SQLException e){System.out.println(e.toString());return -1;}}public int rs_getInt(int column){try{return this.rs.getInt(column);}catch(SQLException e){ System.out.println(e.toString()); return -1;}}public boolean rs_next(){try{return this.rs.next();}catch(SQLException e){ System.out.println(e.toString()); return false;}}//判断结果集中是否有数据 public boolean hasData(){try{boolean has_Data = this.rs.first(); this.rs.beforeFirst();return has_Data;}catch(SQLException e){ System.out.println(e.toString()); return false;}}public boolean rs_last(){try{return st();}catch(SQLException e){ System.out.println(e.toString());return false;}}public boolean rs_previous(){try{return this.rs.previous();}catch(Exception e){System.out.println(e.toString());return false;}}//main方法,调试用public static void main(String args[]){try{DBConn myconn = new DBConn();//myconn.setDBName("shopping");//myconn.DBConn();//myconn.execute("Insert Into tbl_test(id,name) values(10,shandaer)");//myconn.execute("Update tbl_test set name=yyyyyyyyyyyy where id=10");//myconn.execute("Delete from tbl_test where id=1");ResultSet rs = myconn.executeQuery("select * from tbl_user order by id desc limit 1"); //boolean hasData = myconn.hasData();//System.out.println("has data:" + hasData);//rs.first();while (myconn.rs.next()){int id = myconn.rs_getInt("id") + 1;System.out.print(id);System.out.println(myconn.rs_getInt("id") + myconn.rs_getString("name"));//System.out.println(¥n + myconn.rs_getHtmlString("name"));//System.out.println(myconn.rs.getString("name") + myconn.rs_getInt(1));}}catch(Exception e){System.err.println(e.toString());}}}声明:因为使用的是MySQL数据库,所以需要MySQL数据库的驱动下载后请将org包放至DBConn.java所在目录下以确保该bean能正常运行三、编写用户注册的bean:reg.java//reg.java//import required classesimport java.sql.*;public class reg{public int newID = 0;public boolean result = false;public boolean reg(String username,String password,String confirm,String email) {try{if(!this.checkUser(username))return false;if(!this.checkPwd(password))return false;if(!this.verifyPwd(password,confirm))return false;if(!this.checkEmail(email))return false;if(!erNotExit(username))return false;this.getNewID();this.result = this.register(username,password,confirm,email); return this.result;}catch(Exception e){System.out.println(e.toString());return false;}}//End boolean regpublic boolean checkUser(String user){try{if(user.indexOf("")!=-1){System.out.println("姓名中含有非法字符!");return false;}elsereturn true;}catch(Exception e){System.out.println(e.toString());return false;}}public boolean checkPwd(String pwd){try{if(pwd.indexOf("")!=-1){System.out.println("密码中含有非法字符!");return false;}elsereturn true;}catch(Exception e){System.out.println(e.toString());return false;}}public boolean verifyPwd(String pwd,String confirm) {try{if(!pwd.equals(confirm)){System.out.println("两次输入的密码不一致!");return false;}elsereturn true;}catch(Exception e){System.out.println(e.toString());return false;}}public boolean checkEmail(String email){try{if(email.indexOf("")!=-1){System.out.println("E-mail中含有非法字符!");return false;}elsereturn true;}catch(Exception e){System.out.println(e.toString());return false;}}public boolean userNotExit(String user){try{DBConn userDBConn = new DBConn();userDBConn.executeQuery("select * from tbl_user where name=" + user + ""); if(userDBConn.rs_next()){System.out.println("用户名已存在,请选择其它的用户名!");return false;}elsereturn true;}catch(Exception e){System.out.println(e.toString());return false;}}public int getNewID(){try{DBConn newIDDBConn = new DBConn();newIDDBConn.executeQuery("select * from tbl_user order by id desc limit 1"); if(newIDDBConn.rs_next()){this.newID = newIDDBConn.rs_getInt("id") + 1;System.out.println(this.newID);}else{this.newID = 1;}return this.newID;}catch(Exception e){System.out.println(e.toString());return -1;}}public int getID(){return this.newID;}public boolean register(String username,String password,String confirm,String email){try{DBConn regDBConn = new DBConn();String strSQL = "insert into tbl_user(id,name,pwd,email) values(" + this.newID +"," + username + "," + password + "," + email + ")";regDBConn.execute(strSQL);return true;}catch(Exception e){System.out.println(e.toString());return false;}}public static void main(String args[]){try{reg newreg = new reg();System.out.println(newreg.reg("sssssssss","ssssss","ssssss","imagebear@"));DBConn myconn = new DBConn();myconn.executeQuery("select * from tbl_user");while(myconn.rs_next()){System.out.println(myconn.rs_getInt("id") + " " + myconn.rs_getString("name") + " " + myconn.rs_getString("pwd") + " " + myconn.rs_getString("email"));}System.out.println(newreg.getID());}catch(Exception e){System.err.println(e.toString());}}};说明:1、该bean文件应和上文所述DBConn.class文件放于同一目录下2、本例主要研究注册的过程,其中的Email检测等方法并不完善,若要应用请自行设计方法四、编写用户登陆的Servlet:login.java//login.java//import required classesimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.sql.*;//class loginpublic class login extends HttpServlet{public void doGet(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException{String username = req.getParameter("username");String password = req.getParameter("password");if(this.checklogin(username,password)){Cookie mylogin = new Cookie("username",username);mylogin.setVersion(1);mylogin.setPath("/");mylogin.setComment("Your login username");res.addCookie(mylogin);}//Cookie[] myCookies = req.getCookies();//String nameValue = this.getCookieValue(myCookies,"username","not found"); //PrintWriter out = res.getWriter();//out.println("username" + ":" + nameValue);//out.println("Test Cookie Success!");res.sendRedirect("/index.jsp");}public void doPost(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException{doGet(req,res);}public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue){for(int i=0;i<cookies.length;i++) {Cookie cookie = cookies[i];if (cookieName.equals(cookie.getName()))return(cookie.getValue());}return(defaultValue);}public boolean checklogin(String username,String password){try{DBConn loginConn = new DBConn();loginConn.executeQuery("select * from tbl_user where name=" + username + ""); if(loginConn.rs_next()){System.out.println("Connection created!");if(loginConn.rs_getString("pwd").trim().equals(password)){System.out.println(loginConn.rs_getString("name"));return true;}else{return false;}}System.out.println("Test Login Success!");return false;}catch(Exception e){System.out.println(e.toString());return false;}}public static void main(String args[]){login mylogin = new login();System.out.println(mylogin.checklogin("shandong","shandong"));}}说明:1、默认的jdk1.4中并没有servlet包,请至sun公司网页下载servlet.jar,放至jdk目录下的jre¥lib¥目录下,并在JCreator中设置jdk处添加servlet.jar包2、本Servlet用于检验用户名和密码,若正确则将用户名写入Cookie,完成后将当前页重定向到index.jsp页五、编写检测用户是否已经登陆的bean:checkLogin.java//checkLogin.java//import required classesimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;//class checkLoginpublic class checkLogin{public String username = "";public boolean check(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException{String cookieName = "username";Cookie[] myCookies = req.getCookies();ername = this.getCookieValue(myCookies,cookieName,"not found"); PrintWriter out = res.getWriter();if(ername != null){//out.println("早上好," + ername + "!");return true;}else{out.println("登陆失败!");return false;}}public String getUserName(){return ername;}public static String getCookieValue(Cookie[] cookies,String cookieName,String defaultValue){for(int i=0;i<cookies.length;i++) {Cookie cookie = cookies[i];if (cookieName.equals(cookie.getName()))return(cookie.getValue());}return(defaultValue);}}说明:此bean检测cookie中的username,若不为空则说明已登录,反之说明没有登录。

合集下载

(完整版)JSP登陆页面代码

(完整版)JSP登陆页面代码
response.sendRedirect("login.htm");
}
%>
如果输入信息有误,则回到登录页面,重新输入登录信息。
注册页面:reg.jsp
请输入您的注册信息:
<table>
<form action="/user/Reg" method="post" name="regform" onsubmit="return regconfirm();">
session.setAttribute("login","ok");
session.setMaxInactiveInterval(-1);
%>
<jsp:forward page="main.jsp"/>
<%
}else{
out.println("用户名或密码输入错误!");
}
%>
如果登录成功,则设定login的值为ok,提交到下一步验证页面,则进入main.jsp页面,否则,如果输入的用户名和密码不合法就打印错误信息,main.jsp页面代码如下:
<tr><td>密码:</td><td><input type="password" name="user_pwd" id="user_pwd" size="20" maxlength=10 onBlur="checkPWD();">*可以包含字母数字(区分大小写),6-10位</td>

Jsp学生信息管理系统登录验证全代码

Jsp学生信息管理系统登录验证全代码

1.jsp登录界面Login.jsp<%page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>用户登录界面</title></head><form action="LoginServlet"method="post"><body bgcolor="blue"><marquee direction="right"onmouseover="stop()" onmouseout="start()"style="font-family: 楷体_GB2312"><p><font size="10px"color="red">学生信息信息管理系统</font></p></marquee><table align=center width="237"><tr><td><table width=100%><tr><td colspan=6><font size=2><div id="b2bContent"style="FILTER: revealTrans(Duration = 1, Transition = 23); WIDTH: 100%; HEIGHT: 162px"></div></font></td></tr><tr><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt0"onclick="javascript:showPage(0);clearTimeout(theT imer);theTimer=setTimeout('turnPage()',speed);check Bt();">1</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt1"onclick="javascript:showPage(1);clearTimeout(theT imer);theTimer=setTimeout('turnPage()',speed);checkBt();">2</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt2"onclick="javascript:showPage(2);clearTimeout(theT imer);theTimer=setTimeout('turnPage()',speed);check Bt();">3</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt3"onclick="javascript:showPage(3);clearTimeout(theT imer);theTimer=setTimeout('turnPage()',speed);check Bt();">4</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt4"onclick="javascript:showPage(4);clearTimeout(theT imer);theTimer=setTimeout('turnPage()',speed);check Bt();">5</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt5"onclick="javascript:showPage(5);clearTimeout(theT imer);theTimer=setTimeout('turnPage()',speed);check Bt();">6</div></font></td></tr></table><script language="javascript">b2bStr = new Array();b2bStr[0]= "<div style='float:left; width:100%;overflow:hidden;'><a href=1.gif target=_blank><img src=1.gif width=214px height=145px border=0></a><br><a target=_blank title=太阳岛公园一角href=1.gif>太阳岛公园一角</a></div>";width:100%;overflow:hidden;'><a href=2.gif target=_blank><img src=2.gif width=214px height=145px border=0></a><br><a target=_blank title=太阳岛公园湖光山色href=2.gif>太阳岛公园湖光山色</a></div>";b2bStr[2] = "<div style='float:left; width:100%;overflow:hidden;'><a href=3.gif target=_blank><img src=3.gif width=214px height=145px border=0></a><br><a target=_blank title=雪雕href=3.gif>雪雕</a></div>";b2bStr[3] = "<div style='float:left; width:100%;overflow:hidden;'><a href=4.gif target=_blank><img src=4.gif width=214px height=145px border=0></a><br><a target=_blank title=镜泊湖href=4.gif>镜泊湖</a></div>";b2bStr[4] = "<div style='float:left; width:100%;overflow:hidden;'><a href=5.gif target=_blank><img src=5.gif width=214px height=145px border=0></a><br><a target=_blank title=太阳岛公园瀑布href=5.gif>太阳岛公园瀑布</a></div>";width:100%;overflow:hidden;'><a href=6.gif target=_blank><img src=6.gif width=214px height=145px border=0></a><br><a target=_blank title=镜泊湖夜色href=6.gif>镜泊湖夜色</a></div>";var page=0;var speed=3000;function showPage(id){page=id;setTransition();b2bContent.innerHTML=b2bStr[id];b2bContent.filters.revealTrans.play();}function turnPage(){showPage(page);theTimer=setTimeout("turnPage()", speed);checkBt();page++;if(page>=6) page=0;}function checkBt(){for(var i=0;i<6;i++){btObj=eval('bt'+i);if(page==i){btObj.style.color='#FFFFFF';btObj.styl e.backgroundColor='#FF781C';}else{btObj.style.color='#000000';btObj.style.backg roundColor='#F7F7F7';}}}function setTransition(){b2bContent.filters.revealTrans.Transition=Math.rou nd(Math.random()*23);b2bContent.filters.revealTrans.apply();}turnPage();</script></TD></TR></table><hr color="green"width="540"><table align="center"><tr><td>用户名:<input type="text" name="username"size="8"maxlength="6"></td> </tr><tr><td>密&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="password"name="password"size="10" maxlength="6"></td></tr><tr><td><input type="submit"value="登录">&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset"value="取消"></td></tr></table></form></body></html>2.java代码(1)User.Java 定义的属性和数据库中的字段相对应package .softeem.dt;public class User {private int id;private String username;private String password;private String xh;private String college;public int getId(){return id;}public void setId(int id){this.id = id;}public String getUsername() {return username;}public void setUsername(String username) { ername = username;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getXh() {return xh;}public void setXh(String xh) {this.xh = xh;}public String getCollege() {return college;}public void setCollege(String college) { this.college = college;}}(2)UserDAO.java 操作数据库tb_user,验证用户登录package .softeem.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import .softeem.db.DBManager;import er;public class UserDAO {/***验证用户登录*return*/public boolean checkDenglu(User user) {boolean flag = false;// 获得数据库连接Connection conn = DBManager.getConnection();// 用select * from查询数据库中的所有字段String sql = "select count(*) from tb_user where username=? and password=?";try {PreparedStatement pst = conn.prepareStatement(sql);pst.setString(1, user.getUsername());pst.setString(2, user.getPassword());// 执行查询语句,拿到结果集ResultSet rs = pst.executeQuery();while (rs.next()) {int count = rs.getInt(1);//用count和0比较,若大于0表示该用户存在,否则不存在if(count > 0){flag = true;}}} catch (SQLException e) {e.printStackTrace();}return flag;}}3.LoginServlet,点击登录跳转到服务器端package .softeem.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import erDAO;import er;/*** Servlet implementation class LoginServlet*/public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L;/*** see HttpServlet#HttpServlet()*/public LoginServlet() {super();}/*** see HttpServlet#doGet(HttpServletRequestrequest, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {super.doGet(request, response);}/*** see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取表单数据//处理乱码request.setCharacterEncoding("utf-8");String username = request.getParameter("username");String password = request.getParameter("password");//封装到user对象中User user = new User();user.setUsername(username);user.setPassword(password);//调用dao的checkLogin方法UserDAO dao = new UserDAO();boolean flag = dao.checkLogin(user);String message = null;String path = null;if(flag){message = "登录成功";path="success.jsp";request.getSession().setAttribute("user", user);}else{message ="对不起密码错误,请重新输入!";path="fail.jsp";}//response返回messageresponse.setCharacterEncoding("utf-8");response.getWriter().write(message);*///属于服务器跳转,浏览器地址栏没有发生改变request.getRequestDispatcher(path).forward(reque st,response);}}。

jsp+dao+bean+servlet(MVC模式)实现简单用户登录和注册页面

jsp+dao+bean+servlet(MVC模式)实现简单用户登录和注册页面

jsp+dao+bean+servlet(MVC模式)实现简单⽤户登录和注册页⾯⽬录功能介绍前期⼯作准备创建数据库Bean封装的数据信息Dao对数据库进⾏操作实现登录页⾯三个页⾯处理实现注册页⾯功能演⽰总结功能介绍本项⽬通过使⽤jsp和servlet实现简单的⽤户登录。

主要逻辑为:如果⽤户不存在,则⾸先进⾏注册(注册信息同步到数据库中)。

进⾏注册后,可进⼊登录页⾯对账号进⾏登录。

如果账号存在,则正确跳转到欢迎界⾯,否则提⽰⽤户账号信息输⼊错误。

⽤户进⾏登录页⾯时需要填写验证码同时可勾选是否两周内免登陆。

⽤户进⼊欢迎界⾯,则会显⽰这是⽤户第⼏次登录,如果不是第⼀次登录则会显⽰上次登录时间。

如果⽤户直接进⼊welcome,(没有进⾏登录,直接打开welcome.jsp)则会跳转到登录页⾯,防⽌⾮法登录。

前期⼯作准备1.安装了Tomcat并可以成功使⽤。

2.由于需要与数据库连接,本项⽬使⽤的是mysql数据库,需要引⼊mysql-connector-java-5.1.9.jar包(可在官⽅下载或者通过maven引⼊mysql依赖),需要注意mysql-connector-java-5.1.9.jar 需要放在C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext路径下,否则会出现连接数据库异常。

引⼊maven依赖:<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency>创建数据库如果在DOS窗⼝下创建表的话则应该加上ENGINE=InnoDB DEFAULT CHARSET=utf-8:表⽰可以添加中⽂字符,否则直接添加中⽂字符会出现乱码。

JSP登陆界面

JSP登陆界面

用Jsp做的一个简单的登陆界面,连接Mysql,数据库名字为school,表为user。

主要分为四个Jsp界面:index.jsp登陆界面,check.jsp检验页面,main.jsp登陆成功界面,error.jsp登陆失败界面。

如下所示:<%@page language="java"import="java.util.*" pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>登陆界面</title></head><body><br><br><br><br><br><br><br><br><center><form action="check.jsp"method="post"><table width="380"border="2"bgcolor="#95BDFF"><tr><td><br><h1>&nbsp &nbsp &nbsp 欢迎光临,请登陆</h1></td></tr><tr><td><br>&nbsp &nbsp &nbsp &nbsp 用户名字: &nbsp<input name="username"type="text" size="28"><br><br>&nbsp &nbsp &nbsp &nbsp 用户密码 : &nbsp<input name="userpass"type="password" size="29"><br><br>&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp<input type="submit"name="submit"value="提交"style="height:30px;width:80px">&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp<input type="reset"name="reset"value="取消"style="height:30px;width:80px"><br>&nbsp</td></tr></table></form></center></body></html><%@page language="java"import="java.sql.*" pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;UTF-8"><title>登陆界面</title></head><body><%String username = new String(request.getParameter("username").getBytes("ISO-8859-1") ,"utf-8");String password = new String(request.getParameter("userpass").getBytes("ISO-8859-1") ,"utf-8");session.setAttribute("name",username);Connection dbconn = null;Statement stmt = null;ResultSet rs = null;if(username.equals("")){response.sendRedirect("index.jsp");}try{String driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/school";String user = "sa";String Password = "123";Class.forName(driver);dbconn = DriverManager.getConnection(url, user, Password);stmt = dbconn.createStatement();String sql1 = "select * from user where username='"+username+"'";rs = stmt.executeQuery(sql1);if(rs.next()){//String sql2 = "select * from user where password='"+password+"'";//rs = stmt.executeQuery(sql2);//判断用户密码是否正确String userpass = rs.getString("password");if(userpass.equals(password)){response.sendRedirect("main.jsp");}else{response.sendRedirect("error.jsp");}}else{response.sendRedirect("error.jsp");}}catch(Exception e){e.printStackTrace();}finally{rs.close();stmt.close();dbconn.close();}%></body></html><%@page language="java"import="java.util.*" import="java.text.*"pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>登陆成功界面</title></head><body><h1>登陆成功,<%=session.getAttribute("name")%>欢迎您!</h1><%Date now = new Date();DateFormat mediumDateFormat = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.MEDIUM);%><h2>&nbsp &nbsp &nbsp &nbsp<%out.println(mediumDateFormat.format(now));%></h2> </body></html><%@page language="java"import="java.util.*" pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>登陆失败界面</title></head><body><h1>登陆失败,您输入的用户名或者密码不正确!</h1></body></html>。

JSP制作简单登录界面实例

JSP制作简单登录界面实例

JSP制作简单登录界⾯实例现在很多web项⽬都能⽤到登录界⾯,本⽂介绍⼀下JSP制作简单登录界⾯,分享给⼤家,具体如下:运⾏环境eclipse+tomcat+MySQL 不知道的可以参考项⽬列表这⾥我先把jsp⽂件先放在Web-INF外⾯访问1.需要建⽴的⼏个⽂件在图上.jsp2.还要导⼊MySQL的jar包mysql-5.0.5.jar,导到WEB-INF中的lib⽂件夹就可以不需要Bulid Path3.开始编写代码:代码演⽰:index.jsp就好像⼀般⽹站的⾸页⼀样感觉,将header.jsp和footer.jsp引⼊其中<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>⾸页</title><style>#nav>ul>li{float:left;margin-left:50px;}#login{clear:both;}</style></head><body><!-- 引⼊header.jsp的头部⽂件 --><%@ include file="header.jsp" %><div id="login"><a href="login.jsp" rel="external nofollow" ><button>登陆</button></a></div><!-- 引⼊footer.jsp的脚部⽂件 --><%@include file="footer.jsp" %></body></html>header.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><div id="nav"><ul><li ><a href="">导航1</a></li><li><a href="">导航2</a></li><li><a href="">导航3</a></li><li><a href="">导航4</a></li><li><a href="">导航5</a></li><li><a href="">导航6</a></li></ul></div>footer.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><div><p>xxxxxxxxxxx可以试试|xxxxxxxxxxxx技术有限公司</p><p>京 ICP 证 1234567 号|Copyright © 1999-2017, All Rights Reserved </p></div>页⾯内容展⽰:login.jsp登陆⽤户名密码填写界⾯<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登陆页⾯</title></head><body><%--表单--%><fieldset><legend>登陆界⾯</legend><form action="test.jsp" method="post"><input type="text" name="username"><br><input type="password" name="password"><br><input type="submit" value="登陆"><!-- EL语句,后⾯验证表单时,验证错误反回信息-->${error}</form></fieldset></body></html>内容显⽰:test.jsp 是对表单login.jsp 的提交的内容与数据库中的数据对⽐验证,再相应的跳转<%@page import="java.sql.*"%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%//请求获取login.jsp的⽤户名username的值String username=request.getParameter("username");//请求获取login.jsp的密码password的值String password=request.getParameter("password");//数据库MySQL的地址String DBURL="jdbc:mysql://localhost:3306/zhou?useUnicode=true&characterEncoding=utf-8";String DBName="root"; //登⼊⽤户名String DBPwd="123456";//登⼊密码//加载mysql驱动Class.forName("com.mysql.jdbc.Driver");//连接数据库Connection conn=DriverManager.getConnection(DBURL,DBName,DBPwd);//创建Statement对象Statement st=conn.createStatement();//sql语句,搜索这个username和password在数据库是否存在String sql="select * from user where name='"+username+"'and pwd='"+password+"'";//运⾏sql语句,并把得到的结果放⼊结果集ResultSet中ResultSet rs=st.executeQuery(sql);//判断这个结果集是否存在,⼀般username只有⼀个if(rs.next()){//设置⼀个username,将后⾯username其内容赋值给前⾯⼀个username,可以以便下⼀个页⾯使⽤request.setAttribute("username", username);//跳转页⾯到userpage.jsprequest.getRequestDispatcher("userpage.jsp").forward(request, response);}else{//设置⼀个error,将后⾯的字赋给这个error,以便先⼀个跳转页⾯的使⽤,request的作⽤域有限request.setAttribute("error", "⽤户名或密码错误");request.getRequestDispatcher("login.jsp").forward(request, response);}conn.close();rs.close();%>登陆错误显⽰的页⾯内容:userpage.jsp这个页⾯就是登陆成功之后显⽰的页⾯<%@page import="javafx.scene.chart.PieChart.Data"%><%@page import="java.util.Date"%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>⽤户界⾯</title></head><body><div><!-- ${username}是获取到test.jsp 中判断中重新设置的username,知道是谁登陆了,这个是谁的页⾯ --> <p>${username},你好,登陆成功!!</p></div><%//session的作⽤域问题,可以记录⼀个⽹站的浏览量。

jsp登录界面

jsp登录界面

大连科技学院JSP大作业报告题目QQ登陆系统学生姓名李易霖专业班级计算机10-1 指导教师史原职称讲师所在单位大连科技学院教研室主任刘瑞杰完成日期 2013年5月22日目录1.总体设计 (1)1.1本系统的主要功能 (1)1.2系统包含的类及类之间的关系 (1)1.3 jsp源文件及其功能 (2)2.详细设计 (2)2.1主类Query.java (2)2.2类AddBean.java (3)3.运行效果 (4)3.1 系统主界面 (4)3.2 各功能界面 (4)参考文献 (7)附录1 软件源程序 (8)课程设计实践总结: (11)1.总体设计1.1本系统的主要功能这个系统仿造了QQ登录界面,可以实现注册帐号,帐号登录与修改密码功能。

注册帐号时要输入姓名,年龄,密码等信息。

注册完毕后返回登录界面输入帐号密码即可登录。

登录后可以通过旧密码来修改新密码。

1.2系统包含的类及类之间的关系本系统共包括2个java源文件。

如图1-1所示。

图1-1Bean之间的关系1.3 jsp源文件及其功能1.AddBean.java该文件用于添加用户编号、密码、年龄、名字等数据。

2.Query.java该文件为查询用户信息文件3. login.jsp该文件为返回登录页面。

4.register.jsp该文件为注册帐号界面。

5.update.jsp该文件为修改密码界面。

2.详细设计2.1主类Query.java(1(22.2类AddBean.java(1(23.运行效果3.1 系统主界面图3-1系统主窗口3.2 各功能界面图3-2 注册帐号界面图3-3数据库界面图3-4输入个人信息图3-5注册成功界面图3-6 修改密码界面参考文献[1] 张新曼《精通JSP-WEB开发技术与典型应用》人民邮电出版本社2007年2月[2] 邹竹彪《JSP网络编程从入门到精通》清华大学出版社2007年6月[3] 李伟琦《JSP程序开发实用技术》人民邮电出版社,2008.5[4] 张阳等《Java Web开发实践教程----从设计到实现》,清华大学出版社,2008.9[5] 刘彬编著,JSP数据库高级教程,清华大学出版社,2006附录1 软件源程序1.AddBean.java<%@ page contentType="text/html;charset=GB2312" %><%@ page import="tom.jiafei.A" %><jsp:useBean id="A" class="tom.jiafei.A" scope="request"/><HTML><BODY bgcolor=yellow><FONT Size=3><%String str1=request.getParameter("secret");String str2=request.getParameter("resecret");String str3=request.getParameter("name");String str4=request.getParameter("age");String str5=request.getParameter("number");if(str1.length()==0||str2.length()==0||str3.length()==0||str4.length()== 0 ){response.sendRedirect("regsiter.jsp");}else{ A.setNumber(str5);A.setSecret(str1);A.setName(str3);A.setAge(str4);int a=A.addMessage();if(a>0){ out.println("注册成功"+"<BR>");}}%><A href="login.jsp">返回登录界面</A></BODY></HTML>2.Query.java<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=yellow><%@ page import="tom.jiafei.C" %><jsp:useBean id="C" class="tom.jiafei.C" scope="request"/><%String str1=request.getParameter("secret");String str2=request.getParameter("newsecret");String str3=request.getParameter("renewsecret");if(str1.length()==0||str2.length()==0||str3.length()==0){response.sendRedirect("update.jsp");}else{C.setSecret(str1);C.setNewsecret(str2);int n=C.update();if(n>0){out.println("修改成功"+"<BR>");}elseout.println("密码错误,请重新输入"+"<BR>");}%><A href="login.jsp">返回登录界面</A><BR><A href="update.jsp">返回密码修改界面</A></BODY></HTML>3. ReadFiles.Java<%@ page contentType="text/html;charset=GB2312" %><%@ page import="tom.jiafei.B" %><%@ page import= "java.sql.*" %><jsp:useBean id="B" class="tom.jiafei.B" scope="request"/><HTML><BODY bgcolor=yellow><FONT Size=3><%String str1=request.getParameter("number");String str2=request.getParameter("password");if(str1.length()==0||str2.length()==0){response.sendRedirect("login.jsp");}else{ B.setNum(str1);B.setSec(str2);String b=B.queryResult();if(b!=null){response.sendRedirect("main.jsp");}elseout.println("请输入正确的帐号和密码"+"<BR>"); }%><A href="login.jsp">返回登录界面</A></BODY></HTML>课程设计实践总结:。

JSP-简单的登录实现

application.setAttribute("count", new Integer(0));}
Integer c1 = (Integer) application.getAttribute("count"), c2 = new Integer(
c1.intValue() + 1);
application.setAttribute("count", c2);
String username = request.getParameter("username");
String password = request.getParameter("password");
String id = request.getParameter("id");
String authcode = request.getParameter("authcode");
<tr><td colspan="2" align="center"><input type="submit" value="LOGIN" />
</td></tr>
</table></form>
......
Welcome.jsp:
<%
if (((String)request.getParameter("submit"))!=null) {
......
<%
if (((String) request.getParameter("submit")) != null) {

jsp+servlet实现简单登录页面功能(附demo)

jsp+servlet实现简单登录页⾯功能(附demo)⽬录实现功能:开发环境:预备知识:1.登录界⾯login.jsp:2.登录成功界⾯hello.jsp:3.登录失败信息回显Login.jsp:思路简述:具体代码Code:实现功能:模拟简单登录功能,登录成功跳转新页⾯,登录失败在原登录界⾯提⽰登录失败信息开发环境:eclipseTomcat-8.0预备知识:HTML标签,Servlet相关知识——请求的转发与重定向,jsp相关知识,EL表达式思路实现:共2个jsp,⼀个servlet1.登录界⾯login.jsp:采⽤jsp,不采⽤html的原因是因为要进⾏登录失败信息回显(当然如果⽤html结合ajax也可以实现,这⾥采⽤jsp更⽅便)如图:2.登录成功界⾯hello.jsp:欢迎信息+登录的⽤户名如图:3.登录失败信息回显Login.jsp:如图:思路简述:问题1:jsp页⾯如何与⼀个java类进⾏连接绑定起来?简单的说,⼀个jsp页⾯要跟⼀个servlet进⾏连接,需要有⼀个桥梁,这个桥梁就是web.xml⽂件,可以通过下⾯代码观察到,登录页⾯的表单的提交的action属性值,填写的就是在web.xml⽂件⾥对应的servlet-mapping中的url-pattern的值,⽽这个值⼜对应了⼀个servlet-name,servlet-name则对应到⼀个servlet-class,这样就把jsp和java类(servlet类)进⾏了关联。

其实我觉得最明显的就是提交表单后,url地址变化了,通过这个url地址将表单信息传给了对应的java类。

问题2:实现的整体的思路是怎么样的?⼀个jsp页⾯通过表单元素,将⽤户信息通过url的形式提交给⼀个已经在web.xml配置映射好的servlet类,servlet类接收到传来的表单信息,进⾏值校验(为了⽅便起见则直接定义⽤户名密码了,正常情况下是要采⽤jdbc进⾏从数据库中取出值进⾏校验的),然后对校验结果进⾏判断,如果账户密码正确,则跳转到登录成功的页⾯(采⽤重定向),如果失败,则将登录失败的提⽰信息存到request域对象中并返回登录界⾯显⽰出来(采⽤请求的转发)简单的联系:jsp页⾯<---------->web.xml<--------->servlet类问题3:在servlet中要如何获取jsp中提交过来的表单信息呢?request.getParameter("userName");//userName是表单中,input标签中name属性的值,接收到的是string类型问题4:登录页⾯如何在登录失败的时候给出提⽰信息呢?实现思路是如果登录失败,则往request域对象中存⼊登录失败的提⽰信息,然后通过请求的转发的⽅式跳转回登录页⾯并显⽰,所以登录界⾯要嵌⼊⼀段脚本代码,⽤来判断当前是否有登录失败提⽰信息的对象,如果有则将该对象保存的信息打印出来,如果没有则什么都不显⽰。

使用jsp做一个联接数据库的用户登录界面


</label> <label> &nbsp;&nbsp;&nbsp;<input name="reset" type="reset" id="reset" value="取消" /> </label></td> </tr> </table> </form> </tr> </table> </body> </html> 验证用户输入信息是否合法(数据库中有无此用户的信息),代码文件 如下所示(login.jsp): <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@ include file="conn.jsp"%> <html> <body> <% ResultSet rs1; String sqlstr; String name=tc(request.getParameter("name")); String pw=tc(request.getParameter("pw")); if((name!=null&&name.length()!=0)&& (pw!=null&&pw.length()!=0)){ sqlstr="select* from info where(name='"+name+"'and password='"+pw+"')"; rs1=stmt.executeQuery(sqlstr); if(rs1.next()) { response.sendRedirect("index1.jsp"); } else{ out.println("<SCRIPT language=javascript>alert('用户名或 密码不正确,请重新输入!'); window.location='index.jsp'; </script>"); } else

JSP实现用户登录、注册和退出功能

JSP实现⽤户登录、注册和退出功能本⽂讲述使⽤JSP实现⽤户登录,包括⽤户登录、注册和退出功能等。

1.系统⽤例图2.页⾯流程图3.数据库设计本例使⽤oracle数据库创建⽤户表包括id,username,password和email,共4个字段-- Create tablecreate table P_USER(id VARCHAR2(50) not null,username VARCHAR2(20),password VARCHAR2(20),email VARCHAR2(50))tablespace USERSpctfree 10initrans 1maxtrans 255storage(initial 64minextents 1maxextents unlimited);-- Add comments to the tablecomment on table P_USERis '⽤户表';-- Add comments to the columnscomment on column P_USER.idis 'id';comment on column P_ernameis '⽤户名';comment on column P_USER.passwordis '密码';comment on column P_USER.emailis 'email';4.页⾯设计4.1登录页⾯login.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>登录页⾯</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="login_action.jsp" method="post"><table><tr><td colspan="2">登录窗⼝</td></tr><tr><td>⽤户名:</td><td><input type="text" name="username" /></td></tr><tr><td>密码:</td><td><input type="text" name="password" /></td></tr><tr><td colspan="2"><input type="submit" value="登录" /> <a href="register.jsp">注册</a></td></tr></table></form></body></html>页⾯效果4.2登录逻辑处理页⾯login_action.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ page import="java.sql.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%String username = request.getParameter("username");String password = request.getParameter("password");if(username==null||"".equals(username.trim())||password==null||"".equals(password.trim())){//out.write("⽤户名或密码不能为空!");System.out.println("⽤户名或密码不能为空!");response.sendRedirect("login.jsp");return;//request.getRequestDispatcher("login.jsp").forward(request, response);}boolean isValid = false;Connection con = null;// 创建⼀个数据库连接PreparedStatement pre = null;// 创建预编译语句对象,⼀般都是⽤这个⽽不⽤StatementResultSet result = null;// 创建⼀个结果集对象try{Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序//System.out.println("开始尝试连接数据库!");String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:orcl";// 127.0.0.1是本机地址,orcl是Oracle的默认数据库名String user = "scott";// ⽤户名,系统默认的账户名String pwd = "tiger";// 你安装时选设置的密码con = DriverManager.getConnection(url, user, pwd);// 获取连接// System.out.println("连接成功!");String sql = "select * from p_user where username=? and password=?";// 预编译语句,“?”代表参数pre = con.prepareStatement(sql);// 实例化预编译语句pre.setString(1, username);// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引pre.setString(2, password);// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引result = pre.executeQuery();// 执⾏查询,注意括号中不需要再加参数if (result.next()){isValid = true;}}catch (Exception e){e.printStackTrace();}finally{try{// 逐⼀将上⾯的⼏个对象关闭,因为不关闭的话会影响性能、并且占⽤资源// 注意关闭的顺序,最后使⽤的最先关闭if (result != null)result.close();if (pre != null)pre.close();if (con != null)con.close();//System.out.println("数据库连接已关闭!");}catch (Exception e){e.printStackTrace();}}if(isValid){System.out.println("登录成功!");session.setAttribute("username", username);response.sendRedirect("welcome.jsp");return;}else{System.out.println("登录失败!");response.sendRedirect("login.jsp");return;}%>使⽤JDBC连接数据库,如果⽤户名或密码为空时,还是跳转到登录页⾯login.jsp如果⽤户名和密码不为空,进⾏连接数据库查询⽤户表,如果能够查询到记录,表⽰登录成功,将⽤户信息保存到session,跳转到欢迎页⾯welcome.jsp如果根据⽤户名和密码查询不到记录,表⽰登录失败,重新跳转到登录页⾯login.jsp4.3欢迎页⾯welcome.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'welcom.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><table><tr><td><img src="images/logo4.png" /></td><td><img src="images/logo2.png" height="90" /></td></tr><tr><td colspan="2"><hr /></td></tr><tr><td><table><tr><td><a>Main</a></td></tr><tr><td><a>Menu1</a></td></tr><tr><td><a>Menu2</a></td></tr><tr><td><a>Menu3</a></td></tr><tr><td><a>Menu4</a></td></tr><tr><td><a>Menu5</a></td></tr><tr><td><a>Menu6</a></td></tr><tr><td><a>Menu7</a></td></tr><tr><td><a>Menu8</a></td></tr></table></td><td><form action="loginout.jsp" method="post"><table><tr><td colspan="2">登录成功!</td></tr><tr><td>欢迎你,</td><td>${username }</td></tr><tr><td colspan="2"><input type="submit" value="退出" /></td></tr></table></form></td></tr></table></body></html>使⽤EL表达式展⽰⽤户信息效果4.4欢迎页退出逻辑处理页⾯loginout.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'loginout.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><%session.removeAttribute("username");response.sendRedirect("login.jsp");%></body></html>将session的⽤户信息移除,跳转到登录页⾯login.jsp4.5注册页⾯register.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>注册页⾯</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="register_action.jsp" method="post"><table><tr><td colspan="2">注册窗⼝</td></tr><tr><td>⽤户名:</td><td><input type="text" name="username" /></td></tr><tr><td>密码:</td><td><input type="text" name="password1" /></td></tr><tr><td>确认密码:</td><td><input type="text" name="password2" /></td></tr><tr><td>email:</td><td><input type="text" name="email" /></td></tr><tr><td colspan="2"><input type="submit" value="注册" /> <a href="login.jsp">返回</a></td></tr></table></form></body></html>当在登录页⾯点击“注册“时打开⽤户注册页⾯效果4.6注册逻辑处理页⾯register_action.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page import="java.sql.*" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%String username = request.getParameter("username");String password1 = request.getParameter("password1");String password2 = request.getParameter("password2");String email = request.getParameter("email");if(username==null||"".equals(username.trim())||password1==null||"".equals(password1.trim())||password2==null||"".equals(password2.trim())||!password1.equals(password2)){ //out.write("⽤户名或密码不能为空!");System.out.println("⽤户名或密码不能为空!");response.sendRedirect("register.jsp");return;//request.getRequestDispatcher("login.jsp").forward(request, response);}boolean isValid = false;Connection con = null;// 创建⼀个数据库连接PreparedStatement pre = null;// 创建预编译语句对象,⼀般都是⽤这个⽽不⽤StatementResultSet result = null;// 创建⼀个结果集对象try{Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序//System.out.println("开始尝试连接数据库!");String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:orcl";// 127.0.0.1是本机地址,orcl是Oracle的默认数据库名String user = "scott";// ⽤户名,系统默认的账户名String pwd = "tiger";// 你安装时选设置的密码con = DriverManager.getConnection(url, user, pwd);// 获取连接//System.out.println("连接成功!");String sql = "select * from p_user where username=?";// 预编译语句,“?”代表参数pre = con.prepareStatement(sql);// 实例化预编译语句pre.setString(1, username);// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引result = pre.executeQuery();// 执⾏查询,注意括号中不需要再加参数if (!result.next()){sql = "insert into p_user(id,username,password,email) values(?,?,?,?)";// 预编译语句,“?”代表参数pre = con.prepareStatement(sql);// 实例化预编译语句pre.setString(1, System.currentTimeMillis()+"");// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引pre.setString(2, username);// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引pre.setString(3, password1);// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引pre.setString(4, email);// 设置参数,前⾯的1表⽰参数的索引,⽽不是表中列名的索引pre.executeUpdate();// 执⾏isValid = true;}}catch (Exception e){e.printStackTrace();}finally{try{// 逐⼀将上⾯的⼏个对象关闭,因为不关闭的话会影响性能、并且占⽤资源// 注意关闭的顺序,最后使⽤的最先关闭if (result != null)result.close();if (pre != null)pre.close();if (con != null)con.close();//System.out.println("数据库连接已关闭!");}catch (Exception e){e.printStackTrace();}}if(isValid){System.out.println("注册成功,请登录!");response.sendRedirect("login.jsp");return;}else{System.out.println("⽤户名已存在!");response.sendRedirect("register.jsp");return;}%>⾸先判断⽤户名和密码是否为空,以及密码和确认密码是否⼀致,如果上述条件不成⽴时,返回到注册页⾯register.jsp如果上述条件成⽴,就根据⽤户名到数据库查询,如果能够查询到记录,说明⽤户名已经存在,返回到注册页⾯register.jsp如果查询不到记录,说明此⽤户名可⽤来进⾏注册,使⽤JDBC向⽤户表插⼊1条记录;之后跳转到登录页⾯login.jsp5.总结本例使⽤JSP实现⽤户登录,编写过程中,主要遇到了2个⼩问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档