当前位置:   article > 正文

servlet+jsp+MySQL实现简单的页面登陆_jsp+servlet+mysq登录页代码

jsp+servlet+mysq登录页代码

由于对于前端的代码不熟悉,页面登陆界面会比较简陋,请见谅。

本博客为本人自学后自行尝试的实战,若有错误,望指出,不胜感激。


eclipse中,整个项目结构如下:



login.jsp用于登陆,register.jsp用于注册,welcome.jsp为登陆后的界面


linkdb.java主要用来连接数据库,代码如下:

  1. package secondsfj;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4. import com.mysql.jdbc.Connection;
  5. public class linkdb {
  6. public static final String db="com.mysql.jdbc.Driver";
  7. public static final String url="jdbc:mysql://localhost:3306";
  8. public static final String user="root";
  9. public static final String password="9999999";
  10. private Connection conn;
  11. public void linkdatabase()
  12. {
  13. try {
  14. Class.forName(db);
  15. conn=(Connection) DriverManager.getConnection(url,user,password);
  16. } catch (ClassNotFoundException e) {
  17. System.out.println("加载数据库类失败");
  18. } catch (SQLException e) {
  19. System.out.println("连接数据库失败");
  20. }
  21. }
  22. public Connection getconn()
  23. {
  24. return conn;
  25. }
  26. public void close()
  27. {
  28. try {
  29. if(!conn.isClosed())conn.close();
  30. } catch (SQLException e) {
  31. System.out.println("关闭数据库连接失败");
  32. }
  33. }
  34. }

controldb.java主要用于数据库的操作,代码如下:

  1. package secondsfj;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. import com.mysql.jdbc.Statement;
  5. import secondsfj.linkdb;
  6. public class controldb {
  7. private Statement state=null;
  8. private ResultSet res = null;
  9. linkdb deal=new linkdb();
  10. public void dealcontroldb()//连接数据库,创建SQL语句对象
  11. {
  12. try {
  13. deal.linkdatabase();
  14. state=(Statement) (deal.getconn()).createStatement();
  15. } catch (SQLException e) {
  16. System.out.println("创建SQL语句失败");
  17. }
  18. hasdb();
  19. }
  20. void hasdb()//判断数据库是否存在,不存在,进行创建
  21. {
  22. String temp;
  23. boolean x=false;
  24. try {
  25. res=state.executeQuery("show databases;");
  26. while(res.next())
  27. {
  28. temp=res.getString(1);
  29. if(temp.equals("login"))
  30. {
  31. x=true;
  32. break;
  33. }
  34. }
  35. if(x==false)
  36. {
  37. state.execute("create database login;");
  38. state.execute("use login;");
  39. state.execute("create table user (username char(20),password char(20));");
  40. }
  41. } catch (SQLException e) {
  42. System.out.println("controldb中的SQL语句执行失败");
  43. }
  44. }
  45. public boolean verify(String username,String password)//用于验证登陆
  46. {
  47. String usertemp;
  48. String passtemp;
  49. if(username==null||password=="null"||"".equals(username)||"".equals(password)) return false;
  50. try {
  51. state.execute("use login;");
  52. res=state.executeQuery("select * from user");
  53. while(res.next())
  54. {
  55. usertemp=res.getString(1);
  56. if(usertemp.equals(username))
  57. {
  58. passtemp=res.getString(2);
  59. if(passtemp.equals(password)) return true;
  60. }
  61. }
  62. } catch (SQLException e) {
  63. System.out.println("verify中的SQL语句执行失败");
  64. }
  65. return false;
  66. }
  67. public boolean register(String user,String passwd)//用于注册
  68. {
  69. if(user==null||passwd==null||"".equals(user)||"".equals(passwd)) return false;
  70. try {
  71. state.execute("use login;");
  72. state.execute("insert into user(username,password) values("+user+","+passwd+");");
  73. } catch (SQLException e) {
  74. System.out.println("register中的SQL语句执行失败");
  75. return false;
  76. }
  77. return true;
  78. }
  79. public void close()//关闭连接
  80. {
  81. try {
  82. if(!state.isClosed())state.close();
  83. if(!res.isClosed())res.close();
  84. deal.close();
  85. } catch (SQLException e) {
  86. System.out.println("controldb关闭失败");
  87. }
  88. }
  89. }


