本文实例为大家分享了JavaWeb登陆功能的方法,供大家参考,具体内容如下
首先我们要JavaWeb登陆的基本流程:JSP页面发送请求——>Servlet——>Servlet通过调用方法从数据库中得到数据并将结果返回页面。
我们先建立三个jsp页面,包括login.jsp(登陆页面)、index.jsp(显示登陆成功后的信息)、error.jsp(登录失败的页面),其中后两个页面的内容可以随意写,而login.jsp页面的主要内容如下:
<form action="LoginServlet" method="post"> 用户名:<input type="text" name="userName"/> 密码:<input type="password" name="password"/> <input type="submit" value="提交"/> </form>
在login.jsp文件的开头我们需要将pageEncoding="ISO-8859-1"改为pageEncoding="utf-8"(同时不要忘记设置开发工具的编码格式,不然jsp页面会显示乱码)
根据用户名和密码两个属性我们建立相应的实体类,并添加get和set方法,代码如下:
public class User { 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; } }
而jsp页面中的action=“LoginServlet”是指将请求发送到Servlet处理。接下来我们转到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 com.test.dao.UserDao; //创建时为Servlet而不是Class,需要在web.xml中进行配置,配置的代码Myeclipse将自动生成 public class LoginServlet extends HttpServlet { //创建UserDao的对象,以便于查询数据库 UserDao userDao=new UserDao(); //以下doGet方法和doPost方法分别对应form表单中的method="get"和method="post" public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //利用getParameter方法获取到前台文本框中输入的值,其中括号内的内容为<input/>标签中的name属性 String userName=request.getParameter("userName"); String password=request.getParameter("password"); //调用UserDao中的getSelect方法并获取到返回值 boolean flag=userDao.getSelect(userName, password); //若用户名和密码存在则转发到index.jsp页面,否则重定向到error.jsp页面 if (flag) { request.getRequestDispatcher("index.jsp").forward(request, response); } else response.sendRedirect("error.jsp"); } }
注释 中已经说的很明白了,就不再重复了,可以看看第26行和29行,其中26行是转发,29行是重定向,感兴趣的小伙伴可以查查两者的区别。剩下的一部分就是我们之前提到过的关于数据库的查询操作了,我们在23行进行了调用,下面我们完成调用的方法:
package com.test.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class UserDao { //连接数据库的代码 public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=""; String driver="com.mysql.jdbc.Driver"; //其中test为数据库名称 String url="jdbc:mysql://localhost:3306/test"; Connection conn=null; try{ Class.forName(driver); conn=(Connection) DriverManager.getConnection(url,username,password); }catch(Exception e){ e.printStackTrace(); } return conn; } //进行查询的方法,若含有满足条件的数据则返回true public boolean getSelect(String userName,String password) { boolean flag=false; String sql = "select * from user where userName='"+userName+"' and password='"+password+"'"; Connection conn = getCon(); PreparedStatement pst = null; try { pst = (PreparedStatement) conn.prepareStatement(sql); ResultSet rs = pst.executeQuery(); if (rs.next()) { flag=true; } } catch (Exception e) { } return flag; } }
在这个方法中我们首先连接数据库,然后在查询的方法中传入从jsp页面获取到的userName和password,判断数据库中是否存在此用户名和密码的用户,如果存在则返回true,否则返回false(不要忘记导入数据库链接的包)。
至于数据库中的字段则参照实体类User建立即可,即包含userName和password两个属性,如果数据库链接还有问题的请参照之前的关于数据库部分的随笔。
最后看一下web.xml中的配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.test.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> </web-app>
其中<servlet>中的<servlet-name>可以随意写,只需要保证上下两部分相同即可。
然后是<servlet-class>是自己定义的Servlet的路径(包含包名),最后是<url-pattern>,里面的内容也可以随意写,但是jsp页面中form表单的action属性必须与此名称相同(action中不包含"/")
最后我们需要将web项目发布到tomcat中然后在浏览器输入:http://localhost:8080/项目名称/login.jsp就可以进行访问并登陆了。
这只是一个简单的应用,目的是为了帮助各位小伙伴了解jsp+servlet开发的基本流程,当然我们在实际开发的过程中会进行更为精细的分割,包括接口,实现类等。
本文向大家介绍Python telnet登陆功能实现代码,包括了Python telnet登陆功能实现代码的使用技巧和注意事项,需要的朋友参考一下 阅读目录 源码请参考:starnightcyber/scripts 主要使用TelnetClient类,封装了登录和执行命令的基本操作。 源码如下,或请查看:scripts/telnet/telnet.py telnet协议是TCP/IP协
本文向大家介绍ThinkPHP实现简单登陆功能,包括了ThinkPHP实现简单登陆功能的使用技巧和注意事项,需要的朋友参考一下 思路:前台输入账号密码,后台自定义一个函数checkNamePwd()用于验证账号密码正确与否,在控制器里调用,其中,checkNamePwd()方法验证账号密码正确性是首先通过账号查找密码,然后把查找出来的密码和用户输入的密码比较,相同则登陆成功,否则登录失败! 首先在
本文向大家介绍javaweb在线支付功能实现代码,包括了javaweb在线支付功能实现代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了javaweb在线支付功能的具体实现代码,供大家参考,具体内容如下 2.用户确认提交的信息(confirm.jsp) 3.网站获得第三方支付的信息 文件: merchantInfo.properties p1_MerId=10001126856
本文向大家介绍php实现登陆模块功能示例,包括了php实现登陆模块功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现登陆模块功能的方法。分享给大家供大家参考,具体如下: 最近在学习php。学了一点关于登陆的东西,写下来备忘。 新建四个页面,分别命名为: login.php check.php index.php error.php login页面用表单建立一个登陆页面,不多
本文向大家介绍vue router 用户登陆功能的实例代码,包括了vue router 用户登陆功能的实例代码的使用技巧和注意事项,需要的朋友参考一下 有些路由页面需要用户登陆之后才能访问如(用户中心),如果用户没有登陆就访问这些页面的话就应该转换到登陆页面,登陆成功之后在进入该页面。 需要用到的知识点有:H5中的会话存储(sessionStorage)、vue-router路由前置操作、路由元信
本文向大家介绍thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例,包括了thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkphp 5框架实现登陆,登出及session登陆状态检测功能。分享给大家供大家参考,具体如下: 1,访问http://localhost/tp5/admin.php