JavaWeb-使用者登入案例
阿新 • • 發佈:2018-10-31
使用者登入需要和資料庫進行匹配.
這是資料庫中的表.
id | userame | password | |
1 | Tom | 1234 | [email protected] |
2 | Jerry | 1234 | [email protected] |
登入頁面
<!DOCTYPE html> <html> <head> <title>login.html</title> <meta name="keywords" content="keyword1,keyword2,keyword3"> <meta name="description" content="this is my page"> <meta name="content-type" content="text/html; charset=UTF-8"> </head> <body> <form action="/WEB01/login" method="post"> Username:<input type="text" name="username"><br /> Password:<input type="password" name="password"><br /> <input type="submit" value="Login"><br /> </form> </body> </html>
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_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>WEB13</display-name> <context-param> <param-name>driver</param-name> <param-value>com.mysql.jdbc.Driver</param-value> </context-param> <servlet> <servlet-name>abc</servlet-name> <servlet-class>com.itheima.servlet.QuickStratServlet</servlet-class> <init-param> <param-name>url</param-name> <param-value>jdbc:mysql:///mydb</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>abc</servlet-name> <url-pattern>/quickStratServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>1.html</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>QuickStartServlet2</servlet-name> <servlet-class>com.itheima.servlet.QuickStartServlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>QuickStartServlet2</servlet-name> <url-pattern>/quickStartServlet2</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.itheima.login.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>ContextServlet</display-name> <servlet-name>ContextServlet</servlet-name> <servlet-class>com.itheima.context.ContextServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ContextServlet</servlet-name> <url-pattern>/context</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>ContextServlet2</display-name> <servlet-name>ContextServlet2</servlet-name> <servlet-class>com.itheima.context.ContextServlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>ContextServlet2</servlet-name> <url-pattern>/context2</url-pattern> </servlet-mapping> </web-app>
package com.web.login; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import com.web.domain.User; import com.web.utils.DataSourceUtils; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 獲得使用者名稱和密碼 String username = request.getParameter("username"); String password = request.getParameter("password"); // 從資料庫中驗證使用者名稱和密碼是否匹配 QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource()); String sql = "select * from user where username=? and password=?"; User user = null; try { user = runner.query(sql, new BeanHandler<User>(User.class), username, password); } catch (SQLException e) { e.printStackTrace(); } // 根據返回的結果給出訊息 if (user != null) { // 登入成功 response.getWriter().write("Login success"); response.getWriter().write(user.toString()); } else { // 登入失敗 response.getWriter().write("Login failure"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package com.web.domain;
public class User {
private int id;
private String username;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + ", email=" + email + "]";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="user">root</property>
<property name="password">root</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///web01</property>
</default-config>
</c3p0-config>