servletforlogin用于处理登陆界面的post请求,代码如下:

  1. import java.io.IOException;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.annotation.WebServlet;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import secondsfj.controldb;
  8. import secondsfj.linkdb;
  9. @WebServlet(displayName="servletforlogin", urlPatterns={"/servletforlogin"})
  10. public class servletforlogin extends HttpServlet {
  11. private static final long serialVersionUID = 1L;
  12. public servletforlogin() {
  13. super();
  14. }
  15. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  16. // TODO Auto-generated method stub
  17. response.getWriter().append("Served at: ").append(request.getContextPath());
  18. }
  19. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  20. String username=request.getParameter("user");
  21. String password=request.getParameter("password");
  22. controldb temp=new controldb();
  23. temp.dealcontroldb();
  24. boolean x=temp.verify(username, password);
  25. String error=null;
  26. if(x==false)
  27. {
  28. error="用户名或是密码错误";
  29. request.setAttribute("error", error);
  30. request.getRequestDispatcher("login.jsp").forward(request, response);
  31. }
  32. else
  33. {
  34. response.sendRedirect("welcome.jsp");
  35. }
  36. temp.close();
  37. }
  38. }


servletforregister负责注册,代码如下:

  1. import java.io.IOException;
  2. import javax.servlet.ServletException;
  3. import javax.servlet.annotation.WebServlet;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import secondsfj.controldb;
  8. import secondsfj.linkdb;
  9. @WebServlet(displayName="servletforregister",urlPatterns={"/servletforregister"})
  10. public class servletforregister extends HttpServlet {
  11. private static final long serialVersionUID = 1L;
  12. public servletforregister() {
  13. super();
  14. // TODO Auto-generated constructor stub
  15. }
  16. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  17. // TODO Auto-generated method stub
  18. response.getWriter().append("Served at: ").append(request.getContextPath());
  19. }
  20. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  21. String username=request.getParameter("user");
  22. String password=request.getParameter("password");
  23. controldb deal=new controldb();
  24. deal.dealcontroldb();
  25. String error=null;
  26. boolean x=deal.register(username, password);
  27. if(x==false)
  28. {
  29. error="密码或是用户名为空";
  30. request.setAttribute("error", error);
  31. request.getRequestDispatcher("register.jsp").forward(request, response);
  32. }
  33. else response.sendRedirect("login.jsp");
  34. deal.close();
  35. }
  36. }


login.jsp为登陆界面,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="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>
<%
String deal=(String)request.getAttribute("error");
if(deal!=null)
	out.println(deal);
%>
<form action="servletforlogin" method="post">
用户:<input type="text" name="user"/>
<br>
<br>
密码:<input type="password" name="password"/>
<br>
<br>
<input type="submit" value="提交">
</form>
<br>
<br>
<button οnclick="{location.href='/secondsfj/register.jsp'}">注册</button>
</body>
</html>


register.jsp用于注册,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="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>
<%
   String error=(String)request.getAttribute("error");
   if(error!=null)
	   out.println(error);
%>
<form  action="/secondsfj/servletforregister" method="post">
用户:<input type="text" name="user"/>
<br/>
<br/>
密码:<input type="password" name="password"/>
<br/>
<br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>


welcome.jsp为登陆后的界面,代码如下:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. 欢迎!!!!!
  11. </body>
  12. </html>


运行过程如下,先注册后登陆:











若我们登陆时输入错误的用户或密码,会出现错误提示:


注意到url处不为login.jsp,因为我们调用的是forward,此时地址栏的url不会发生改变。


若我们注册时只输入空格或不输入就按提交,会出现如下错误信息


url栏不变原因同上。




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/453451
推荐阅读
相关标签
  

闽ICP备14008679号