简封为HttpServlet的用户登录例子、结合jdbc的用户登录例子
来源:互联网 发布:男士形象设计软件 编辑:程序博客网 时间:2024/05/09 09:47
我们先看简封为HttpServlet的用户登录例子
这个小例子对servlet、request进行了小小的封装
需求是:在web.xml中进行配置用户名、密码,然后通过html进行登录,跳转到servlet,通过getServletContext().getInitParameter获取配置信息,然后通过req.getParameter获取请求信息,如果用户名、密码配对正确那么就输出成功即可
首先看配置文件:
<!-- 配置servlet --> <context-param> <param-name>user</param-name> <param-value>wyf</param-value> </context-param> <context-param> <param-name>password</param-name> <param-value>123456</param-value> </context-param> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.safly.LoginServlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping>
然后看一个简单的html界面login.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <form action="loginServlet" method="post"> user:<input type="text" name="user" /> password:<input type="text" <input type="submit" value="Submit" /> </form></body></html>
MyGenericServlet
package com.safly;import java.io.IOException;import java.util.Enumeration;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public abstract class MyGenericServlet implements Servlet, ServletConfig { public void destroy() { } public ServletConfig getServletConfig() { return servletConfig; } public String getServletInfo() { return null; } private ServletConfig servletConfig; public void init(ServletConfig config) throws ServletException { this.servletConfig = config; init(); } private void init() throws ServletException { } public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; //以下是ServletConfig的实现方法 public String getInitParameter(String arg0) { return servletConfig.getInitParameter(arg0); } public Enumeration getInitParameterNames() { return servletConfig.getInitParameterNames(); } public ServletContext getServletContext() { return servletConfig.getServletContext(); } public String getServletName() { return servletConfig.getServletName(); }}
MyHttpServlet
package com.safly;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class MyHttpServlet extends MyGenericServlet { public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { if (req instanceof HttpServletRequest) { HttpServletRequest request = (HttpServletRequest) req; if (res instanceof HttpServletResponse) { HttpServletResponse response = (HttpServletResponse) res; service(request, response); } } } public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String method = req.getMethod(); if ("GET".equalsIgnoreCase(method)) { doGet(req, res); } else if ("POST".equalsIgnoreCase(method)) { doPost(req, res); } } public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException { } public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { }}
LoginServlet2
package com.safly;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServlet2 extends MyHttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException { String username = req.getParameter("user"); String password = req.getParameter("password"); String initUser = getServletContext().getInitParameter("user"); String initPassword = getServletContext().getInitParameter("password"); PrintWriter pw = res.getWriter(); if (initUser.equals(username) && initPassword.equals(password)) { pw.print("Helloo:" + username); } else { pw.print("Sorryy:" + username); } }}
进行调试:
http://localhost:8080/day01/login.html
输入wyf,123456
然后浏览器输出 Helloo:wyf 说明校验正确
如果输出错误输出 Sorryy:www(用户名输入的是www)
http://localhost:8080/day01/loginServlet
结合jdbc的用户登录例子
总体流程就是创建一个user数据库,里面存有用户登录的姓名、密码
然后通过html页面进行登录,跳转到servlet,通过req.getParameter获取对应的值,构建sql语句,jdbc进行数据库链接,去查询数据库是否有用户信息,如果有的话,就输出登录成功即可
以上就是创建mydatabase数据库,然后创建user表,字段有username、password
再看代码之前,由于jdbc是数据库连接池,所以有些方法需要用到mysql-connector-java-5.1.7-bin.jar
直接丢在WEB-INF-lib下即可
我们还是先来看web.xml配置信息:
<!-- 配置servlet --> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.safly.LoginServelt3</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping>
接下来就就看html界面的东东,就一个用户名,密码框
<form action="loginServlet" method="post"> user:<input type="text" name="username" /> password:<input type="text" name="password" /><br> <input type="submit" value="Submit" /> </form>
然后就是servlet了
package com.safly;import java.io.IOException;import java.io.PrintWriter;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServelt3 extends HttpServlet { public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); System.out.println("username:"+username+",password:"+password); java.sql.Connection connection = null; java.sql.PreparedStatement statement = null; ResultSet resultSet = null; PrintWriter pw = resp.getWriter(); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1:3306/mydatabase"; String user = "root"; String password2 = "root"; connection = DriverManager.getConnection(url, user, password2); String sql = "select count(id) from user where username=? and password=?"; statement = connection.prepareStatement(sql); statement.setString(1, username); statement.setString(2, password); resultSet = statement.executeQuery(); if (resultSet.next()) { int count = resultSet.getInt(1); System.out.println("resultSet.count1:"+count); if (count == 1) { pw.print("hello" + username); } else { pw.print("sorry" + username); } } } catch (Exception e) { e.printStackTrace(); } finally { if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }}
浏览器调试:
http://localhost:8080/day01/login.html
输入wyff、wyf
这说明wyff、wyf在数据库中存在2条记录
这里判断的不严禁
if (count == 1) { pw.print("hello" + username); } else { pw.print("sorry" + username); }
就输出 sorrywyff
- 简封为HttpServlet的用户登录例子、结合jdbc的用户登录例子
- 基于HttpServlet的用户登录网站 实例
- 用户WEB登录小例子
- struts2小例子 登录用户
- java的简单例子之用户登录及其选择
- Java Web开发: 基于HttpServlet的用户登录网站 实例
- 基于socket,实现用户注册,用户登录,以及文件上传的例子
- 使用jdbc实现简单的用户登录
- prototype例子--ajax无刷新用户登录
- FLask-Login 用户登录简单例子
- 一个登录 的例子
- Java面向对象基础--类的设计及分析问题的方法---用户登录例子
- jdbc用户登录
- 简单的用户登录
- 用户登录的学问
- 永远的用户登录
- 用户的登录
- 用户登录的过滤器
- uva 1633 状态dp
- ubuntu12.04配置apue.2e环境
- UVA 10480 - Sabotage (最大流)
- ROS node调用service: ros::service::call/client.call()
- [LeetCode][DS-AL]--297. Serialize and Deserialize Binary Tree(BFS & DFS)
- 简封为HttpServlet的用户登录例子、结合jdbc的用户登录例子
- Entity Framework的查询与操作
- 自定义Toast之WindowManager
- Context的作用意义以及获取上下文context的方式区别
- POJ 2485 Highways(最小生成树)
- [HDU1978]-How many ways
- java abstract类和interface的区别
- 泛型修饰说明
- Gradle Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessExcept