簡單的登錄註冊頁面前端
1.配置JDBC驅動鏈接數據庫java
2. 配置struts2框架mysql
3. 利用1 2完成登陸頁面, 注意作到不耦合,即servlet Api和控制器徹底脫離)web
4. 利用1 2 製做註冊頁面,判斷數據庫是否存在註冊帳號,若存在,則提示帳號存在,不存在則跳轉註冊成功頁面sql
建立項目命名爲chapter04 找到下載好的JDBC驅動jar文件複製粘貼到WebRoot-WEB-INF下的lib文件夾下,如圖數據庫
2配置struts2框架apache
在網上下載struts2框架,打開struts2文件夾中的lib找到以下的jar文件 一樣複製到WebRoot-WEB-INF下的lib文件夾下app
接下來在web.xml中配置前端控制器,具體代碼以下框架
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
最後在Struts.xml中配置Action分發給對應的JSP 代碼以下jsp
<struts> <constant name="struts.devMode" value="true"></constant> <package name="loginpkg" extends="struts-default" namespace="/"> <action name="succes" class="loginAction.login" method="logins"> <result name="succes">/succes.jsp</result> <result name="defeat">/defeat.jsp</result> </action> <action name="register" class="loginAction.register" method="registers"> <result name="succes">/index.jsp</result> <result name="defeat">/defeat.jsp</result> </action> </package> </struts>
JSP頁面的有 index.jsp register.jsp defeat.jsp success.jsp對應分別是首頁 註冊頁面 失敗跳轉頁面 成功登陸頁面這裏只介紹index.jsp界面,其餘比較簡單本身寫 index.jsp代碼以下
<body> <form action="/chapter04/succes"> 用戶:<input name="name" style="margin-left:10px;"><br> 密碼:<input name="password" style="margin-left:10px;"><br> <input type="submit" value="登陸" style="position: absolute; left: 50px; top:60px;"> </form> <a style="position: absolute; left: 110px; top:60px;" href='/chapter04/register.jsp' >註冊</a> </body>
在src下建立一個包 名爲jdbcDAO ,在包內建立名爲Conn的jdbc鏈接數據庫類,代碼以下;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Conn { public static Connection con; public static Connection getconnection() { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String url="jdbc:mysql://127.0.0.1:3306/userdb?characterEncoding=utf8"; String user="root"; String password="123456"; try { con=DriverManager.getConnection(url, user, password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return con}
新建查詢數據庫功能類 read 代碼以下
package jdbcDAO; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import com.mysql.jdbc.PreparedStatement; public class read { public static boolean isCheck(String name,String password){ Connection con=Conn.getconnection(); String sql="select * from user"; PreparedStatement ps=null; ResultSet rs=null; try { ps=(PreparedStatement) con.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ String name1=rs.getString("name"); String password1=rs.getString("password"); if(name1.equals(name)&&password1.equals(password)){ return true; } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } public static boolean isCheck1(String name){ Connection con=Conn.getconnection(); String sql="select * from user"; PreparedStatement ps=null; ResultSet rs=null; try { ps=(PreparedStatement) con.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ String name1=rs.getString("name"); if(name1.equals(name)){ return true; } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } }
建立添加用戶功能類 Add代碼以下
package jdbcDAO; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import com.mysql.jdbc.PreparedStatement; public class Add { public static boolean Adds(String name,String password){ Connection con=Conn.getconnection(); boolean falg=false; PreparedStatement ps=null; String sql="insert into user(name,password)values(?,?)"; try { ps=(PreparedStatement) con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, password); int i=ps.executeUpdate(); if(i==1){ falg=true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return falg;
建立longAction包
在longAction包中建立兩個類login和register類
login類代碼以下
package loginAction; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.Servlet; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.config.entities.ActionConfig; import jdbcDAO.read; import userBean.User; public class login extends ActionSupport { private String name; private String password; private boolean falg=false; private static final long serialVersionUID = 1L; public String logins(){ ServletActionContext sac=null; name=sac.getRequest().getParameter("name"); password=sac.getRequest().getParameter("password"); falg=read.isCheck(name, password); if(falg){ return "succes"; }else{ return "defeat"; } } }
Register類代碼以下
package loginAction; import org.apache.struts2.ServletActionContext; import jdbcDAO.Add; import jdbcDAO.read; public class register { private boolean falg=false; private String name; private String password; public String registers(){ ServletActionContext sac=null; name=sac.getRequest().getParameter("name"); password=sac.getRequest().getParameter("password"); falg=read.isCheck1(name); //真 if(!falg){ falg=Add.Adds(name, password); if(falg){ return "succes"; } else{ return "defeat"; } }else{ return "defeat"; } } }